Breve introduzione

Negli scorsi articoli, abbiamo visto cos’è il SIP e come indagare in caso qualcosa non andasse per il verso giusto.
Oggi parleremo, invece, di come avviene la comunicazione tra client SIP.

La comunicazione tra client SIP si basa su messaggi di testo che descrivono richieste e risposte e, nello specifico, utilizza il set di caratteri UTF-8. I messaggi SIP si dividono in due categorie: Requests (richieste) e Responses (risposte) e prendono il nome di Metodi.

Le richieste SIP sono dei codici utilizzati per stabilire una connessione. A loro segue una risposta, che generalmente indica se la richiesta è riuscita o meno.

  1. Core Methods
  2. Extension Methods

I Core Methods (metodi fondamentali) sono definiti all’interno della RFC3261 e sono necessari al fine di stabilire una sessione correttamente:

  • INVITE: Stabilisce una sessione;
  • ACK: Conferma una richiesta INVITE;
  • BYE: Termina una sessione;
  • CANCEL: Cancella la richiesta di una sessione;
  • REGISTER: Comunica la posizione dell’utente (hostname, IP);
  • OPTIONS: Comunica informazioni sulle funzionalità dei telefoni SIP (Es. Codec Audio).

I metodi di estensione sono stati definiti dopo. Essi sono:

  • PRACK: Provisional Acknowledgement (RFC3262);
  • SUBSCRIBE: Inscrive l’utente per nuove notifiche (RFC2848);
  • UNSUBSCRIBE: Disinscrive l’utente dalla ricezione di notifiche (RFC2848);
  • NOTIFY: Notifica l’inscritto di un nuovo evento (RFC2848);
  • PUBLISH: Pubblica un evento al Server (RFC3903);
  • INFO: Invia informazioni durante la sessione (RFC2976);
  • REFER: Chiede al destinatario di effettuare un trasferimento di chiamata (RFC3515);
  • MESSAGE: Invia messaggi istantanei (RFC3428);
  • UPDATE: Modifica lo stato di una sessione (RFC3311).

Ora che abbiamo un’idea generale su come funziona il SIP, nel prossimo articolo parleremo di come funziona nello specifico il metodo INVITE.