Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Panoramica sull'aggiornamento della sessione SIP

Interoperabilità e compatibilità

Interoperabilità

Compatibilità

Ruolo degli agenti utente

Intestazione Session-Expires

Intestazione Min-SE

Messaggio di risposta 422

Intestazioni supportate e obbligatorie

Esempio di flussi di chiamata

Eliminazione dei problemi di interoperabilità con l'aggiornamento

Consumo di Mid-Call RE-INVITE/UPDATE

Informazioni correlate

Introduzione

In questo documento viene descritto come risolvere i problemi relativi all'aggiornamento della sessione SIP (Session Initiation Protocol) su CUBE (Cisco Unified Border Element).

Contributo di Andres Salgado, Technical Marketing Engineer CUBE.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- CUBO

- TCP

- SIP

- UDP

Componenti usati

Il documento può essere consultato per tutte le versioni software o hardware.

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Panoramica sull'aggiornamento della sessione SIP

La funzionalità SIP (Session Initiation Protocol) del supporto timer sessione consente di aggiornare periodicamente le sessioni SIP con richieste INVITE ripetute. Le richieste INVITE ripetute, o re-INVITE, vengono inviate su una coda di chiamata attiva per consentire agli agenti utente (UA) o ai proxy di determinare lo stato di una sessione SIP. Senza questo meccanismo keepalive, i proxy che ricordano le richieste in entrata e in uscita (proxy stateful) possono continuare a mantenere inutilmente lo stato della chiamata. Se un agente utente non riesce a inviare un messaggio BYE al termine di una sessione o se il messaggio BYE viene perso a causa di problemi di rete, un proxy con stato non è in grado di sapere se la sessione è terminata. Il comando RE-INVITES garantisce che le sessioni attive rimangano attive e che le sessioni completate vengano terminate.

Interoperabilità e compatibilità

Interoperabilità

Questa funzionalità fornisce un aggiornamento periodico delle sessioni SIP. L'aggiornamento periodico consente agli agenti utente e ai proxy di monitorare lo stato di una sessione SIP, al fine di evitare il blocco delle risorse di rete in caso di errori di rete.

Compatibilità

Solo uno dei due agenti utente o partecipanti proxy a una chiamata deve implementare la funzione di supporto timer sessione SIP. Questa funzione è facilmente compatibile con le vecchie reti SIP. La funzione SIP Session Timer Support aggiunge anche due nuove intestazioni generali utilizzate per negoziare il valore dell'intervallo di aggiornamento.

Ruolo degli agenti utente

La richiesta INVITE iniziale stabilisce la durata della sessione e può includere un'intestazione Session-Expires e un'intestazione Min-SE. Queste intestazioni indicano il valore del timer della sessione richiesto dal client User Agent (UAC). Un server UAS (User Agent Server) o un proxy ricevente può ridurre il valore del timer della sessione, ma non il valore dell'intestazione Min-SE. Se la durata del timer della sessione è inferiore al minimo configurato, il proxy o UAS può anche inviare un messaggio di risposta 422. Se il proxy o UAS ritiene che il valore del timer della sessione sia accettabile, copia l'intestazione Session-Expires nella risposta 2xxclass.

Un UAS o un proxy può inserire un'intestazione Session-Expires in INVITE se il controllo dell'account utente non ne ha inclusa una. In questo modo, un controllo dell'account utente può ricevere un'intestazione Session-Expires in una risposta anche se non è presente alcuna intestazione nella richiesta.

Nella risposta 2xx, il parametro refreshernell'intestazione Session-Expires indica chi esegue re-INVITES. Ad esempio, se il parametro contiene il valore UAC, il controllo dell'account utente esegue gli aggiornamenti. Per i problemi di compatibilità, solo uno dei due agenti utente deve supportare la funzione timer sessione e in tal caso l'agente utente che la supporta esegue gli aggiornamenti. L'altro agente utente interpreta gli aggiornamenti come inviti ripetitivi e li ignora.

Le richieste Re-INVITE vengono elaborate in modo identico alle richieste INVITE, ma si escono a intervalli di sessione predeterminati. I Re-INVITE riportano la nuova data di scadenza della sessione. L'agente utente responsabile delle richieste di re-INVITE invia una richiesta di re-INVITE prima della scadenza della sessione. In assenza di risposta, l'agente utente invia una richiesta BYE per terminare la chiamata prima della scadenza della sessione. Se non viene inviato un nuovo INVITE prima della scadenza della sessione, il Controllo dell'account utente o l'account utente può inviare un BYE.

Se la risposta 2xxnon contiene un'intestazione Session-Expires, non vi è alcuna scadenza di sessione e non è necessario inviare re-INVITES.

Intestazione Session-Expires

L'intestazione Session-Expires trasmette l'intervallo di sessione per una chiamata SIP. Viene inserita in una richiesta INVITE ed è consentita in qualsiasi risposta di classe 2xxa un INVITE. La presenza indica che Controllo dell'account utente desidera utilizzare il timer della sessione per questa chiamata. A differenza dell'intestazione SIP-Expires, può contenere solo un delta-time, ovvero l'ora corrente, più l'intervallo di sessione dalla risposta.

