Mese: giugno 2012

XMPP disco#info from server messenger.live.com, chat.facebook.com, google.com

xmpp stream xml viewer

Utile analizzatore di stream xml integrato nel programma cudumar-xmpp, permette di osservare lo scambio di pacchetti tra client e server.

Tanto per gustarci un po’ di cose “tricky” sui vari server e servizi XMPP diffusi ultimamente nella rete, qui una lista di risposte disco#info (XEP-0030: Service Discovery) aggiornate al 6 giugno 2012:

messenger.live.com

<iq from="messenger.live.com" id="3" to="xxx@messenger.live.com/{af7ed31f-5f9b-4198-b745-ae613ce63c2a}" type="result">
  <query xmlns="http://jabber.org/protocol/disco#info">
    <identity category="server" type="im" />
    <feature var="http://jabber.org/protocol/disco#info" />
    <feature var="vcard-temp" />
    <feature var="urn:xmpp:ping" />
    <feature var="jabber:iq:roster" />
    <feature var="http://messenger.live.com/xmpp/jidlookup" />
    <feature var="urn:xmpp:archive:auto" />
  </query>
</iq>

chat.facebook.com

<iq from="chat.facebook.com" to="xxx@chat.facebook.com/cudumar-xmpp_a389d347_4C1CCC07E13F9" id="3" type="result">
  <query xmlns="http://jabber.org/protocol/disco#info">
    <identity category="server" type="im" name="Facebook Jabber" />
    <feature var="http://jabber.org/protocol/commands" />
  </query>
</iq>

google.com (gtalk)

<iq to="xxx@gmail.com/cudumar-xmA4CD5484" from="xxx@gmail.com" id="3" type="result">
  <query xmlns="http://jabber.org/protocol/disco#info">
    <identity category="account" type="registered" name="Google Talk User Account" />
    <feature var="http://jabber.org/protocol/disco#info" />
    <feature var="http://jabber.org/protocol/disco#items" />
    <feature var="msgoffline" />
  </query>
</iq>

 
Il server GTalk di google non supporta query disco#info client-to-server (restituisce ), ma solo client-to-client.

Facebook invece viceversa, supporta solo richieste disco#info client-to-server.

Windows Live Messenger invece supporta correttamente richieste client-to-server. Nel caso di richieste client-to-client il server restituisce una risposta standard dal dubbio significato e dalla dubbia utilità:

<iq from="messenger.live.com" id="5" to="xxx@messenger.live.com/{2ddd7d77-0687-49ba-a6c4-efe52ad54b34}" type="result">
  <query xmlns="http://jabber.org/protocol/disco#info">
    <identity category="account" type="registered" />
    <feature var="http://jabber.org/protocol/disco#info" />
    <feature var="http://jabber.org/protocol/chatstates" />
  </query>
</iq>

Facebook chat XMPP vCard issue

E’ proprio bello quando capisci che gli standard aperti e gratuiti possiedono enormi potenzialità, peccato che servizi come Facebook e MSN Messenger facciano un uso non proprio corretto nelle loro implementazioni.

Devo ancora capire perchè il server XMPP di facebook (chat.facebook.com:5222) si emozioni così tanto da non rispondermi più, appena gli inoltro una semplicissima e banalissima richiesta per ottenere la propria vCard personale. Tutto conforme alle specifiche XEP-0054 (vcard-temp):

<iq id="5" type="get">
  <vCard xmlns="vcard-temp" />
</iq>

Qualcuno ha una anche banale ma simpatica idea per risolvere il problema?