Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Topologia della rete

Problema

Verifica

Soluzione

Software Media Termination Point (MTP)

Flusso dei supporti

Media Anti-Trombone

Abilita CUBE per l'invio di pacchetti STUN nella porta/IP del supporto negoziato

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.

1. 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

1. Configurare il flusso multimediale in base alla configurazione globale.

2. Creare un supporto di classe voce con flusso multimediale.

3. Applicare il supporto di classe vocale a tutti i peer di composizione in cui si prevede di utilizzare il flusso multimediale.

4. 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.