La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
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.
Cisco raccomanda la conoscenza dei seguenti argomenti:
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.