Commit 37ff6fb2 authored by Daniel Henninger's avatar Daniel Henninger Committed by dhenninger

Migrating Kraken to live within Openfire's own source tree.

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@12835 b35dd754-fafc-0310-a699-88a17e54d16e
parent b521a89f
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/java"/>
<classpathentry kind="lib" path="build/lib/ant-contrib.jar"/>
<classpathentry kind="lib" path="build/lib/ant-jive-edition.jar"/>
<classpathentry kind="lib" path="build/lib/qdox.jar"/>
<classpathentry kind="lib" path="lib/concurrent.jar"/>
<classpathentry kind="lib" path="lib/dwr.jar"/>
<classpathentry kind="lib" path="lib/jainsipapi.jar"/>
<classpathentry kind="lib" path="lib/jainsipri.jar"/>
<classpathentry kind="lib" path="lib/jakarta-regexp.jar"/>
<classpathentry kind="lib" path="lib/jggapi.jar"/>
<classpathentry kind="lib" path="lib/jml.jar"/>
<classpathentry kind="lib" path="lib/joscar-common.jar"/>
<classpathentry kind="lib" path="lib/joscar-protocol.jar"/>
<classpathentry kind="lib" path="lib/jsocks.jar"/>
<classpathentry kind="lib" path="lib/log4j.jar"/>
<classpathentry kind="lib" path="lib/martyr.jar"/>
<classpathentry kind="lib" path="lib/smack.jar"/>
<classpathentry kind="lib" path="lib/smackx.jar"/>
<classpathentry kind="lib" path="lib/xmlrpc.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="/openfire/build/lib/dist/servlet.jar"/>
<classpathentry kind="lib" path="lib/jqql.jar"/>
<classpathentry kind="lib" path="/openfire/build/lib/merge/jdom.jar"/>
<classpathentry kind="lib" path="lib/dom4j.jar"/>
<classpathentry kind="lib" path="lib/stcomm.jar"/>
<classpathentry kind="lib" path="lib/msim.jar"/>
<classpathentry kind="lib" path="lib/httpcore.jar"/>
<classpathentry kind="lib" path="lib/json.jar"/>
<classpathentry kind="lib" path="lib/httpclient.jar"/>
<classpathentry kind="lib" path="lib/openymsg.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/openfire"/>
<classpathentry kind="lib" path="/home/daniel/Projects/kraken/openfire/work/classes"/>
<classpathentry kind="lib" path="lib/jfacebookiml.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>kraken</name>
<comment></comment>
<projects>
<project>openfire</project>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
This diff is collapsed.
#Wed Jan 13 23:28:45 EST 2010
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
cleanup.add_missing_deprecated_annotations=true
cleanup.add_missing_methods=false
cleanup.add_missing_nls_tags=false
cleanup.add_missing_override_annotations=true
cleanup.add_serial_version_id=false
cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
cleanup.convert_to_enhanced_for_loop=true
cleanup.correct_indentation=true
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=true
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
cleanup.organize_imports=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=true
cleanup.qualify_static_method_accesses_with_declaring_class=false
cleanup.remove_private_constructors=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=true
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
cleanup.sort_members=false
cleanup.sort_members_all=false
cleanup.use_blocks=true
cleanup.use_blocks_only_for_return_and_throw=false
cleanup.use_parentheses_in_expressions=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
cleanup_profile=_Kraken
cleanup_settings_version=2
eclipse.preferences.version=1
formatter_profile=_Kraken
formatter_settings_version=11
This diff is collapsed.
<cache-config>
<cache-mapping>
<cache-name>Kraken Session Location Cache</cache-name>
<scheme-name>optimistic</scheme-name>
<init-params>
<init-param>
<param-name>back-size-high</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>back-expiry</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>back-size-low</param-name>
<param-value>0</param-value>
</init-param>
</init-params>
</cache-mapping>
<cache-mapping>
<cache-name>Kraken Registration Cache</cache-name>
<scheme-name>optimistic</scheme-name>
<init-params>
<init-param>
<param-name>back-size-high</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>back-expiry</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>back-size-low</param-name>
<param-value>0</param-value>
</init-param>
</init-params>
</cache-mapping>
</cache-config>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/bin" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/.settings" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library name="ant-contrib.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/build/lib/ant-contrib.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="ant-jive-edition.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/build/lib/ant-jive-edition.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="qdox.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/build/lib/qdox.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="concurrent.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/concurrent.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="dwr.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/dwr.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jainsipapi.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jainsipapi.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jainsipri.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jainsipri.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jakarta-regexp.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jakarta-regexp.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jggapi.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jggapi.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jml.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jml.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="joscar-common.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/joscar-common.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="joscar-protocol.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/joscar-protocol.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jsocks.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jsocks.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="log4j.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/log4j.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="martyr.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/martyr.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="smack.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/smack.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="smackx.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/smackx.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="xmlrpc.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/xmlrpc.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="inheritedJdk" />
<orderEntry type="module-library">
<library name="servlet.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/../openfire/build/lib/dist/servlet.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jqql.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jqql.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="jdom.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/../openfire/build/lib/merge/jdom.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="dom4j.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/dom4j.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="stcomm.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/stcomm.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="msim.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/msim.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="httpcore.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/httpcore.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="json.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/json.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="httpclient.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/httpclient.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="openymsg.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/openymsg.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module" module-name="openfire" />
<orderEntry type="module-library">
<library name="jfacebookiml.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jfacebookiml.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/lib/jcip-annotations.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../openfire/build/lib/merge/jsp-api.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../openfire/build/lib/merge/jstl.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../openfire/build/lib/merge/standard.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="classes">
<CLASSES>
<root url="file://$MODULE_DIR$/../openfire/work/classes" />
<root url="file://$MODULE_DIR$/../openfire/work/classes" />
</CLASSES>
<JAVADOC />
<SOURCES />
<jarDirectory url="file://$MODULE_DIR$/../openfire/work/classes" recursive="false" />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../openfire/target/openfire/lib/openfire.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>
Index: source/org/jivesoftware/smack/sasl/SASLDigestMD5Mechanism.java
===================================================================
--- source/org/jivesoftware/smack/sasl/SASLDigestMD5Mechanism.java (revision 11361)
+++ source/org/jivesoftware/smack/sasl/SASLDigestMD5Mechanism.java (working copy)
@@ -20,7 +20,9 @@
package org.jivesoftware.smack.sasl;
import org.jivesoftware.smack.SASLAuthentication;
+import org.jivesoftware.smack.util.Base64;
+import java.io.IOException;
/**
* Implementation of the SASL DIGEST-MD5 mechanism
*
@@ -35,4 +37,43 @@
protected String getName() {
return "DIGEST-MD5";
}
-}
+
+
+ /**
+ * The server is challenging the SASL mechanism for the stanza he just sent. Send a
+ * response to the server's challenge.
+ *
+ * @param challenge a base64 encoded string representing the challenge.
+ * @throws IOException if an exception sending the response occurs.
+ */
+ public void challengeReceived(String challenge) throws IOException {
+ // Build the challenge response stanza encoding the response text
+ StringBuilder stanza = new StringBuilder();
+
+ byte response[];
+ if(challenge != null) {
+ response = sc.evaluateChallenge(Base64.decode(challenge));
+ } else {
+ response = sc.evaluateChallenge(null);
+ }
+
+ String authenticationText = null;
+ if (response != null) {
+ authenticationText = Base64.encodeBytes(response,Base64.DONT_BREAK_LINES);
+ if(authenticationText.equals("")) {
+ authenticationText = "=";
+ }
+ }
+
+ if (authenticationText != null) {
+ stanza.append("<response xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\">");
+ stanza.append(authenticationText);
+ stanza.append("</response>");
+ } else {
+ stanza.append("<response xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\" />");
+ }
+
+ // Send the authentication to the server
+ getSASLAuthentication().send(stanza.toString());
+ }
+ }
Name | Version
-----------------------------------------------------------------------------
concurrent.jar | 1.3.3
dom4j.jar | 1.6.1
dwr.jar | same version as monitoring plugin, unknown
httpclient.jar | 4.0 beta1
httpcore.jar | 4.0 beta2
jakarta-regexp.jar | 1.3
jainsipapi.jar | 1.2 (nightly 2007-06-05)
jainsipri.jar | 1.2 (nightly 2007-06-05)
jcip-annotations.jar | n/a
jggapi.jar | 1.6.1 (patched [#2])
jml.jar | svn-20100207
joscar-common.jar | svn-20091130
joscar-protocol.jar | svn-20091130
jqql.jar | svn-20100410
jsocks.jar | 1.01 (patched [#1])
json.jar | 1.0
log4j.jar | 1.2.14
martyr.jar | svn-20070908
msim.jar | svn-20090125
openymsg.jar | 0.5.2
servlet.jar | 2.5
smack.jar | git-20110421 (alternate [#1])
smackx.jar | git-20110421 (alternate [#1])
stcomm.jar | 3.0
xmlrpc.jar | 1.0.1
Alternate Libraries
1) smack and smackx are built from forked smack, https://github.com/jadestorm/Smack-MultiUser
Patch Descriptions
1) jsocks patches
- patched by Keith Lea of the joscar project, I don't know details
2) jggapi patches
- applied patch from http://projekty.radical.com.pl/issues/43 to fix charset issues
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<!-- Main plugin class -->
<class>net.sf.kraken.KrakenPlugin</class>
<!-- Plugin meta-data -->
<name>Kraken IM Gateway</name>
<description>${gateway.description}</description>
<author>Daniel Henninger</author>
<version>1.1.3</version>
<date>09/23/2011</date>
<minServerVersion>3.6.0</minServerVersion>
<databaseKey>gateway</databaseKey>
<databaseVersion>11</databaseVersion>
<licenseType>gpl</licenseType>
<!-- Admin console meta-data -->
<adminconsole>
<tab id="tab-server">
<sidebar id="gateways" name="${gateway.gateways}" description="${gateway.gateways.desc}">
<item id="kraken-settings"
name="${gateway.settings}"
url="kraken-settings.jsp"
description="${gateway.settings.desc}"/>
<item id="kraken-transports"
name="${gateway.transports}"
url="kraken-transports.jsp"
description="${gateway.transports.desc}"/>
<item id="kraken-registrations"
name="${gateway.registrations}"
url="kraken-registrations.jsp"
description="${gateway.registrations.desc}"/>
</sidebar>
</tab>
</adminconsole>
</plugin>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Kraken Readme</title>
<style type="text/css">
/* global font and body settings */
body {
font-size : 100%;
background-color : #547B3B;
padding: 0;
margin: 0 0 30px 0;
}
body, td, th {
font-family : arial, helvetica, sans-serif;
font-size : 10pt;
}
pre, tt, code {
font-family : courier new, monospace;
font-size : 9pt;
}
#pageContainer {
display: block;
position: relative;
clear: both;
background-color: #fff;
border: 1px solid #999;
padding: 40px;
margin: 30px;
}
#pageHeader {
display: block;
position: relative;
height: 80px;
background-color: #547B3B;
border: 1px solid #cccccc;
border-bottom: none;
margin: 10px 0 0 0;
}
#pageBody {
margin: 0 18px 0 20px;
}
/* anchors */
a:link {
color: #1B8712;
}
a:visited {
color: #3EAF34;
}
a:hover {
color: #7a1d42;
text-decoration : underline;
}
a:active {
color: #1B8712;
}
/* headings */
h1 {
display: block;
position: relative;
font-size : 1.7em;
font-weight : bold;
color: #ffffff;
padding: 0;
margin: 30px 0 0 20px;
}
h2 {
font-size : 1.3em;
font-weight : bold;
margin: 40px 0 6px 0;
padding: 0;
color: #000000;
}
h3 {
font-size : 1.0em;
font-weight : bold;
margin: 25px 0 3px 0;
padding: 0;
color: #000000;
}
/* general elements */
p {
margin: 0 0 15px 0;
}
ul {
margin: 5px 0 15px 35px;
}
li {
padding-bottom : 4px;
}
tt {
font-family : courier new, monospace;
font-weight : bold;
color : #060;
}
hr {
display: block;
height: 1px;
background-color: #999999;
border: none;
margin: 40px 0 20px 0;
}
.footer {
font-size : 8pt;
color : #666;
text-align : center;
margin-top : 2em;
padding-top : 0.5em;
border-top : 1px #CCC solid;
}
</style>
</head>
<body>
<div id="pageContainer">
<div id="pageHeader">
<h1>Kraken Readme</h1>
</div>
<div id="pageBody">
<h2>Overview</h2>
<p>
The Kraken plugin allows users to log in to and
communicate through other instant messaging services via their XMPP
accounts. The gateway itself provides a number of "transports" to other
protocols (AIM, ICQ, MSN, Yahoo, etc).
</p>
<h2>Terminology</h2>
<p>
To help identify the differences between the plugin as a whole and the
underlying interfaces to external protocols (AIM, ICQ, etc), we refer
to the plugin itself as the "gateway" while we refer to the protocol
handlers as "transports".
</p>
<h2>Installation</h2>
<p>
Copy the kraken.jar into the plugins directory of your Openfire
installation. The plugin will then be automatically deployed. To upgrade to a
new version, copy the new kraken.jar file over the existing file. Please
be aware that an upgrade will cause all of the users on your server who are
making use of the plugin to be disconnected from their external IM accounts.
Your users should be reconnected after the plugin reloads.
</p>
<h2>Configuration</h2>
<p>
By default, after the plugin has been deployed all of its features are disabled.
This plugin is configured via the "Gateways" sidebar item located in the Openfire
Admin Console. You can enable individual transports via the "Settings" sidebar
item, and add new registrations/view existing registrations from the "Registrations"
sidebar item.
</p>
<h2>Using the plugin</h2>
<p>
Before going into specifics, there are some important things you need to
know first. A user must be registered with a transport in order to make
use of it. Registration is the process wherein a user tells a transport
what username and password will be used with the external service. This
process also places the transport JID in their roster to that the
transport itself can "hear" them come online, and act appropriately (logging
them in and such). In this case, we interact with the user's roster directly,
so there is no need for a flood of subscription requests to the client itself.
A side effect of this is that only users of the local Openfire server will
be able to make use of any transport on the gateway. Roster items are created
as non-persistent, which means that when the end user logs out or disconnects
from the gateway, the associated transport roster items will no longer exist
in their roster.
</p>
<h3>For admins:</h3>
<p>
The web interface of the gateway plugin provides a mechanism for setting
up registrations on a user's behalf, as well as editing and deleting them.
It also provides tools for monitoring who is using the gateway, their status,
etc. In a typical setup, a user will be allowed to register an account
themselves. See the next section for details on this. You can also
set who has access to the specific transports and even enforce manual
registrations only. If a specific transport has any options, they will
be made available from the web interface. You will see the full hostnames
of the transports listed. You do <strong>not</strong> have to register these with
your DNS service. They are referenced internally by Openfire and no
external query is necessary.
</p>
<p>
If you have a firewall set up, you do not need to open any inbound ports.
However, you will need to make sure the following outgoing connections
will work based on the transport in question:
<ul>
<li>AIM: login.oscar.aol.com 5190</li>
<li>GADUGADU: appmsg.gadu-gadu.pl 80</li>
<li>GTALK: talk.google.com 5222</li>
<li>ICQ: login.icq.com 5190</li>
<li>IRC: irc.freenode.net 7000</li>
<li>MSN: messenger.hotmail.com 1863</li>
<li>SIMPLE: localhost 5060</li>
<li>XMPP: jabber.org 5222</li>
<li>Yahoo: scs.msg.yahoo.com 5050</li>
</ul>
Please be aware that these are only the initial connections made. Many of
the services will connect to other servers for difference aspects of your
legacy IM session. All of these connections should stay on the same port
though. There may be ranges of IP addresses or something that you can
open up but I do not know those lists. Also, it is now possible to change
the initial connect host and port via Kraken's
<a href="http://community.igniterealtime.org/docs/DOC-1002">Openfire Properties</a>.
</p>
<p>
There is additional online documentation available at:
<a href="http://community.igniterealtime.org/docs/DOC-2204">Kraken's Online Readme</a>
</p>
<h3>For end users:</h3>
<p>
Typically, users will use Service Discovery (aka disco) to find out what
services are available on a server, and then will be provided with a way
to register with whatever transports are made available. Some clients
do not have the functionality to interact with transports. In this case,
a server admin will need to register the user on their behalf. (see above)
</p>
<p>
When registering with any Kraken transports, you will see the transport
itself show up in your XMPP roster. This is normal and is how the transport
knows when you are logged in or not, and detects status changes. Removal of
the transport roster items will typically remove your registration with the
transport as well.
</p>
<p>
<strong>Special note for Spark:</strong> As of this release, and an upcoming release
of Spark, you will not have the transports in your roster when you register
from Spark. This is an experimental feature for a smoother user experience.
Note that if you register from Spark and then move to another client, you
will not automatically log into any transports. If you plan to dance between
clients and not use Spark exclusively, I would recommend you register from
another client than Spark.
</p>
<h2>Troubleshooting</h2>
<p>
If the plugin behaviour is not as expected you can enable server debug logging.
This will allow the plugin to start logging. Server debug logging should only
be enabled temporarily, as it will generate a lot of additional logging that
will both slow your server down and consume a lot of disk space.
</p>
<h2>Special Thanks</h2>
<p>
Thanks to the Adium X folk for use of a couple of their service icons!
</p>
<div class="footer">
Copyright &copy; Daniel Henninger, 2008-2011
</div>
</div>
</div>
</body>
</html>
CREATE TABLE ofGatewayRegistration (
registrationID BIGINT NOT NULL,
jid VARCHAR(255) NOT NULL,
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255) NOT NULL,
password VARCHAR(255),
nickname VARCHAR(255),
registrationDate BIGINT NOT NULL,
lastLogin BIGINT,
CONSTRAINT ofGatewayReg_pk PRIMARY KEY (registrationID)
);
CREATE INDEX ofGatewayReg_jid_idx ON ofGatewayRegistration (jid);
CREATE INDEX ofGatewayReg_type_idx ON ofGatewayRegistration (transportType);
CREATE TABLE ofGatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255)
);
CREATE INDEX ofGatewayPsdoRstr_regid_idx ON ofGatewayPseudoRoster (registrationID);
CREATE INDEX ofGatewayPsdoRstr_uname_idx ON ofGatewayPseudoRoster (username);
CREATE TABLE ofGatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50)
);
CREATE INDEX ofGatewayRstrs_ttype_idx ON ofGatewayRestrictions (transportType);
CREATE INDEX ofGatewayRstrs_uname_idx ON ofGatewayRestrictions (username);
CREATE TABLE ofGatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData CLOB NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT,
imageType VARCHAR(25)
);
CREATE INDEX ofGatewayAvtrs_jid_idx ON ofGatewayAvatars (jid);
CREATE TABLE ofGatewayVCards (
jid VARCHAR(255) NOT NULL,
value CLOB NOT NULL
);
CREATE INDEX ofGatewayVCards_jid_idx ON ofGatewayVCards (jid);
INSERT INTO ofVersion (name, version) VALUES ('gateway', 11);
CREATE TABLE ofGatewayRegistration (
registrationID BIGINT NOT NULL,
jid VARCHAR(255) NOT NULL,
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255) NOT NULL,
password VARCHAR(255),
nickname VARCHAR(255),
registrationDate BIGINT NOT NULL,
lastLogin BIGINT,
CONSTRAINT ofGatewayRegistration_pk PRIMARY KEY (registrationID)
);
CREATE INDEX ofGatewayRegistration_jid_idx ON ofGatewayRegistration (jid);
CREATE INDEX ofGatewayRegistration_type_idx ON ofGatewayRegistration (transportType);
CREATE TABLE ofGatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255)
);
CREATE INDEX ofGatewayPseudoRoster_regid_idx ON ofGatewayPseudoRoster (registrationID);
CREATE INDEX ofGatewayPseudoRoster_uname_idx ON ofGatewayPseudoRoster (username);
CREATE TABLE ofGatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50)
);
CREATE INDEX ofGatewayRestrictions_ttype_idx ON ofGatewayRestrictions (transportType);
CREATE INDEX ofGatewayRestrictions_uname_idx ON ofGatewayRestrictions (username);
CREATE TABLE ofGatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData LONGVARCHAR NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT,
imageType VARCHAR(25)
);
CREATE INDEX ofGatewayAvatars_jid_idx ON ofGatewayAvatars (jid);
CREATE TABLE ofGatewayVCards (
jid VARCHAR(255) NOT NULL,
value LONGVARCHAR NOT NULL
);
CREATE INDEX ofGatewayVCards_jid_idx ON ofGatewayVCards (jid);
INSERT INTO ofVersion (name, version) VALUES ('gateway', 11);
CREATE TABLE ofGatewayRegistration (
registrationID BIGINT NOT NULL,
jid VARCHAR(255) NOT NULL,
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255) NOT NULL,
password VARCHAR(255),
nickname VARCHAR(255),
registrationDate BIGINT NOT NULL,
lastLogin BIGINT,
PRIMARY KEY (registrationID),
INDEX ofGatewayRegistration_jid_idx(jid),
INDEX ofGatewayRegistration_type_idx(transportType)
);
CREATE TABLE ofGatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255),
INDEX ofGatewayPseudoRoster_regid_idx(registrationID),
INDEX ofGatewayPseudoRoster_uname_idx(username)
);
CREATE TABLE ofGatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50),
INDEX ofGatewayRestrictions_ttype_idx(transportType),
INDEX ofGatewayRestrictions_uname_idx(username)
);
CREATE TABLE ofGatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData MEDIUMTEXT NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT,
imageType VARCHAR(25),
PRIMARY KEY (jid)
);
CREATE TABLE ofGatewayVCards (
jid VARCHAR(255) NOT NULL,
value MEDIUMTEXT NOT NULL,
PRIMARY KEY (jid)
);
INSERT INTO ofVersion (name, version) VALUES ('gateway', 11);
CREATE TABLE ofGatewayRegistration (
registrationID INTEGER NOT NULL,
jid VARCHAR2(255) NOT NULL,
transportType VARCHAR2(15) NOT NULL,
username VARCHAR2(255) NOT NULL,
password VARCHAR2(255),
nickname VARCHAR2(255),
registrationDate INTEGER NOT NULL,
lastLogin INTEGER,
CONSTRAINT ofGatewayReg_pk PRIMARY KEY (registrationID)
);
CREATE INDEX ofGatewayReg_jid_idx ON ofGatewayRegistration (jid);
CREATE INDEX ofGatewayReg_type_idx ON ofGatewayRegistration (transportType);
CREATE TABLE ofGatewayPseudoRoster (
registrationID INTEGER NOT NULL,
username VARCHAR2(255) NOT NULL,
nickname VARCHAR2(255),
groups VARCHAR2(255)
);
CREATE INDEX ofGatewayPsdRstr_regid_idx ON ofGatewayPseudoRoster (registrationID);
CREATE INDEX ofGatewayPsdRstr_uname_idx ON ofGatewayPseudoRoster (username);
CREATE TABLE ofGatewayRestrictions (
transportType VARCHAR2(15) NOT NULL,
username VARCHAR2(255),
groupname VARCHAR2(50)
);
CREATE INDEX ofGatewayRstrs_ttype_idx ON ofGatewayRestrictions (transportType);
CREATE INDEX ofGatewayRstrs_uname_idx ON ofGatewayRestrictions (username);
CREATE TABLE ofGatewayAvatars (
jid VARCHAR2(255) NOT NULL,
imageData CLOB NOT NULL,
xmppHash VARCHAR2(255),
legacyIdentifier VARCHAR2(255),
createDate INTEGER NOT NULL,
lastUpdate INTEGER,
imageType VARCHAR2(25)
);
CREATE INDEX ofGatewayAvatars_jid_idx ON ofGatewayAvatars (jid);
CREATE TABLE ofGatewayVCards (
jid VARCHAR2(255) NOT NULL,
value CLOB NOT NULL
);
CREATE INDEX ofGatewayVCards_jid_idx ON ofGatewayVCards (jid);
INSERT INTO ofVersion (name, version) VALUES ('gateway', 11);
commit;
CREATE TABLE ofGatewayRegistration (
registrationID INTEGER NOT NULL,
jid VARCHAR(255) NOT NULL,
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255) NOT NULL,
password VARCHAR(255),
nickname VARCHAR(255),
registrationDate CHAR(15) NOT NULL,
lastLogin CHAR(15),
CONSTRAINT ofGatewayRegistration_pk PRIMARY KEY (registrationID)
);
CREATE INDEX ofGatewayRegistration_jid_idx ON ofGatewayRegistration (jid);
CREATE INDEX ofGatewayRegistration_type_idx ON ofGatewayRegistration (transportType);
CREATE TABLE ofGatewayPseudoRoster (
registrationID INTEGER NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255)
);
CREATE INDEX ofGatewayPseudoRoster_regid_idx ON ofGatewayPseudoRoster (registrationID);
CREATE INDEX ofGatewayPseudoRoster_uname_idx ON ofGatewayPseudoRoster (username);
CREATE TABLE ofGatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50)
);
CREATE INDEX ofGatewayRestrictions_ttype_idx ON ofGatewayRestrictions (transportType);
CREATE INDEX ofGatewayRestrictions_uname_idx ON ofGatewayRestrictions (username);
CREATE TABLE ofGatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData TEXT NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate CHAR(15) NOT NULL,
lastUpdate CHAR(15),
imageType VARCHAR(25)
);
CREATE INDEX ofGatewayAvatars_jid_idx ON ofGatewayAvatars (jid);
CREATE TABLE ofGatewayVCards (
jid VARCHAR(255) NOT NULL,
value TEXT NOT NULL
);
CREATE INDEX ofGatewayVCards_jid_idx ON ofGatewayVCards (jid);
INSERT INTO ofVersion (name, version) VALUES ('gateway', 11);
CREATE TABLE ofGatewayRegistration (
registrationID BIGINT NOT NULL,
jid NVARCHAR(255) NOT NULL,
transportType NVARCHAR(15) NOT NULL,
username NVARCHAR(255) NOT NULL,
password NVARCHAR(255),
nickname NVARCHAR(255),
registrationDate BIGINT NOT NULL,
lastLogin BIGINT,
CONSTRAINT ofGatewayRegistration_pk PRIMARY KEY (registrationID)
);
CREATE INDEX ofGatewayRegistration_jid_idx ON ofGatewayRegistration (jid);
CREATE INDEX ofGatewayRegistration_type_idx ON ofGatewayRegistration (transportType);
CREATE TABLE ofGatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username NVARCHAR(255) NOT NULL,
nickname NVARCHAR(255),
groups NVARCHAR(255)
);
CREATE INDEX ofGatewayPseudoRoster_regid_idx ON ofGatewayPseudoRoster (registrationID);
CREATE INDEX ofGatewayPseudoRoster_uname_idx ON ofGatewayPseudoRoster (username);
CREATE TABLE ofGatewayRestrictions (
transportType NVARCHAR(15) NOT NULL,
username NVARCHAR(255),
groupname NVARCHAR(50)
);
CREATE INDEX ofGatewayRestrictions_ttype_idx ON ofGatewayRestrictions (transportType);
CREATE INDEX ofGatewayRestrictions_uname_idx ON ofGatewayRestrictions (username);
CREATE TABLE ofGatewayAvatars (
jid NVARCHAR(255) NOT NULL,
imageData NTEXT NOT NULL,
xmppHash NVARCHAR(255),
legacyIdentifier NVARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT,
imageType NVARCHAR(25)
);
CREATE INDEX ofGatewayAvatars_jid_idx ON ofGatewayAvatars (jid);
CREATE TABLE ofGatewayVCards (
jid NVARCHAR(255) NOT NULL,
value NTEXT NOT NULL
);
CREATE INDEX ofGatewayVCards_jid_idx ON ofGatewayVCards (jid);
INSERT INTO ofVersion (name, version) VALUES ('gateway', 11);
CREATE TABLE ofGatewayRegistration (
registrationID INTEGER NOT NULL,
jid NVARCHAR(255) NOT NULL,
transportType NVARCHAR(15) NOT NULL,
username NVARCHAR(255) NOT NULL,
password NVARCHAR(255),
nickname NVARCHAR(255),
registrationDate INTEGER NOT NULL,
lastLogin INTEGER,
CONSTRAINT ofGatewayRegistration_pk PRIMARY KEY (registrationID)
);
CREATE INDEX ofGatewayRegistration_jid_idx ON ofGatewayRegistration (jid);
CREATE INDEX ofGatewayRegistration_type_idx ON ofGatewayRegistration (transportType);
CREATE TABLE ofGatewayPseudoRoster (
registrationID INTEGER NOT NULL,
username NVARCHAR(255) NOT NULL,
nickname NVARCHAR(255),
groups NVARCHAR(255)
);
CREATE INDEX ofGatewayPseudoRoster_regid_idx ON ofGatewayPseudoRoster (registrationID);
CREATE INDEX ofGatewayPseudoRoster_uname_idx ON ofGatewayPseudoRoster (username);
CREATE TABLE ofGatewayRestrictions (
transportType NVARCHAR(15) NOT NULL,
username NVARCHAR(255),
groupname NVARCHAR(50)
);
CREATE INDEX ofGatewayRestrictions_ttype_idx ON ofGatewayRestrictions (transportType);
CREATE INDEX ofGatewayRestrictions_uname_idx ON ofGatewayRestrictions (username);
CREATE TABLE ofGatewayAvatars (
jid NVARCHAR(255) NOT NULL,
imageData TEXT NOT NULL,
xmppHash NVARCHAR(255),
legacyIdentifier NVARCHAR(255),
createDate INTEGER NOT NULL,
lastUpdate INTEGER,
imageType NVARCHAR(25)
);
CREATE INDEX ofGatewayAvatars_jid_idx ON ofGatewayAvatars (jid);
CREATE TABLE ofGatewayVCards (
jid NVARCHAR(255) NOT NULL,
value TEXT NOT NULL
);
CREATE INDEX ofGatewayVCards_jid_idx ON ofGatewayVCards (jid);
INSERT INTO ofVersion (name, version) VALUES ('gateway', 11);
-- Add nickname to registration table
ALTER TABLE gatewayRegistration ADD COLUMN nickname VARCHAR(255);
-- Add pseudo roster table
CREATE TABLE gatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255)
);
CREATE INDEX gatewayPsRs_regid_idx ON gatewayPseudoRoster (registrationID);
CREATE INDEX gatewayPsRs_uname_idx ON gatewayPseudoRoster (username);
-- Update database version
UPDATE jiveVersion SET version = 1 WHERE name = 'gateway';
// Add nickname to registration table
ALTER TABLE gatewayRegistration ADD COLUMN nickname VARCHAR(255) BEFORE registrationDate;
// Add pseudo roster table
CREATE TABLE gatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255)
);
CREATE INDEX gatewayPsRs_regid_idx ON gatewayPseudoRoster (registrationID);
CREATE INDEX gatewayPsRs_uname_idx ON gatewayPseudoRoster (username);
// Update database version
UPDATE jiveVersion SET version = 1 WHERE name = 'gateway';
# Add nickname to registration table
ALTER TABLE gatewayRegistration ADD COLUMN nickname VARCHAR(255) NULL AFTER password;
# Add pseudo roster table
CREATE TABLE gatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255),
INDEX gatewayPsRs_regid_idx(registrationID),
INDEX gatewayPsRs_uname_idx(username)
);
# Update database version
UPDATE jiveVersion SET version = 1 WHERE name = 'gateway';
-- Add nickname column to registration table
ALTER TABLE gatewayRegistration ADD nickname VARCHAR2(255) NULL;
-- Add pseudo roster table
CREATE TABLE gatewayPseudoRoster (
registrationID INTEGER NOT NULL,
username VARCHAR2(255) NOT NULL,
nickname VARCHAR2(255),
groups VARCHAR2(255)
);
CREATE INDEX gatewayPsRs_regid_idx ON gatewayPseudoRoster (registrationID);
CREATE INDEX gatewayPsRs_uname_idx ON gatewayPseudoRoster (username);
-- Update database version
UPDATE jiveVersion SET version = 1 WHERE name = 'gateway';
commit;
-- Add nickname column to registration table
ALTER TABLE gatewayRegistration ADD COLUMN nickname VARCHAR(255);
-- Add pseudo roster table
CREATE TABLE gatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username VARCHAR(255) NOT NULL,
nickname VARCHAR(255),
groups VARCHAR(255)
);
CREATE INDEX gatewayPsRs_regid_idx ON gatewayPseudoRoster (registrationID);
CREATE INDEX gatewayPsRs_uname_idx ON gatewayPseudoRoster (username);
-- Update database version
UPDATE jiveVersion SET version = 1 WHERE name = 'gateway';
/* Add nickname column to registration table */
ALTER TABLE gatewayRegistration ADD nickname NVARCHAR(255);
/* Add pseudo roster table */
CREATE TABLE gatewayPseudoRoster (
registrationID BIGINT NOT NULL,
username NVARCHAR(255) NOT NULL,
nickname NVARCHAR(255),
groups NVARCHAR(255)
);
CREATE INDEX gatewayPsRs_regid_idx ON gatewayPseudoRoster (registrationID);
CREATE INDEX gatewayPsRs_uname_idx ON gatewayPseudoRoster (username);
/* Update database version */
UPDATE jiveVersion SET version = 1 WHERE name = 'gateway';
/* Add nickname column to registration table */
ALTER TABLE gatewayRegistration ADD nickname NVARCHAR(255);
/* Add pseudo roster table */
CREATE TABLE gatewayPseudoRoster (
registrationID INTEGER NOT NULL,
username NVARCHAR(255) NOT NULL,
nickname NVARCHAR(255),
groups NVARCHAR(255)
);
CREATE INDEX gatewayPsRs_regid_idx ON gatewayPseudoRoster (registrationID);
CREATE INDEX gatewayPsRs_uname_idx ON gatewayPseudoRoster (username);
/* Update database version */
UPDATE jiveVersion SET version = 1 WHERE name = 'gateway';
-- Rename sip gateway to simple
UPDATE ofGatewayRegistration SET transportType = 'simple' WHERE transportType = 'sip';
UPDATE ofGatewayRestrictions SET transportType = 'simple' WHERE transportType = 'sip';
-- Change system properties for sip gateway to simple
UPDATE ofProperty SET name = REPLACE(name, 'plugin.gateway.sip.','plugin.gateway.simple.');
-- Change roster JIDs with sip. in them to simple.
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid NOT LIKE '%@%';
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid LIKE '%@sip.%';
-- Update database version
UPDATE ofVersion SET version = 10 WHERE name = 'gateway';
// Rename sip gateway to simple
UPDATE ofGatewayRegistration SET transportType = 'simple' WHERE transportType = 'sip';
UPDATE ofGatewayRestrictions SET transportType = 'simple' WHERE transportType = 'sip';
// Change system properties for sip gateway to simple
UPDATE ofProperty SET name = REPLACE(name, 'plugin.gateway.sip.','plugin.gateway.simple.');
// Change roster JIDs with sip. in them to simple.
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid NOT LIKE '%@%';
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid LIKE '%@sip.%';
// Update database version
UPDATE ofVersion SET version = 10 WHERE name = 'gateway';
# Rename sip gateway to simple
UPDATE ofGatewayRegistration SET transportType = 'simple' WHERE transportType = 'sip';
UPDATE ofGatewayRestrictions SET transportType = 'simple' WHERE transportType = 'sip';
# Change system properties for sip gateway to simple
UPDATE ofProperty SET name = REPLACE(name, 'plugin.gateway.sip.','plugin.gateway.simple.');
# Change roster JIDs with sip. in them to simple.
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid NOT LIKE '%@%';
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid LIKE '%@sip.%';
# Update database version
UPDATE ofVersion SET version = 10 WHERE name = 'gateway';
-- Rename sip gateway to simple
UPDATE ofGatewayRegistration SET transportType = 'simple' WHERE transportType = 'sip';
UPDATE ofGatewayRestrictions SET transportType = 'simple' WHERE transportType = 'sip';
-- Change system properties for sip gateway to simple
UPDATE ofProperty SET name = REPLACE(name, 'plugin.gateway.sip.','plugin.gateway.simple.');
-- Change roster JIDs with sip. in them to simple.
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid NOT LIKE '%@%';
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid LIKE '%@sip.%';
-- Update database version
UPDATE ofVersion SET version = 10 WHERE name = 'gateway';
commit;
-- Rename sip gateway to simple
UPDATE ofGatewayRegistration SET transportType = 'simple' WHERE transportType = 'sip';
UPDATE ofGatewayRestrictions SET transportType = 'simple' WHERE transportType = 'sip';
-- Change system properties for sip gateway to simple
UPDATE ofProperty SET name = REPLACE(name, 'plugin.gateway.sip.','plugin.gateway.simple.');
-- Change roster JIDs with sip. in them to simple.
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid NOT LIKE '%@%';
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid LIKE '%@sip.%';
-- Update database version
UPDATE ofVersion SET version = 10 WHERE name = 'gateway';
/* Rename sip gateway to simple */
UPDATE ofGatewayRegistration SET transportType = 'simple' WHERE transportType = 'sip';
UPDATE ofGatewayRestrictions SET transportType = 'simple' WHERE transportType = 'sip';
/* Change system properties for sip gateway to simple */
UPDATE ofProperty SET name = REPLACE(name, 'plugin.gateway.sip.','plugin.gateway.simple.');
/* Change roster JIDs with sip. in them to simple. */
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid NOT LIKE '%@%';
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid LIKE '%@sip.%';
/* Update database version */
UPDATE ofVersion SET version = 10 WHERE name = 'gateway';
/* Rename sip gateway to simple */
UPDATE ofGatewayRegistration SET transportType = 'simple' WHERE transportType = 'sip';
UPDATE ofGatewayRestrictions SET transportType = 'simple' WHERE transportType = 'sip';
/* Change system properties for sip gateway to simple */
UPDATE ofProperty SET name = REPLACE(name, 'plugin.gateway.sip.','plugin.gateway.simple.');
/* Change roster JIDs with sip. in them to simple. */
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid NOT LIKE '%@%';
UPDATE ofRoster SET jid = REPLACE(jid, 'sip.','simple.') WHERE jid LIKE '%@sip.%';
/* Update database version */
UPDATE ofVersion SET version = 10 WHERE name = 'gateway';
-- Update ICQ connection hostname
UPDATE ofProperty SET propValue = 'login.icq.com' WHERE name = 'plugin.gateway.icq.connecthost';
-- Update database version
UPDATE ofVersion SET version = 11 WHERE name = 'gateway';
// Update ICQ connection hostname
UPDATE ofProperty SET propValue = 'login.icq.com' WHERE name = 'plugin.gateway.icq.connecthost';
// Update database version
UPDATE ofVersion SET version = 11 WHERE name = 'gateway';
# Update ICQ connection hostname
UPDATE ofProperty SET propValue = 'login.icq.com' WHERE name = 'plugin.gateway.icq.connecthost';
# Update database version
UPDATE ofVersion SET version = 11 WHERE name = 'gateway';
-- Update ICQ connection hostname
UPDATE ofProperty SET propValue = 'login.icq.com' WHERE name = 'plugin.gateway.icq.connecthost';
-- Update database version
UPDATE ofVersion SET version = 11 WHERE name = 'gateway';
commit;
-- Update ICQ connection hostname
UPDATE ofProperty SET propValue = 'login.icq.com' WHERE name = 'plugin.gateway.icq.connecthost';
-- Update database version
UPDATE ofVersion SET version = 11 WHERE name = 'gateway';
/* Update ICQ connection hostname */
UPDATE ofProperty SET propValue = 'login.icq.com' WHERE name = 'plugin.gateway.icq.connecthost';
/* Update database version */
UPDATE ofVersion SET version = 11 WHERE name = 'gateway';
/* Update ICQ connection hostname */
UPDATE ofProperty SET propValue = 'login.icq.com' WHERE name = 'plugin.gateway.icq.connecthost';
/* Update database version */
UPDATE ofVersion SET version = 11 WHERE name = 'gateway';
-- Add restrictions table
CREATE TABLE gatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50)
);
CREATE INDEX gatewayRstr_ttype_idx ON gatewayRestrictions (transportType);
CREATE INDEX gatewayRstr_uname_idx ON gatewayRestrictions (username);
-- Update database version
UPDATE jiveVersion SET version = 2 WHERE name = 'gateway';
// Add restrictions table
CREATE TABLE gatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50)
);
CREATE INDEX gatewayRstr_ttype_idx ON gatewayRestrictions (transportType);
CREATE INDEX gatewayRstr_uname_idx ON gatewayRestrictions (username);
// Update database version
UPDATE jiveVersion SET version = 2 WHERE name = 'gateway';
# Add restrictions table
CREATE TABLE gatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50),
INDEX gatewayRstr_ttype_idx(transportType),
INDEX gatewayRstr_uname_idx(username)
);
# Update database version
UPDATE jiveVersion SET version = 2 WHERE name = 'gateway';
-- Add restrictions table
CREATE TABLE gatewayRestrictions (
transportType VARCHAR2(15) NOT NULL,
username VARCHAR2(255),
groupname VARCHAR2(50)
);
CREATE INDEX gatewayRstr_ttype_idx ON gatewayRestrictions (transportType);
CREATE INDEX gatewayRstr_uname_idx ON gatewayRestrictions (username);
-- Update database version
UPDATE jiveVersion SET version = 2 WHERE name = 'gateway';
commit;
-- Add restrictions table
CREATE TABLE gatewayRestrictions (
transportType VARCHAR(15) NOT NULL,
username VARCHAR(255),
groupname VARCHAR(50)
);
CREATE INDEX gatewayRstr_ttype_idx ON gatewayRestrictions (transportType);
CREATE INDEX gatewayRstr_uname_idx ON gatewayRestrictions (username);
-- Update database version
UPDATE jiveVersion SET version = 2 WHERE name = 'gateway';
/* Add restrictions table */
CREATE TABLE gatewayRestrictions (
transportType NVARCHAR(15) NOT NULL,
username NVARCHAR(255),
groupname NVARCHAR(50)
);
CREATE INDEX gatewayRstr_ttype_idx ON gatewayRestrictions (transportType);
CREATE INDEX gatewayRstr_uname_idx ON gatewayRestrictions (username);
/* Update database version */
UPDATE jiveVersion SET version = 2 WHERE name = 'gateway';
/* Add restrictions table */
CREATE TABLE gatewayRestrictions (
transportType NVARCHAR(15) NOT NULL,
username NVARCHAR(255),
groupname NVARCHAR(50)
);
CREATE INDEX gatewayRstr_ttype_idx ON gatewayRestrictions (transportType);
CREATE INDEX gatewayRstr_uname_idx ON gatewayRestrictions (username);
/* Update database version */
UPDATE jiveVersion SET version = 2 WHERE name = 'gateway';
-- Add avatars table
CREATE TABLE gatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData BLOB NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT
);
CREATE INDEX gatewayAvtr_jid_idx ON gatewayAvatars (jid);
-- Update database version
UPDATE jiveVersion SET version = 3 WHERE name = 'gateway';
// Add avatars table
CREATE TABLE gatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData BINARY NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT
);
CREATE INDEX gatewayAvtr_jid_idx ON gatewayAvatars (jid);
// Update database version
UPDATE jiveVersion SET version = 3 WHERE name = 'gateway';
# Add avatars table
CREATE TABLE gatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData MEDIUMTEXT NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT,
PRIMARY KEY (jid),
INDEX gatewayAvtr_jid_idx(jid)
);
# Update database version
UPDATE jiveVersion SET version = 3 WHERE name = 'gateway';
-- Add avatars table
CREATE TABLE gatewayAvatars (
jid VARCHAR2(255) NOT NULL,
imageData BLOB NOT NULL,
xmppHash VARCHAR2(255),
legacyIdentifier VARCHAR2(255),
createDate INTEGER NOT NULL,
lastUpdate INTEGER
);
CREATE INDEX gatewayAvtr_jid_idx ON gatewayAvatars (jid);
-- Update database version
UPDATE jiveVersion SET version = 3 WHERE name = 'gateway';
commit;
-- Add avatars table
CREATE TABLE gatewayAvatars (
jid VARCHAR(255) NOT NULL,
imageData TEXT NOT NULL,
xmppHash VARCHAR(255),
legacyIdentifier VARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT
);
CREATE INDEX gatewayAvtr_jid_idx ON gatewayAvatars (jid);
-- Update database version
UPDATE jiveVersion SET version = 3 WHERE name = 'gateway';
/* Add avatars table */
CREATE TABLE gatewayAvatars (
jid NVARCHAR(255) NOT NULL,
imageData NTEXT NOT NULL,
xmppHash NVARCHAR(255),
legacyIdentifier NVARCHAR(255),
createDate BIGINT NOT NULL,
lastUpdate BIGINT
);
CREATE INDEX gatewayAvtr_jid_idx ON gatewayAvatars (jid);
/* Update database version */
UPDATE jiveVersion SET version = 3 WHERE name = 'gateway';
/* Add avatars table */
CREATE TABLE gatewayAvatars (
jid NVARCHAR(255) NOT NULL,
imageData TEXT NOT NULL,
xmppHash NVARCHAR(255),
legacyIdentifier NVARCHAR(255),
createDate INTEGER NOT NULL,
lastUpdate INTEGER
);
CREATE INDEX gatewayAvtr_jid_idx ON gatewayAvatars (jid);
/* Update database version */
UPDATE jiveVersion SET version = 3 WHERE name = 'gateway';
-- Add vcards table
CREATE TABLE gatewayVCards (
jid VARCHAR(255) NOT NULL,
value BLOB NOT NULL
);
CREATE INDEX gatewayVCrd_jid_idx ON gatewayVCards (jid);
-- Update database version
UPDATE jiveVersion SET version = 4 WHERE name = 'gateway';
// Add vcards table
CREATE TABLE gatewayVCards (
jid VARCHAR(255) NOT NULL,
value BINARY NOT NULL
);
CREATE INDEX gatewayVCrd_jid_idx ON gatewayVCards (jid);
// Update database version
UPDATE jiveVersion SET version = 4 WHERE name = 'gateway';
# Add vcards table
CREATE TABLE gatewayVCards (
jid VARCHAR(255) NOT NULL,
value MEDIUMTEXT NOT NULL,
PRIMARY KEY (jid)
);
# Update database version
UPDATE jiveVersion SET version = 4 WHERE name = 'gateway';
-- Add vcards table
CREATE TABLE gatewayVCards (
jid VARCHAR2(255) NOT NULL,
value BLOB NOT NULL
);
CREATE INDEX gatewayVCrd_jid_idx ON gatewayVCards (jid);
-- Update database version
UPDATE jiveVersion SET version = 4 WHERE name = 'gateway';
commit;
-- Add vcards table
CREATE TABLE gatewayVCards (
jid VARCHAR(255) NOT NULL,
value TEXT NOT NULL
);
CREATE INDEX gatewayVCrd_jid_idx ON gatewayVCards (jid);
-- Update database version
UPDATE jiveVersion SET version = 4 WHERE name = 'gateway';
/* Add vcards table */
CREATE TABLE gatewayVCards (
jid NVARCHAR(255) NOT NULL,
value NTEXT NOT NULL
);
CREATE INDEX gatewayVCrd_jid_idx ON gatewayVCards (jid);
/* Update database version */
UPDATE jiveVersion SET version = 4 WHERE name = 'gateway';
/* Add vcards table */
CREATE TABLE gatewayVCards (
jid NVARCHAR(255) NOT NULL,
value TEXT NOT NULL
);
CREATE INDEX gatewayVCrd_jid_idx ON gatewayVCards (jid);
/* Update database version */
UPDATE jiveVersion SET version = 4 WHERE name = 'gateway';
-- Update database version
UPDATE jiveVersion SET version = 5 WHERE name = 'gateway';
// Update vcards table to proper value date type
ALTER TABLE gatewayVCards ALTER COLUMN value LONGVARCHAR NOT NULL;
// Update avatar table to proper imageData data type
ALTER TABLE gatewayAvatars ALTER COLUMN imageData LONGVARCHAR NOT NULL;
// Update database version
UPDATE jiveVersion SET version = 5 WHERE name = 'gateway';
# Update database version
UPDATE jiveVersion SET version = 5 WHERE name = 'gateway';
-- Update database version
UPDATE jiveVersion SET version = 5 WHERE name = 'gateway';
commit;
-- Update database version
UPDATE jiveVersion SET version = 5 WHERE name = 'gateway';
/* Update database version */
UPDATE jiveVersion SET version = 5 WHERE name = 'gateway';
/* Update database version */
UPDATE jiveVersion SET version = 5 WHERE name = 'gateway';
-- Add imageType to avatars table
ALTER TABLE gatewayAvatars ADD COLUMN imageType VARCHAR(25);
-- Update database version
UPDATE jiveVersion SET version = 6 WHERE name = 'gateway';
// Add imageType to avatars table
ALTER TABLE gatewayAvatars ADD COLUMN imageType VARCHAR(25);
// Update database version
UPDATE jiveVersion SET version = 6 WHERE name = 'gateway';
# Add imageType to avatars table
ALTER TABLE gatewayAvatars ADD COLUMN imageType VARCHAR(25);
# Update database version
UPDATE jiveVersion SET version = 6 WHERE name = 'gateway';
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment