ejabberd-2.0.0 rosterusers db model

Hi Guys,

I'm writing a script that will transform a jabberd2 database into a ejabberd-2.0.0 database. Before anyoen ask why i dont use the existing script it is becuase In addition to to just converting the data straight over I'm now authenticating agiasnt a preexisting LDAP and will only need to transfer over people and contacts that currently exist on the LDAP.

Anyways I was looking over the rosterusers table and was wondering if someone could help me out w/ a few fields and what they can have in them and their meanings.

username - Duh its the username
jid - self explanitory
nick - see above
subscription - ???? I know one of the values is N
ask- ???? I know two values are I, O don't know what they mean
server - ????
subscribe - ????
type - ????

Can anyone please tell me the different values that each of the above w/ ???? can have and what each means. I looked around but could not find any documentation on this.

Thanks
Andy

This isn't documented, so

This isn't documented, so let's hope the source code is explanatory.

Reading the function record_to_string in mod_roster_odbc.erl:

    SSubscription = case Subscription of
			both -> "B";
			to   -> "T";
			from -> "F";
			none -> "N"
		    end,
    SAsk = case Ask of
	       subscribe   -> "S";
	       unsubscribe -> "U";
	       both	   -> "B";
	       out	   -> "O";
	       in	   -> "I";
	       none	   -> "N"
	   end,

The explanation of 'both', 'none'... come from the XMPP-IM RFC, check www.xmpp.org

And finally the string is composed:

    ["'", Username, "',"
     "'", SJID, "',"
     "'", Nick, "',"
     "'", SSubscription, "',"
     "'", SAsk, "',"
     "'", SAskMessage, "',"
     "'N', '', 'item'"].

The order is implied reading the header of another function:

raw_to_record(LServer, {User, SJID, Nick, SSubscription, SAsk, SAskMessage,
			_SServer, _SSubscribe, _SType}) 

So it seems SServer = 'N', SSubscribe ='', and SType = 'item'

It would be nice to have this properly described someday.

Syndicate content