Hrm, testing on an internal jabberd2, and then from jabberd2 to ejabberd - the presence element keeps it's jabber:server namespace.
I think that when the stanza goes from s2s to c2s, and visa vera, you should only be changing the namespace on the stanza's root node - and not on all the subnodes inside the stanza too. On 11/30/05, Matthias Wimmer <[EMAIL PROTECTED]> wrote: > Hi! > > > I am currently finishing namespace support for the next release of > jabberd14. One remaining thing that is not completely clear to me is the > handling of the different namespace IRIs on c2s- and s2s-links. > Currently I am just mapping all three namespaces 'jabber:client', > 'jabber:server', and 'jabber:component:accept' to the same jabberd14 > internal namespace. When I am serializing the stanzas, I check which > type of connection the stanza is serialized on and use the standard > namespace IRI for this type of connection. > > The problem I have with that is the following: > > Assume a client sends the following stanza: > > <message xmlns='jabber:client' from='[EMAIL PROTECTED]' > to='[EMAIL PROTECTED]'> > <body>Some example stanza, that is not very useful, but should > demonstrate my problem</body> > <x xmlns='http://example.com/someStrangeExtension'> > <presence xmlns='jabber:server'/> > </x> > </message> > > This stanza gets delivered to user2 as: > > <message xmlns='jabber:client' from='[EMAIL PROTECTED]' > to='[EMAIL PROTECTED]'> > <body>Some example stanza, that is not very useful, but should > demonstrate my problem</body> > <x xmlns='http://example.com/someStrangeExtension'> > <presence xmlns='jabber:client'/> > </x> > </message> > > (Note the namespace switch for the <presence/> element.) > Is this namespace change allowed, or is this an error? > > In that simple case I could keep the namespace of the presence element > intact very easily by just switching namespaces, when resending from one > connection type to another. But it gets more complicated when user2 is > on another server and I have to use s2s. In that case <message/> and > <presence/> for sure are send as 'jabber:server' to the other server. > But how does the other server know, that only the namespace of the > <message/> element has to be mapped back to 'jabber:client' before delivery? > > > Tot kijk > Matthias > > -- - Norman Rasmussen - Email: [EMAIL PROTECTED] - Home page: http://norman.rasmussen.co.za/
