Muc disco# returns infoservice-unavailable

Hi,

I am trying to federate Openfire and Broadsoft xmpp server for group chat.

When conference is on Openfire side and I try to invite a Broadsoft user, Broadsoft server sends a disco info after receiving the invitation :

<iq type=“get”

to=“prosody_broadsoft@xxx”

id=“qxmpp5213”

from="btbctestbtotauser4@xxx>

then openfire returns

<iq

from=‘prosody_broadsoft@xxx’

id=‘qxmpp5213’

to=‘btbctestbtotauser4@xxx’ type=‘error’ xml:lang=‘en’>

because of this Broadsoft server doesn’t sent his presence to the conference…

For instance cisco xmpp server answers correctly to this iq :

<iq from=‘btbctestbtotauser6@xxx’

id=‘qxmpp1110’

to=‘chat626712022520225@xxx’

type=‘get’ xml:lang=‘en-US’>

<iq from=‘chat626712022520225@xxxxx’

id=‘qxmpp1110’

to=‘btbctestbtotauser6@xxx’

type=‘result’ xml:lang=‘en-US’>

Could you please tell me why openfire returns error code=‘503’ ?

Regards,

Michel

because of this Broadsoft server doesn’t sent his presence to the conference…

The intermediate XMPP server doesn’t send the initial presence to join the MUC, that is done by the client joining the MUC. Although the XMPP server is free to query the MUC - I assume btbctestbtotauser4@xxx is the JID of the MUC - it shouldn’t block anything, e.g presences, based on the result of the query.

Hi,

I am not sure to understand your answer, the conference is initiated by an Openfire user (hosted on openfire).

When the Openfire user invites the Broadsoft user then the Broadsoft user sends a disco info to the muc room :

<iq type=“get”

to="open_fire@conference.room.xxx"

id=“qxmpp5213”

from="broadsoft_user@xxxx>

btbctestbtotauser4 is the JID of the user (not the room) invited by the Openfire user.

Openfire reponds to this disco info request with service-unavailable and this impedes Broadsoft user to send his join presence.

Regards,

Michel

Ahh so the user on the broadsoft server does perform the disco#info. You first wrote

Broadsoft server sends a disco info

Yep, there should be an IQ response to this.

Removing node=“http://jabber.org/protocol/disco#info” solves the issue…

Good eye. Out of curiosity: Which implementation did send the malformed request?

Are you sure that this request is malformed ? Other XMPP clients accept this request…

Pretty much malformed as in you are querying a node of an XMPP entity, being the MUC here, which does not exist. And because the node does not exists, the service returns service-unavailable. It’s not malformed in the sense that it is violating the XML schema or is not valid XMPP.