XML Namespace issues?

With the move of jabberd to ejabberd I access to about half of my non-local contacts.

I tried to find some reason for this, and on network level it all complains about "invalid-namespace" issues:

IN: <?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:server' xmlns:db='jabber: server:dialback' to='barnet.com.au'>
OUT: <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='674374503' from='barnet.com.au' xml:lang='en'>
IN: <stream:error><invalid-namespace xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error>

(OUT is send by ejabberd)

According to the RFC:
<invalid-namespace/> -- the streams namespace name is something
other than "http://etherx.jabber.org/streams" or the dialback
namespace name is something other than "jabber:server:dialback"
(see XML Namespace Names and Prefixes (Section 11.2)).

But my understanding of the XMPP protocol isn't up to speed yet.

Is this a problem with ejabberd (it would explain the absence of half of my contacts) or a problem with other jabber servers?

Edwin

With the move of jabberd to

With the move of jabberd to ejabberd I access to about half of my non-local contacts.

Can you determine if the contacts you are 'missing' are on specific servers? What servers are those that you can't connect to?

The problem can have several reasons:

  • ejabberd has a newly discovered bug (rare)
  • your installation of ejabberd is faulty (maybe it's a DNS SRV issue, it can be fixed easily)
  • other Jabber server has bugs (rare)
  • other Jabber server installation is faulty (very rare)
  • the connection between your server and other specific server has 'hanged', for some unknown reason (rare, but possible)

How to check if your Jabber server can connect to other specific server?

  1. Login to an account on your server.
  2. Open the 'Service Discovery', 'Jabber Explorer', or whatever it is called (in Psi, Gajim, Tkabber, Exodus...)
  3. You will see your local server. Now type in the address bar the name of other Jabber server: jabber.org
  4. You should be presented with information from that other server. If you don't receive any information, then your server couldn't contact the other server.
  5. Now try to 'discover' those servers: jabber.ru jabberes.org jabber.com im.gentoo.org xmpp.org amessage.de
  6. Comment here which ones were you able to connect to and which ones you couldn't.

About the network messages you captured, are you sure all those messages are from the same 'conversation'? Message-1 is xmlns=jabber:server, but for some reason ejabberd answers in Message-2 with xmlns=jabber:client.

Did you change the configuration of listening ports on ejabberd.cfg?

And finally, what version of ejabberd (0.9.1, 0.9.8, svn...), and how did you install it (source, debian/apt, freebsd/ports, linux/installer, windows/installer...)?

resolved!

Resolved!

I had the SRV records pointing to 5222 instead of 5269.
*dumb*

Syndicate content