Introduzione
Questo documento descrive come risolvere i problemi di audio indipendente con le chiamate a hairpin su CUBE (Cisco Unified Border Element).
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- SIP (Session Initiation Protocol)
- Come configurare e utilizzare CUBE
- Flow-through e flow-round dei supporti
Componenti usati
Le informazioni di questo documento si basano sulle seguenti versioni hardware e software:
- Cisco Unified Communications Manager (CUCM) - 11.5.1.10000-5
- CUBO - 15.5(3)S5
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.
Topologia della rete
Problema
Una chiamata hairpin è una chiamata in arrivo da un provider di servizi di telefonia Internet (ITSP, Internet Telephony Service Provider) inoltrata o ritrasferita all'ITSP, che risulta in audio in nessun modo, le chiamate regolari all'ITSP dai telefoni IP funzionano correttamente.
Come indicato nella RFC 3264 per il SIP, le negoziazioni sul socket dei supporti tra il client SIP User Agent (UAC) e il server SIP User Agent (UAS) avvengono tramite il protocollo SDP (Session Description Protocol) nel modello Offerta/Risposta, seguito dai produttori dei prodotti Voice over IP (VoIP).
Alcuni ITSP non considerano l'indirizzo IP e le informazioni sulla porta nel SDP a causa della loro implementazione del firewall, quindi, il socket deve essere avviato dall'estremità remota (in questo caso, CUBE). L'ITSP richiede all'estremità remota di inviare alcuni pacchetti RTP (Real-Time Transport Protocol) verso di essa; una volta che l'ITSP riceve i pacchetti RTP, li trasmette all'IP di origine dei pacchetti ricevuti.
In una chiamata tra un telefono IP e l'ITSP, che non è dotato di hairpin, questo problema non si verifica, in quanto il telefono IP invia pacchetti RTP fittizi dopo aver aperto le porte richieste.
Quando una chiamata proviene dall'ITSP e viene inviata a entrambi, l'iniziatore della chiamata e il destinatario della chiamata non inviano alcun flusso a meno che non ricevano un flusso da qualcuno nel percorso della chiamata, si tratta di una situazione di deadlock.
Verifica
Per verificare che la connessione sia stata stabilita correttamente, eseguire questo comando: show voip rtp connections.
Max Ports Available: 19999, Ports Reserved: 101, Ports in Use: 4
Port range not configured, Min: 8000, Max: 48199
Ports Ports Ports
Media-Address Range Available Reserved In-use
Default Address-Range 19999 101 4
VoIP RTP active connections :
No. CallId dstCallId LocalRTP RmtRTP LocalIP RemoteIP
1 21 22 16424 16568 10.106.36.169 10.106.108.72
2 22 21 16426 24602 10.106.36.169 10.106.123.29
3 23 24 16428 24600 10.106.36.169 10.106.123.29
4 24 23 16430 16570 10.106.36.169 10.106.108.72
Found 4 active RTP connections
Eseguire il comando show call active voice brief per visualizzare i contatori Rx/Tx di tutte le 4 gambe di chiamata dalla prospettiva di CUBE come 0/0.
Total call-legs: 4
35E9 : 21 7441740ms.1 (*13:00:22.857 UTC Sat May 20 2017) +4080 pid:123 Answer 5655 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.108.72:16568 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
35E9 : 22 7441740ms.2 (*13:00:22.857 UTC Sat May 20 2017) +4080 pid:123 Originate 7961 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.123.29:24602 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
0 : 23 7441780ms.1 (*13:00:22.897 UTC Sat May 20 2017) +4020 pid:124 Answer 5655 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.123.29:24600 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
0 : 24 7441780ms.2 (*13:00:22.897 UTC Sat May 20 2017) +4010 pid:124 Originate 7961 connected
dur 00:24:17 tx:0/0 rx:0/0 dscp:0 media:0 audio tos:0xB8 video tos:0x0 <<<<
IP 10.106.108.72:16570 SRTP: off rtt:0ms pl:0/0ms lost:0/0/0 delay:0/0/0ms g711ulaw TextRelay: off Transcoded: No
media inactive detected:n media contrl rcvd:n/a timestamp:n/a
long duration call detected:n long duration call duration:n/a timestamp:n/a
LostPacketRate:0.00 OutOfOrderRate:0.00
Nota: se i router usano IOS-XE, eseguire questo comando per convalidare i contatori Rx/Tx:
voice service voip
media bulk-stats
Non è consigliabile eseguire questo comando quando il volume della chiamata è elevato. Assicurarsi di eseguire questo comando quando la CPU è inferiore al 30%.
Soluzione
Software Media Termination Point (MTP)
Questo è il metodo preferito per superare il problema. I MTP del software CUCM sono in grado di inviare pacchetti RTP fittizi. In una chiamata hairpin, il software MTP fornisce pacchetti RTP fittizi a entrambi, l'iniziatore della chiamata e il destinatario della chiamata, quindi l'ITSP riceve questi pacchetti e risponde con RTP al software MTP.
Verificare che la casella di controllo Media Termination Point Required sia selezionata nella pagina Trunk Configuration (Configurazione trunk). Passare a Dispositivo > Trunk SIP e selezionare l'elenco dei gruppi di risorse multimediali (MRGL) di tale trunk, verificare che contenga almeno un MTP software.
- Nota: l'MTP hardware non può inviare flussi RTP fittizi. Accertarsi che il file MRGL associato al trunk richiami solo il protocollo MTP del software. Il protocollo MTP del software può eseguire solo il bridging delle chiamate G711. Verificare che il flusso di chiamate end-to-end utilizzi il protocollo G711 per garantire il corretto funzionamento di questa soluzione.
L'immagine seguente mostra l'aspetto del payload RTP fittizio in Wireshark:
Flusso dei supporti
Con Media Flow-Around, i pacchetti di segnalazione terminano e hanno origine su CUBE, ma i pacchetti multimediali ignorano CUBE e passano direttamente tra gli endpoint.
voice service voip
media flow-around
Chiamata con flusso multimediale
Attenzione: questo problema può influire sulla funzionalità CUBE in quanto non è in grado di terminare il supporto per le chiamate. RTP ignora il CUBO e scorre direttamente tra gli endpoint. In questo caso, il flusso avviene direttamente tra gli ITSP.
La modalità di configurazione Dial-Peer per Media Flow-Through non ha effetto se Media Flow-Around è configurato in modalità di configurazione globale.
Configurazione
- Configurare il flusso multimediale in base alla configurazione globale.
- Creare un supporto di classe voce con flusso multimediale.
- Applicare il supporto di classe vocale a tutti i peer di composizione in cui si prevede di utilizzare il flusso multimediale.
- I dial-peer che non hanno questa configurazione ricadono su Media Flow-Around come è configurato globalmente.
Voice service voip
media flow-around
voice-class media 10
media flow-through
dial-peer voice 1 voip
Description ** Inbound dial-peer **
voice class media 10
dial-peer voice 2 voip
Description ** Outbound dial-peer **
voice class media 10
Media Anti-Trombone
Questa funzione è simile alla funzione Media Flow-Around, ma ha un impatto minore. Innanzitutto, cerca le chiamate con loop o hairpin; se viene trovata una chiamata hairpin, questa funzionalità attiva un altro ciclo di negoziazione multimediale per la chiamata identificata. Al termine della negoziazione, il CUBE non farà più parte del percorso multimediale.
Affinché questa operazione funzioni, entrambe le parti, CUBE e ITSP, devono supportare la funzione Anti-Trombone.
voice service voip
media anti-trombone
Chiamata con Media Anti-Trombone
Nota: convalidare le restrizioni prima di configurare Media Anti-Trombone all'indirizzo http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/media-path.html
Abilita CUBE per l'invio di pacchetti STUN nella porta/IP del supporto negoziato
Abilitare il CUBE per l'invio di richieste/pacchetti STUN generati localmente (questi pacchetti stun sono pacchetti UDP con gli stessi numeri di porta/IP dei supporti) da inviare sul percorso dei supporti negoziati. I dispositivi nel percorso dei supporti possono cancellare il percorso dopo aver ricevuto i pacchetti stun dopo aver verificato il protocollo IP/porta/trasporto se questi dispositivi non stanno verificando i dati effettivi dell'applicazione:
voice service voip
stordire
stun flowdata agent-id 1 boot-count 4
stun flowdata segreto condiviso 0 Password123$
voice class stun-usage 1
stun usage firewall-traversal flowdata
dial-peer voice 2000 voip
Descrizione ** Dial-peer in entrata da ITSP **
stun-usage classe voce 1
Questa operazione può essere eseguita sul dial-peer utilizzato per ricevere la chiamata da ITSP o sul dial-peer utilizzato per inviare la chiamata a ITSP o a entrambi.