Migration from ejabberd to jive messenger

Because I am stupid and didn’'t read the part that said “mark this as answered”.

Hrm. Ok I posted that last one because I had marked it answered by accident. (not that that’'s not probably obvious)

Hi Daniel,

Second thing first.

Gato and I discussed the issue you brought up about what would happen if you were moving users and their contacts from one domain to another. We decided the best approach would be to give users of the plugin an option to replace a given domain with a new one during the import process; this new feature is JM-369 in JIRA.

As for what all those number mean, I’‘ve copied the relevant code from the url=http://www.jivesoftware.org/builds/messenger/docs/latest/documentation/javad oc/org/jivesoftware/messenger/roster/RosterItem.htmlRosterItem[/url] class. Let me know if anything isn’'t clear.

Thanks,

Ryan

/**

  • Indicates the roster item should be removed.

*/

public static final SubType SUB_REMOVE = new SubType(“remove”, -1);

/**

  • No subscription is established.

*/

public static final SubType SUB_NONE = new SubType(“none”, 0);

/**

  • The roster owner has a subscription to the roster item’'s presence.

*/

public static final SubType SUB_TO = new SubType(“to”, 1);

/**

  • The roster item has a subscription to the roster owner’'s presence.

*/

public static final SubType SUB_FROM = new SubType(“from”, 2);

/**

  • The roster item and owner have a mutual subscription.

*/

public static final SubType SUB_BOTH = new SubType(“both”, 3);

/**

  • The roster item has no pending subscripton requests.

*/

public static final AskType ASK_NONE = new AskType("", -1);

/**

  • The roster item has been asked for permission to subscribe to their presence

  • but no response has been received.

*/

public static final AskType ASK_SUBSCRIBE = new AskType(“subscribe”, 0);

/**

  • The roster owner has asked to the roster item to unsubscribe from it’'s

  • presence but has not received confirmation.

*/

public static final AskType ASK_UNSUBSCRIBE = new AskType(“unsubscribe”, 1);

/**

  • There are no subscriptions that have been received but not presented to the user.

*/

public static final RecvType RECV_NONE = new RecvType("", -1);

/**

  • The server has received a subscribe request, but has not forwarded it to the user.

*/

public static final RecvType RECV_SUBSCRIBE = new RecvType(“sub”, 1);

/**

  • The server has received an unsubscribe request, but has not forwarded it to the user.

*/

public static final RecvType RECV_UNSUBSCRIBE = new RecvType(“unsub”, 2);

/code

That is exactly what I needed to see! =D Thanks!

And does that mean you are going to switch the other jid field to have the entire jid as well? This one:

(Don’‘t mean to harass, but I need to know these things if i’'m going to create a conversion script ;D )

Hi Daniel,

You’'re not harassing anyone.

And does that mean you are going to switch the other jid field to have the

entire jid as well?

It could, but the domain portion of the JID would probably have to be ignored during the import process since you can’‘t move a JID from one server to the next if the domain is different. i.e. you can’'t move a user with the JID of “user@oldserver” to a server with a domain of “newserver”.

I’‘m not sure if it’‘s just a Messenger thing but it doesn’'t store users full JIDs, rather it builds them up when need be using the username and the server (domain) name.

Maybe the schema should be modified from:

?

Thanks,

Ryan

I think that would make me happier. =) (if it said username instead of jid) That would also make it so if, at some point in the future, you all did do virtual hosts, you could simply add another field of or something. So do you think you are going to change it to Username then? I’'ll make my script go with that if so. =) And will keep an eye out for a new version of the plugin.

HI Daniel,

I’'ve attached an updated version of the plugin that has the schema changes (Username instead of Jid). Let us know how it works out.

Thanks,

Ryan

Plugin looks like it’‘s working great! Have to figure out some … other issues … now. =) Script I wrote isn’'t exactly pretty, but it converted to something jive was willing to import. =D Anyway, thanks!!!

Hi Daniel,

Good to hear you have things working. Would you be willing to share your script? There could be some real value in writing a howto on migrating from jabberd to Messenger.

Thanks,

Ryan

Certainly! I just would like to clean it up a tad. It’'s … ugly. At the moment. =)

I am running into one problem that I’‘m confused about. Maybe it’‘s easier to ask that question here! Basically, I import the file I create, all of the accounts get created like they should (from what I can tell). When I log in, however, none of my contacts “work”. Like no one is shown as online when I know a large number are indeed online. Likewise, when I go to export afterwards, I see different values for askstatus and such then I imported with. (right now I’‘m importing across the board as -1’'s for ask and recv status and 3 for substatus, just to test things out) Any ideas? Should I post the before and after and see if that helps?

Also, is there anywhere where I can chat live with folk or is the forum the main/only communication mechanism?

Hi guys,

I did successfully migrate today our ejabberd userlist to a JM. Publishing in case someone else willbe interested.

The migration was quite easy, first we made a text-based backup of ejabberd database, then created a couple of scripts for:

a) insert data to an LDAP (we use JM with LDAP now)

b) transfer rosters. Rosters were transferred using Smack the help of library. We just created an applicaiton that emulated 2 jabber clients - one for old server and another for new server, then Smack API allowed to copy groups and buddies.

Thats it. If you think this could be interested to anyone, I can put a webpage with more details and sources. Let me know.

Dmitri

Message was edited by:

dll

I’‘d like to see it! Mine converts to the userimportexport format. I’'m curious if yours would shed some light as to what mine is doing wrong!

Well, I’‘m going to have to hold off switching to Jive for now. It looks like s2s just “has some issues” right now and that’‘s an absolute requirement for me. I’‘ll keep an eye out for the next release and try that out. I believe the script I wrote for the import from ejabberd is working great though. I see some open bug reports and such in the tracker so I’'ll keep an eye on them too.

hi …

I am trying to setup a web based chat system for my site. I have two things to be done.

-> Enable the users of my system to be automatically logged into the chat

-> Save all the messages and generate reports

well i installed ejabberd and jive messenger. I want to use jwchat (because it is browser based). But i have some issues with the servers.

-> ejabberd is very flexible with jwchat because it directly supports http polling.

But i dont understand where is the database for ejabberd and where all the

messages and userinfo is stored and how can i acces it…??

-> coming to jive messenger it has browser based admin support to create

external databases but i really dont understand how to configure the http

binding thing with jwchat. Though there are installation steps in many places, i

need some thing that can give me baby steps to configure it.

so which is the best way to go…I really need help on this. Eagerly awaiting any ideas…

thanks

hi …

I am trying to setup a web based chat system for my

site. I have two things to be done.

→ Enable the users of my system to be automatically

logged into the chat

→ Save all the messages and generate reports

well i installed ejabberd and jive messenger. I want

to use jwchat (because it is browser based). But i

have some issues with the servers.

→ ejabberd is very flexible with jwchat because it

directly supports http polling.

But i dont understand where is the database for

ejabberd and where all the

messages and userinfo is stored and how can i

acces it…??

By default it is stored in Mnesia ( http://www.erlang.org/faq/x1306.html ). You can access the contents via QLC ( http://erlang.se/doc/doc-5.4.8/lib/stdlib-1.13.8/doc/html/qlc.html ) and there is also is a module for ejabberd to access the information using XML-RPC: http://ejabberd.jabber.ru/mod_xmlrpc

If you use ODBC as database backend, you can use SQL to access your database I guess.