[jitsi-dev] Jid Overrided Server disco#info implementation


#1

Hi,

In ejabberd xmpp server implementation, it supports multiple virtual xmpp
hosts on a single physical domain host.

I have an xmpp virtual host e.g. "talk.org" setup and it resides on a
physical domain e.g. "talk.example.org"

i.e. "talk.example.org" is only a physical server and has no xmpp features
connection with "talk.org".

A Jitsi client installed on Windows XP has an jid i.e. abc123@talk.org with
"Override server default options" = "talk.example.org"

When jitsi-windows (version 2.9.5489) client launches, abc123@talk.org log
onto the xmpp talk.org as expected. From the ejabberd traces, however I see
that jitsi-windows client also sends an xmpp IQ request i.e.
http://jabber.org/protocol/disco#info to "talk.example.org". This causes the
"talk.org: xmpp host to perform an s2s connection to "talk.example.org" and
reply with <error code='404' type='cancel'>, since "talk.example.org" host
does not have any xmpp service implemented.

I would expect jitsi-windows should only send
http://jabber.org/protocol/disco#info to "talk.org" and not to
"talk.example.org" as it is only a physical media.

What should be the correct implementation? Please advise.

Note: this happens also for jitsi-ubuntu version (version 2.9.5488). I have
my jitsi client implementation on android based on jitsi-andorid open
source, it does not have this problem. I have also tried both the Gajim and
Pidgin on Windows XP. From ejabberd log, both client never attempt to send
http://jabber.org/protocol/disco#info to "talk.example.org".

Thanks & Regards,

CM Eng

============= ejabberd log (cut and paste only the relevant info)

···

================

2016-01-17 10:06:50.011 [debug] <0.600.0>@ejabberd_receiver:process_data:303
#####

==#== Received XML on stream = <<"<iq id=\"2AfKt-101\" type=\"get\"><query
xmlns=\"jabber:iq:roster\"></query></iq>

<iq id=\"2AfKt-102\" to=\"talk.example.net\" type=\"get\"><query
xmlns=\"http://jabber.org/protocol/disco#info&quot;></query></iq>">>

2016-01-17 10:06:50.248 [debug] <0.602.0>@ejabberd_s2s_out:get_addrs:1191
##### inet of talk.example.net resolved to: [{115,61,221,39}]

2016-01-17 10:06:50.249 [debug] <0.602.0>@ejabberd_s2s_out:open_socket2:300
##### s2s_out: connecting to {115,61,221,39}:5269

2016-01-17 10:06:50.249 [debug] <0.602.0>@ejabberd_s2s_out:open_socket2:311
##### s2s_out: connect return econnrefused

2016-01-17 10:06:50.272 [debug] <0.602.0>@ejabberd_s2s_out:get_addrs:1195
##### inet6 lookup of 'talk.example.net' failed: nxdomain

2016-01-17 10:06:50.272 [info] <0.602.0>@ejabberd_s2s_out:open_socket:253
##### s2s connection: talk.org -> talk.example.net (remote server not found)