Ad esempio, se un server UAS genera una risposta OK di 200 a un'istruzione RE-INVITE contenente un'intestazione Session-Expires con un valore di 1800 secondi (30 minuti), il server UAS calcola la scadenza della sessione come 30 minuti dopo l'invio della risposta OK di 200. Per ogni proxy, la scadenza della sessione è di 30 minuti dopo la ricezione o l'invio del 2xx. Per il controllo dell'account utente, il tempo di scadenza è di 30 minuti dal ricevimento della risposta finale.

Il valore consigliato per l'intestazione Session-Expires è 1800 secondi.

La sintassi dell'intestazione Session-Expires è:

Session-Expires  =  ("Session-Expires" | "x") ":" delta-seconds

[refresher]

refresher        =  ";" "refresher" "=" "UAS"|"UAC"

Il parametro Refresherè facoltativo nell'istruzione INVITE iniziale, sebbene possa essere impostato su UACper indicare che si tratta di quello per l'avvio dell'aggiornamento della sessione. Per la risposta 200 OK è necessario impostare il parametro refresher.

Intestazione Min-SE

A causa del carico di elaborazione delle richieste INVITE, è possibile configurare un valore timer minimo che il proxy, UAC e UAS possono accettare. Proxy, UAC e UAS. Il comando min-sec consente di impostare il timer minimo e viene visualizzato nell'intestazione Min-SE nella richiesta INVITE iniziale.

Quando viene effettuata una chiamata, la presenza dell'intestazione Min-SE informa l'UAS e gli eventuali proxy del valore minimo accettato dall'UAC per la durata del timer della sessione, in secondi. Il valore predefinito è 1800 secondi (30 minuti). Si consiglia di non ridurre il timer della sessione al di sotto del valore impostato, gli UAS e i proxy impediscono la generazione dell'errore 422 da parte di UAC. Una volta impostato, il valore themin-secommand influisce su tutte le chiamate originate dal router. Se l'intestazione Min-SE non è presente, l'agente utente accetta qualsiasi valore.

La sintassi dell'intestazione Min-SE è:

Min-SE  =  "Min-SE" ":" delta-seconds

Messaggio di risposta 422

Se il valore dell'intestazione Session-Expires è troppo piccolo, il server UAS o il proxy rifiuta la chiamata con un messaggio di risposta 422 Session Timer Too Small. Con il messaggio di risposta 422, il proxy o UAS include un'intestazione Min-SE che indica il valore minimo di sessione che può accettare. Controllo dell'account utente può quindi ritentare la chiamata con un valore del timer della sessione maggiore.

Se viene ricevuto un messaggio di risposta 422 dopo una richiesta INVITE, il controllo dell'account utente può riprovare a eseguire INVITE.

Intestazioni supportate e obbligatorie

La presenza dell'argomento Timer nell'intestazione Supported indica che l'agente utente supporta il timer della sessione SIP. La presenza dell'argomento Timer nell'intestazione Require indica che l'agente utente opposto deve supportare il timer della sessione SIP affinché la chiamata venga eseguita correttamente.

- Nella risposta 2xx, il parametro refreshernell'intestazione Session-Expires indica chi esegue Re-INVITES

- Se la risposta 2xx non contiene un'intestazione Session-Expires, non vi è alcuna scadenza della sessione e non è necessario inviare Re-INVITES

- Il parametro refresher è facoltativo nell'istruzione INVITE iniziale. Per la risposta 200 OK deve essere impostato il parametro refresher

- L'intestazione Min-SE informa l'UAS e gli eventuali proxy del valore minimo accettato dall'UAC per la durata del timer della sessione, in secondi. Il valore predefinito è 1800 secondi (30 minuti)

Esempio di flussi di chiamata

Chiamata in entrata dal provider SIP, la risposta è impostata su Controllo dell'account utente, pertanto 15 minuti dopo il 200 OK, Controllo dell'account utente (provider SIP) invia un aggiornamento della sessione (re-invito);

Cisco Unified Communications Manager (CUCM) invia un aggiornamento della sessione dopo 86400 secondi;

Scadenza sessione Il valore predefinito inviato da CUCM è 1800, ma può essere aumentato a un massimo di 86400.

Eliminazione dei problemi di interoperabilità con l'aggiornamento

1. CUBE può disabilitare l'aggiornamento della sessione con i profili SIP.

voice class sip-profiles 200

request ANY sip-header Allow-Header modify ", UPDATE" "“

Response ANY sip-header Allow-Header modify ", UPDATE" "“

Voice service voip

sip

sip-profiles 200

2. Il comando session refresh in SIP in voice service voip aggiunge una scadenza della sessione a INVITE in uscita se non è presente un'intestazione nella tappa in entrata.

3. Impostare l'aggiornamento della sessione su Invita anziché su Aggiorna, CUCM 10.x e versioni successive.

Metodo Session Refresh nel profilo SIP in CUCM.

Consumo di Mid-Call RE-INVITE/UPDATE

Evita la necessità di reinviti/aggiornamenti inviati dalla rete e li utilizza localmente per evitare problemi di interoperabilità. L'aggiornamento della sessione viene trasmesso solo se è presente una modifica del supporto.

Consumo con riinvito a metà chiamata

CUBE utilizza reinviti con segnalazione di chiamata intermedia passthru media-change. CUBE gestisce ogni gamba in modo indipendente.

Dopo 15 minuti viene visualizzato l'aggiornamento della sessione.

Esempio di utilizzo con reinvito a Midcall con intestazioni di scadenza sessione.

Informazioni correlate

- Timer sessione in SIP

- SIP RFC

- Documentazione e supporto tecnico – Cisco Systems