Multi-User Chat not work across domains due to "404: server not found"

Hi,

I have a domain, let’'s say my.example.com and a friend has another domain, say his.example.net. We both run Wildfire servers. We both want MUC to work.

I can connect to a room on his.example.net, like room@conference.his.example.net but he cannot connect to a room on my.example.com and get’'s a 404 error. But I can join join room@conference.my.example.com with other users of my.example.com.

his.example.net and conference.his.example.net both have A records in DNS as well as matching PTR records. For my.example.com, I have both A and SRV records but I do not have matching PTR records.

his.example.net uses an SQL database for users and allows in-band registration, my.example.com uses PAM and does not allow in-band registration.

Otherwise, we are setup pretty much the same. Neither of us have changed many of the other options. We can do regular chats back and forth so the firewalls are definitely allowing xmpp-server traffic.

What the heck could be going wrong? I have been maintaining the same config file and internal database for a while across many upgrades so it is possible I did something in the config a while ago that is non-standard, but I can’'t see what it might be. Any help would be greatly appreciated.

Hey archangel,

Have you tried enabling the debug log to gather more information? BTW, XMPP requires SRV records to locate remote entities. Anyway, if no SRV record was found then Wildfire will try to open a connection to conference.his.example.net and if that fails then it will try again using his.example.net.

Let us know the new information you found in the logs.

Regards,

– Gato

I’‘m not seeing anything in debug info. I put a mark in, tried connecting, nothing. I don’‘t know about his.example.net though, that’‘s just the debug log on my.example.com. I’'ll try to get his as well.

I also want to clarify how SRV records are used. My domain, my.example.com, has a SRV record for xmpp-server.tcp. Is this “the” record for s2s communication? How are SRV and A records used in MUC? Do I need an A record and SRV record for conference.my.example.com?

Message was edited by: archangel

Hey archangel,

XMPP core specification specifies that SRV lookups should be executed to

identify the real IP and ports to use when connecting to any remote XMPP

entity (e.g. remote server or remote service). A records are not

actually being used but it has been discussed about the idea of using

TXT records as a fallback method when there is no SRV record. Wildfire

currently only performs SRV look ups and if that fails then a connection

to the intended domain on the default port will be used.

Moreover, Wildfire has a unique feature where recursive lookups are done

if the initial connection to the domain failed. This means that if

Wildfire is asked to connect to conference.jivesoftware.com and that

fails then it will try to connect to jivesoftware.com. And if

conference service is being provided by jivesoftware.com then things

will go fine. This novel approach tries to provide a practical solution

for all those installations where SRV records are not being created for

each hosted subdomain/service.

Regards,

– Gato

Debug log from his.example.net:

2006.08.01 16:24:56 Error sending packet to remote server:

java.lang.Exception: Failed to create connection to remote server

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPac ket(OutgoingSessionPromise.java:143)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$300(OutgoingSess ionPromise.java:40)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSession Promise.java:95)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:595)

Okay, and the service records for any services are xmpp-server? So I should have

xmpp-server.tcp.conference.my.example.com 0 0 5269 host.my.example.com

Yes. That is basically correct. – Gato