2016-01-17 10:06:50.273 [debug] <0.602.0>@ejabberd_router:do_route:324 #####
route

        from
{jid,<<>>,<<"talk.example.net">>,<<>>,<<>>,<<"talk.example.net">>,<<>>}

        to
{jid,<<"abc123">>,<<"talk.org">>,<<"jitsi-1iktben">>,<<"abc123">>,<<"talk.or
g">>,<<"jitsi-1iktben">>}

        packet
{xmlel,<<"iq">>,[{<<"type">>,<<"error">>},{<<"to">>,<<"abc123@talk.org/jitsi
-1iktben">>},{<<"from">>,<<"talk.example.net">>},{<<"id">>,<<"2AfKt-102">>}]
,[{xmlel,<<"query">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/disco#info"

}],[]},{xmlel,<<"error">>,[{<<"code">>,<<"404">>},{<<"type">>,<<"cancel">>

}],[{xmlel,<<"remote-server-not-found">>,[{<<"xmlns">>,<<"urn:ietf:params:xm
l:ns:xmpp-stanzas">>}],[]}]}]}

2016-01-17 10:06:50.273 [debug] <0.601.0>@ejabberd_c2s:send_text:1856 #####

==#== Send XML on stream = <<"<iq from=‘talk.example.net
to=‘abc123@talk.org/jitsi-1iktben’ type=‘error’ id=‘2AfKt-102’><query
xmlns=‘http://jabber.org/protocol/disco#info’/><error code=‘404’
type=‘cancel’><remote-server-not-found
xmlns=‘urn:ietf:params:xml:ns:xmpp-stanzas’/></error></iq>">>

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


#2

If you say overriding, do you mean you specified the server manually in the account options?
If so, it wouldn't surprise me if there is a bug with that option somewhere. Can't you set up an SRV-Record at talk.org that points to talk.example.org? I'm pretty sure the problem would disappear then.

Ingo

Freundliche Grüsse,
Ingo Bauersachs

-- sent from my mobile

···

On 17.01.2016, at 16:09, cmeng.gm <cmeng.gm@gmail.com> wrote:

Hi,

In ejabberd xmpp server implementation, it supports multiple virtual xmpp hosts on a single physical domain host.
I have an xmpp virtual host e.g. “talk.org” setup and it resides on a physical domain e.g. “talk.example.org
i.e. “talk.example.org” is only a physical server and has no xmpp features connection with “talk.org”.

A Jitsi client installed on Windows XP has an jid i.e. abc123@talk.org with “Override server default options” = “talk.example.org

When jitsi-windows (version 2.9.5489) client launches, abc123@talk.org log onto the xmpp talk.org as expected. From the ejabberd traces, however I see that jitsi-windows client also sends an xmpp IQ request i.e. http://jabber.org/protocol/disco#info to “talk.example.org”. This causes the “talk.org: xmpp host to perform an s2s connection to “talk.example.org” and reply with <error code='404' type='cancel'>, since “talk.example.org” host does not have any xmpp service implemented.

I would expect jitsi-windows should only send http://jabber.org/protocol/disco#info to “talk.org” and not to “talk.example.org” as it is only a physical media.
What should be the correct implementation? Please advise.

Note: this happens also for jitsi-ubuntu version (version 2.9.5488). I have my jitsi client implementation on android based on jitsi-andorid open source, it does not have this problem. I have also tried both the Gajim and Pidgin on Windows XP. From ejabberd log, both client never attempt to send http://jabber.org/protocol/disco#info to “talk.example.org”.

Thanks & Regards,
CM Eng

============= ejabberd log (cut and paste only the relevant info) ================
2016-01-17 10:06:50.011 [debug] <0.600.0>@ejabberd_receiver:process_data:303 #####
==#== Received XML on stream = <<"<iq id=\"2AfKt-101\" type=\"get\"><query xmlns=\"jabber:iq:roster\"></query></iq>
<iq id=\"2AfKt-102\" to=\"talk.example.net\" type=\"get\"><query xmlns=\"http://jabber.org/protocol/disco#info&quot;></query></iq>">>

2016-01-17 10:06:50.248 [debug] <0.602.0>@ejabberd_s2s_out:get_addrs:1191 ##### inet of talk.example.net resolved to: [{115,61,221,39}]

2016-01-17 10:06:50.249 [debug] <0.602.0>@ejabberd_s2s_out:open_socket2:300 ##### s2s_out: connecting to {115,61,221,39}:5269

2016-01-17 10:06:50.249 [debug] <0.602.0>@ejabberd_s2s_out:open_socket2:311 ##### s2s_out: connect return econnrefused

2016-01-17 10:06:50.272 [debug] <0.602.0>@ejabberd_s2s_out:get_addrs:1195 ##### inet6 lookup of 'talk.example.net' failed: nxdomain

2016-01-17 10:06:50.272 [info] <0.602.0>@ejabberd_s2s_out:open_socket:253 ##### s2s connection: talk.org -> talk.example.net (remote server not found)

2016-01-17 10:06:50.273 [debug] <0.602.0>@ejabberd_router:do_route:324 ##### route
        from {jid,<<>>,<<"talk.example.net">>,<<>>,<<>>,<<"talk.example.net">>,<<>>}
        to {jid,<<"abc123">>,<<"talk.org">>,<<"jitsi-1iktben">>,<<"abc123">>,<<"talk.org">>,<<"jitsi-1iktben">>}
        packet {xmlel,<<"iq">>,[{<<"type">>,<<"error">>},{<<"to">>,<<"abc123@talk.org/jitsi-1iktben">>},{<<"from">>,<<"talk.example.net">>},{<<"id">>,<<"2AfKt-102">>}],[{xmlel,<<"query">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/disco#info">>}],[]},{xmlel,<<"error">>,[{<<"code">>,<<"404">>},{<<"type">>,<<"cancel">>}],[{xmlel,<<"remote-server-not-found">>,[{<<"xmlns">>,<<"urn:ietf:params:xml:ns:xmpp-stanzas">>}],[]}]}]}

2016-01-17 10:06:50.273 [debug] <0.601.0>@ejabberd_c2s:send_text:1856 #####
==#== Send XML on stream = <<"<iq from=‘talk.example.net’ to=‘abc123@talk.org/jitsi-1iktben’ type=‘error’ id=‘2AfKt-102’><query xmlns=‘http://jabber.org/protocol/disco#info’/><error code=‘404’ type=‘cancel’><remote-server-not-found xmlns=‘urn:ietf:params:xml:ns:xmpp-stanzas’/></error></iq>">>
  This email has been sent from a virus-free computer protected by Avast.
www.avast.com
_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev