xmpp

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?

Lo sviluppo del cudumar friulano procede spedito verso il successo!

Sono diversi mesi che seguiamo un progetto davvero interessante: cudumar-xmpp. Si tratta di un client XMPP gratuito, innovativo per la sua leggerezza e usabilità.
Nato in terra friulana da un anno e qualche mese, già si è inserito di gran prepotenza tra i client più utilizzati ed apprezzati.
Dopo una prima intervista di qualche mese fa, siamo di nuovo qui a dare la voce ad uno degli ideatori nonchè sviluppatori del progetto, in previsione dell’imminente rilascio della nuova versione del client:

Abbiamo lavorato moltissimo al supporto dello standard vCard, in modo tale da ottene informazioni sempre aggiornate dai propri contatti, visualizzarne avatar personali e impostandone di propri.

– commenta Daniele Tenero.

cudumar xmpp source code

cudumar-xmpp è sviluppato in WPF, C# .Net Framework 4

Il lavoro è stato svolto nel rispetto dei notri tre principi: leggerezza, stabilità, usabilità. Attualmente siamo in fase di test, abbiamo pianificato l’uscita della nuova release stabile a fine giugno 2012, vi terremo aggiornati!

xmpp sasl mechanisms source code

cudumar-xmpp supporta la maggior parte dei sistemi di autenticazione SASL utilizzati attualmente: ANONYMOUS, PLAIN, DIGEST-MD5, X-GOOGLE-TOKEN, X-OAUTH2, X-MESSENGER-OAUTH2, X-FACEBOOK-PLATFORM

Un’altra importante novità riguarda il supporto di nuovi meccanismi di autenticazione, per citarne alcuni: X-GOOGLE-TOKEN, X-OAUTH2, X-MESSENGER-OAUTH2. Soprattutto l’ultimo, il quale permette l’accesso al network MSN (Live Messenger) di Microsoft. In questo modo sarà possibile connettersi ad MSN anche senza il pesante e variopinto Windows Live Messenger.

Bellissima questa ultima notizia, è davvero emozionante che anche Microsoft si sia aperta a standard liberi come XMPP e che giovani friulani subito raccolgano questa opportunità per aprire nuovi orizzonti al proprio progetto.

Per finire, abbiamo l’onore di pubblicare in anteprima il changelog della prossima versione che verrà rilasciata il prossimo mese:
cudumar-xmpp changelog v0.0.3 #
- disco#info support (XEP-0030: Service Discovery)
- caps support (XEP-0115: Entity Capabilities)
- vcard-temp (XEP-0054: vcard-temp)
- vcard-temp:x:update (XEP-0153: vCard-Based Avatars)
- SASL X-GOOGLE-TOKEN authentication supported
- SASL X-MESSENGER-OAUTH2 authentication supported
- urn:xmpp:ping support (XEP-0199: XMPP Ping)

Da questa pagina ospitata su google code è possibile scaricare l’ultima versione e i “source code” del progetto: download cudumar-xmpp.

Cudumar-xmpp, un nuovo client gratuito e leggero conforme allo standard jabber/xmpp

Oggi presentiamo un innovativo software per accedere ai network XMPP: cudumar-xmpp. Gratuito, leggero, 100% conforme allo standard XMPP. Il nome buffo deriva dalle origini geografiche degli ideatori, friulani DOC e con uno spiccato amore per le verdure. Infatti cudumar in friulano significa cetriolo, un nome decisamente buffo da assegnare ad un programma!

cudumar-xmpp versione 0.0.2

cudumar-xmpp versione 0.0.2

Ho avuto il piacere di incontrare di persona Daniele Tenero, uno degli ideatori.

La domanda di rito: come nasce questo nome… “cudumar”?
A me piaceva “cudumar & verzutin”. Hai mai fatto una minestra di cetrioli e verze? Spettacolare… dovresti provarla. Fai bollire due cetrioli grossi a piacere in un litro d’acqua, dagli solo una lavata sotto acqua corrente ma non togliere la buccia! E’ la parte più buona, i cetrioli non vanno pelati. Aggiungi metà verza e lascia riposare per qualche minuto. Frulla il tutto con un mixer ad immersione, aggiungi sale, pepe se vuoi anche una cipolla che fa sempre bene e ti leccherai i baffi.
Volevamo un nome simpatico, che ricordasse la nostra friulanità, l’amore per le verdure, lo stile di vita semplice e casereccio. E così è anche cudumar-xmpp, semplice e anche un po’ contadino, senza tanti fronzoli un po’ come la gente friulana, che mantiene ancora un forte legame con la terra e la natura.

Parlaci di questo progetto. Perché è nato?
Inizialmente voleva solo essere un esercizio di stile, ne più ne meno. Ci interessiamo da tempo di protocolli e standard aperti sia per lavoro che per passione, è una filosofia che ci piace e intriga moltissimo. Tutto è nato dalla necessità di approfondire come lavora il server Jabber di Google Talk per valutarne possibili interazioni con client esterni. Soprattutto per quanto riguarda la trasmissione audio vocale, le chiamate VoIP, i flussi video. Un bel lavoro di reverse engineering che ci ha portati a conoscere nel dettaglio lo standard xmpp, le sue estensioni ma anche molte variazioni “fuori standard”. E’ nato per passione, perchè a noi piace impastarci il cervello, tenerci sempre in movimento, e questi risultati ci ripagano con grande soddisfazione.

Dopo un approccio filosofico buttiamoci sul tecnico. Quali tecnologie adotta cudumar-xmpp?
Le ultime e più innovative sul mercato: WPF .Net Framework 4. Con WPF si semplifica enormemente tutta l’analisi e lo sviluppo dell’interfaccia utente. L’utilizzo della versione 4 del .Net Framework permette di sfruttare tutti i vantaggi di un linguaggio di alto livello e di particolari funzionalità. Esempio: LINQ to XML ci ha permesso di semplificare notevolmente l’implementazione del protocollo XMPP, che per chi non lo sapesse è basato su XML.

Un progetto nato da poco ma già sulla bocca di tutti, se ne parla molto nelle comunità online. Quali sono i piani di sviluppo futuri?
Abbiamo puntato molto sul supporto alla chat di Facebook, con l’implementazione di un nuovo meccanismo SASL (DIGEST-MD5) per l’autenticazione ai servizi facebook. Attualmente, con questa nuova release, cudumar-xmpp è in grado di collegarsi a qualsiasi server jabber che supporti SASL PLAIN / TLS / SASL DIGEST-MD5. Abbiamo in programma di supportare altri meccanismi di autenticazione per estendere il supporto alla totalità dei servizi jabber in rete. Oltre questo aspetto tecnico ci preme il restiling grafico del logo, stiamo valutando diverse proposte grafiche da persone altamente fantasiose.

Un cetriolo parlante quindi?
Potrebbe essere.

Ultima domanda, ma non la meno importante: dove ti troviamo in rete?
Esiste un blog del progetto dove è possible restare sempre aggiornati sulle ultime novità e ultime releases, una pagina su facebook che rende il tutto molto social, la pagina di progetto per gli sviluppatori ospitata su google code dove è possibile contribuire e scaricare l’ultima versione del programma.
Cudumar Blog
Cudumar su Facebook
Cudumar su Google Code
Cudumar su Google Plus