Nello scorso articolo abbiamo parlato del metodo SIP Subscribe ed i relativi metodi associati. Ad essi si aggiunge il metodo Publish, introdotto con il documento RFC3903.

A cosa serve il metodo PUBLISH

Come abbiamo visto nell’articolo riguardante il metodo Subscribe, un UAC sottoscritto ad un evento, riceve un Notify ogni volta che lo stato cambia. Ma come fa il Server SIP a sapere quando notificare lo UAC? Per questo scopo, è stato introdotto il metodo Publish.

Supponiamo che Mario voglia ricevere aggiornamenti riguardo lo stato di Luca, ci troveremo in uno scenario così composto:

  1. Mario invia un Subscribe al server SIP, chiedendo di ricevere aggiornamenti sullo stato di Luca;
  2. Il server gli risponde subito con un Notify, con i campi impostati in questo modo:
    – To: Indirizzo di Mario;
    – From: Indirizzo di Luca;
    – Event: Stato.
  3. Luca imposta il proprio stato su OCCUPATO, inviando un messaggio Publish al server. I campi di intestazione, in questo caso, saranno così compilati:
    – To: Indirizzo di Luca;
    – From: Anch’esso con l’indirizzo di Luca;
    – Event: Stato.
    Come possiamo ben notare, nessun campo contiene l’indirizzo di Mario. Questo perché il client SIP di Luca non sa che qualcuno vuole ricevere aggiornamenti in merito al suo stato, per cui si limita ad aggiornare il solo server SIP.
  4. Una volta che il server ha ricevuto il Publish da Luca, informerà Mario tramite il metodo Notify.

Dall’immagine che segue, possiamo capire meglio lo scenario:

Flusso sip metodo Publish
Flusso SIP metodo PUBLISH

Per conoscere gli altri metodi, fondamentali e di estensione, puoi andare nell’apposita sezione: Metodi SIP