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 utilizzare lo script di normalizzazione SIP (Session Initiation Protocol) in Cisco Call Manager (CCM) con alcuni esempi di base.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Il riferimento delle informazioni contenute in questo documento è la CCM versione 11.5.
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.
Nel caso del trunk SIP, lo script deve essere applicato direttamente sul trunk SIP. L'utilizzo dello script nel profilo SIP anziché nel Trunk non funzionerà.
Di seguito sono riportati i passaggi da seguire:
2. Passare a Dispositivo > Trunk.
Selezionare il Trunk al quale si desidera applicare lo script e nella pagina di configurazione dello script selezionare lo script creato in precedenza. Selezionare l'opzione Enable Trace per stampare le modifiche apportate dallo script nei log SDL (Signal Distribution Layer) come mostrato nell'immagine. Per rendere effettive le modifiche, salvare la configurazione, applicare la configurazione e quindi reimpostare il trunk.
In caso di telefoni SIP, è necessario utilizzare lo script sul profilo SIP dei telefoni.
Di seguito sono elencati i passaggi da seguire.
La fonte principale per i passaggi dettagliati su come sviluppare lo script di normalizzazione SIP è la seguente: Guida per gli sviluppatori per la trasparenza e la normalizzazione del SIP.
Questa guida contiene diverse funzioni disponibili per la modifica nei messaggi SIP e nel contenuto SDP (Session Description Protocol) e altre API avanzate.
Di seguito sono riportati alcuni script di esempio di base:
Sostituire l'anonimo dall'intestazione From del messaggio SIP INVITE/REINVITE in uscita.
M = {} function M.outbound_INVITE(msg) -- Replacing the Anonymous from From Header local from = msg:getHeader("From") local newfrom = string.gsub(from, "anonymous" ,"1111") msg:modifyHeader("From", newfrom) end return M
Codice | Spiegazione |
M={0} | Inizializzazione del contenuto del messaggio. M ottiene qui tutto il contenuto del messaggio SIP |
funzione M.outbound_INVITE(msg) | Funzione Lua applicata al messaggio M (SIP Message) nella direzione in uscita INVITE/REINVITE. La direzione viene sempre decisa in termini di CUCM, sia in entrata che in uscita verso di esso. Il tipo di messaggio può essere di tipo diverso, ad esempio INVITE, 183, 200. Per ulteriori informazioni, consultare la sezione Overview del manuale Developers Guide for SIP Normalization. |
local from = msg:getHeader("Da") | Archivia il contenuto del messaggio From in una variabile locale |
getHeader | Una delle funzioni disponibili per la normalizzazione in CCM per ottenere il contenuto di un'intestazione nella variabile |
stringa.gsub | Una funzione Lua per sostituire un particolare contenuto da una stringa |
modificaIntestazione | Anche in questo caso, una funzione disponibile in CCM per modificare il contenuto dell'intestazione |
L'intestazione della Guida Cisco viene rimossa dal messaggio SIP INVITE/REINVITE in arrivo:
M = {} function M.inbound_INVITE(msg) msg:removeHeader("Cisco-Guid") end return M
In questa pagina è possibile aggiungere INFO nel contenuto dell'intestazione Consenti.
Viene aggiunto nel contenuto originale di Consenti dopo una virgola.
M = {} function M.outbound_INVITE(msg) msg:addHeader("Allow", "INFO") end return M
Sono disponibili delle API per modificare il contenuto SDP di un messaggio SIP. Per modificare SDP, è necessario ottenere il corpo del contenuto SDP dall'oggetto messaggio SIP Lua con l'API getSdp() fornita dall'oggetto messaggio SIP. Lo script può quindi utilizzare la libreria di stringhe che include le API Cisco per modificare l'SDP. Quando viene modificato, il SDP viene scritto nuovamente nell'oggetto messaggio SIP con l'API setSdp(sdp) fornita dall'oggetto messaggio SIP. Per ulteriori informazioni sulle API, consultare il documento sui messaggi SIP.
local sdp = msg:getSdp() -- modification of the SDP happens at this point -- Update the SDP associated with the SIP message msg: etSdp(sdp)
Nota: Il codice cambia a= riga per il codec G.722 in G722 senza il punto.
M = {} function M.inbound_INVITE(msg) local sdp = msg:getSdp() if sdp then local g722_line = sdp:getLine("a=","G.722") if g722_line then --Replace G.722 with G722. The dot is special and must be escaped using % when using gsub. g722_line = g722_line:gsub("G%.722", "G722") sdp = sdp:modifyLine("a=", "G.722", g722_line) msg:setSdp(sdp) end end end return M
Fare riferimento a questa sezione per verificare che la configurazione funzioni correttamente.
Attivate l'opzione Trace quando applicate lo script per verificare se funziona o meno dai log SDL.
Le informazioni contenute in questa sezione permettono di risolvere i problemi relativi alla configurazione.
Di seguito sono riportati alcuni controlli per verificare se lo script non funziona come previsto: