SIP vs XMPP (Jabber)
SIP e XMPP sono protocolli a livello di applicazione principalmente utilizzati per inviare messaggi vocali o IM su Internet. SIP è definito da RFC 3621 e XMPP è definito in RFC 3920. Fondamentalmente XMPP si è evoluto da IM e Presence, mentre SIP si è evoluto da Voice e Video over IP. XMPP ha aggiunto un'estensione chiamata Jingle per la negoziazione della sessione e SIP ha aggiunto un'estensione chiamata SIMPLE per supportare IM e Presence.
SIP (Session Initiation Protocol)
Session Initiation Protocol (SIP) è un protocollo a livello di applicazione utilizzato per stabilire, modificare e terminare sessioni multimediali come le chiamate VoIP. SIP può anche invitare nuove sessioni a sessioni esistenti come conferenze multicast. Fondamentalmente è indicato come protocollo di segnalazione in ambiente VoIP in grado di gestire la definizione delle chiamate, il controllo delle chiamate e la terminazione delle chiamate e la generazione di CDR (Call Detail Record) a fini di fatturazione.
XMPP (Extensible Messaging Presence Protocol)
XMPP è un protocollo aperto XML (Extensible Markup Language) per servizi di messaggistica in tempo reale, presenza e richiesta di risposta. Originariamente è stato sviluppato dalla comunità open source di Jabber nel 1999. Nel 2002 il gruppo di lavoro XMPP ha sviluppato l'adattamento del protocollo Jabber adatto per IM (Instant Messaging).
Differenza tra SIP e XMPP
Non possiamo semplicemente confrontare SIP e XMPP perché entrambi servono rispettivamente a scopi diversi come la creazione di sessioni e lo scambio di dati strutturati. Ma introduzione SIMPLE e Jingle presentano alcune funzionalità simili.
(1) SIP consente di stabilire, modificare e terminare la sessione, ma XMPP fornisce una pipe di streaming per lo scambio di dati strutturati tra un gruppo di client.
(2) SIP è un protocollo di risposta alle richieste basato su testo e XMPP è un'architettura server client basata su XML.
(3) I messaggi di segnalazione SIP passano tramite intestazioni e corpo SIP mentre in XMPP i messaggi passano attraverso lo streaming pipe. XMPP invia richieste, risposte, indicazioni o errori tramite XML tramite la pipe streaming.
(4) SIP viene eseguito su UDP, TCP e TLS mentre XMPP utilizza solo TCP e TLS.
(5) In SIP, l'agente utente può essere server o client, quindi l'agente utente può inviare o ricevere messaggi mentre nel client XMPP avvia solo richieste al server in modo che funzioni con NAT e Firewall.
(6) Sia SIP che XMPP sono facili da implementare.
Tecnicamente il confronto tra SIP e XMPP è come confrontare mele e arance perché i protocolli core hanno scopi diversi: incontro / scambio di sessioni / scambio di dati strutturati