[ejabberd] Server-to-Server

Jannie Pieterse peerfolder at gmail.com
Mon Mar 26 11:58:08 MSD 2007


Hi,

Can anyone explain to me how the S2S (Server-to-Server) dialback works?  I
have managed to create a S2S connection if i initiate the connection.  But
if the ejabberd (0.9.8) initiates the connection the S2S does not work.


Firstly here is how the S2S works if i initiate the connection.

1) ServerX (My jabber server) creates connection (CON1) to EjabberD (Ejab)
2) on CON1 : ServerX sends : <stream:stream xmlns:stream="
http://etherx.jabber.org/streams" xmlns="jabber:server" to="serv.x.com"
version="1.0" xmlns:db="jabber:server:dialback">
3) [CON1] : Ejab sends : <?xml version='1.0'?><stream:stream xmlns:stream='
http://etherx.jabber.org/streams' xmlns='jabber:server'
xmlns:db='jabber:server:dialback' id='1899568158'>
4) [CON1] : ServerX sends : <db:result from='serv.x.com' to='ejab.com
'>a2ef419e915f7a0ffafc48ee8b11793c53acd489</db:result>

5) Ejab creates new connection (CON2) to ServerX
6) [CON2] : Ejab sends : <?xml version='1.0'?><stream:stream xmlns:stream='
http://etherx.jabber.org/streams' xmlns='jabber:server'
xmlns:db='jabber:server:dialback' to='serv.x.com'>
7) [CON2] : ServerX sends : <stream:stream xmlns:stream="
http://etherx.jabber.org/streams" xmlns="jabber:server" id="ykSCf-0"
version="1.0" xmlns:db="jabber:server:dialback">
8) [CON2] : Ejab sends : <db:result from='ejab.com' to='serv.x.com
'>2109998309</db:result>
9) [CON2] : Ejab sends : <db:verify from='ejab.com' to='serv.x.com'
id='1899568158'>a2ef419e915f7a0ffafc48ee8b11793c53acd489</db:verify>
10) [CON2] : ServerX sends : <db:verify from='serv.x.com' to='ejab.com'
id='1899568158' type='valid'/>

11) [CON1] : ServerX sends : <db:verify from='serv.x.com' to='ejab.com'
id='ykSCf-3'>2109998309</db:verify>
12) [CON1] : Ejab sends : <db:result from='ejab.com' to='serv.x.com'
type='valid'/>
13) [CON1] : Ejab sends : <db:verify from='ejab.com' to='serv.x.com'
id='ykSCf-3' type='valid'/>

14) [CON2] : ServerX sends : <db:result from='serv.x.com' to='ejab.com'
id='h9C31-5' type='valid'/>

After this the S2S seems to work.   If a client on the one domain wants to
communicate to a client on a other domain, the messages gets through.

Now the problem is if the Ejab server initiates the connection!
I do everything i reverse as above.  It gets to step 10 then the Ejab server
try to create a new connection to my server and sends then the following
over that connection!
*1) <?xml version='1.0'?><stream:stream xmlns:stream='
http://etherx.jabber.org/streams' xmlns='jabber:server'
xmlns:db='jabber:server:dialback' to='serv.x.com'>
*2) I Reply : <stream:stream xmlns:stream="http://etherx.jabber.org/streams"
xmlns="jabber:server" id="4zCl8-2" version="1.0"
xmlns:db="jabber:server:dialback">
*3) <db:verify from='ejab.com' to='serv.x.com'
id='238406514'>2f7825b63a333bba814b10de49a44994223a5fad</db:verify>


Why is it trying to create a new connection?  I really think i am lost with
this, please help me.  If someone can give me a tcp dump or a example of how
it should be done.

Thanks
Phil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jabber.ru/pipermail/ejabberd/attachments/20070326/7206dabd/attachment.htm 


More information about the ejabberd mailing list