Creating Transports

Hi All,

I have been trying to study the smack api recently, as I am in the process of creating a multi account enabled IM client. I have successfully managed to log on to a jabber account and chat from one jabber user to another. However now I would like to add the functionality of being able to also create and logon to other accounts (ie msn, gtalk etc) from the same client. From what I understand, I need to first of all…

  1. create some kind of a transport for each of the different accounts

  2. and then be able to add other users to the relevant accounts (ie add msn friends to my roster using the transport created above etc)

… but I have after my limited research become a little confused. I am with the understanding that to create a transport we need the following…

jabber:iq:register

… but most of the examples I have seen on the internet use the following…

jabber:iq:gateway:register

… so exactly what is the difference between the two… or do they mean the same thing ? And thirdly, what is the difference between the above and…

jabber:iq:gateway

… I would appreciate for someone to kindly explain the above… and possibly direct me in the approriate direction !!

Much appreciated !!!

correct me if I am wrong… but I think the official way to create a transport is jabber:iq:register… whereas jabber:iq:gateway:register is a custom xml tag used by the Spark client. As far as jabber:iq:gateway is concerned, it is used to…

“send a username string to the server and have it return a full valid jid for the username in question. For example, lets say my MSN email address is ninja@foo.bar. You can’t have @ in the username part of a jid… in other words you can’t have ninja@foo.bar@msn.jabber.server. The jabber:iq:gateway service will turn that into something like ninja%foo.bar@msn.jabber.server. Then it will handle knowing that % means @ on it’s end. It’s kinda clever.”

… it seems a bit clearer now. I hope this is of help to others who might be in a situation similar to what I was in.

Please read the following for further reference…

http://www.igniterealtime.org/community/docs/DOC-1003

regards