Toni DTMF in ambito SIPUno dei problemi più ricorrenti in ambito VoIP è il mancato invio dei toni DTMF utilizzando un centralino IP. I toni DTMF vengono utilizzati molto spesso per interagire con i Risponditori Interattivi Vocali (IVR) e con molti sistemi di prenotazione telefonica. E’ dunque indispensabile che essi funzionino correttamente.

I motivi della mancata trasmissione di un tono DTMF è quasi sempre imputabile ad una errata configurazione dal lato del telefono IP o del SIP trunk VoIP. A questo proposito è bene ricordare che il Centralino 3CX non altera, in uscita, l’invio dei Toni DTMF che viene effettuata direttamente dal Telefono IP. Se si utilizzano Telefoni IP Certificati con i template di provisioning forniti da 3CX è improbabile che si presentino errori di trasmissione dei Toni. Analogamente, con i provider VoIP certificati è improbabile incorrere in errori nell’invio dei toni DTMF.

Può però accadere che, in particolari circostanze, sia necessario verificare il motivo del mancato invio dei toni DTMF. A questo proposito è bene ricordare quali siano i metodi previsti per l’invio dei toni DTMF attraverso il Protocollo SIP per come eseguire una corretta diagnosi e risolvere rapidamente l’eventuale problema.

Il Protocollo SIP prevede espressamente 3 standard per l’invio dei Toni DTMF: RFC2833 (Out of Band – RTP), InBand Audio, SIP-INFO (Out of Band via SIP).
Esaminiamo e confrontiamo le 3 modalità di seguito:

1) Invio dei DTMF in Modalita RFC2833 (Fuori dalla Banda Audio – RTP)

Secondo quanto previsto dalla RFC2833 i toni possono essere inviati attraverso la connessione RTP (Real Time Transfer Protocol). In questa modalità i toni sono sincronizzati con i pacchetti audio RTP ma viaggiano, in modalità testuale, all’interno del canale di comunicazione RTP. Il protocollo RTP contiene infatti due tipi di informazioni: non solo il vero e proprio flusso audio multimediale ma anche ulteriori informazioni (di carattere testuale) relative alla natura della transazione. A questo secondo tipo di informazioni, appartengono i toni DTMF che vengono identificati come messaggi di tipo “telephone-event”.
La possibilità di utilizzare i telephone-event RTP viene infatti proposta dal Telefono IP in fase di INVITE all’interno del protocollo SDP (body message SIP).
L’utilizzo dei telephone-event viene identificato nello stesso elenco in cui si trovano l’elenco dei Codec audio proposti e supportati dal telefono.
La stringa che propone nell’SDP la disponibilità della modalità toni RFC2833 è la seguente:

“Media Attribute (a): fmtp:101 0-15 

  • “fmtp” propone la trasmissione dei toni dtmf in modalità RTP “telephone-event”
  • “101” indica il payload 101
  • “0-15” indica i toni corrispondenti ai tasti 0-9 più le lettere a,b,c.

Qui sotto un’immagine di come si presenta la proposta del della codifica RFC2833 nell’SDP di un SIP INVITE

Proposta toni RFC2833 SIP in SDP INVITE

Qui sotto l’analisi grafica del flusso SIP effetuata da Wireshark:

Toni DTMF SIP con standard RFC2833

Qui di seguito il contenuto testuale che trasferisce il DTMF 5 attraverso il canale RTP:

DTMF RFC2833 SIP

Nell’esempio riportato si può notare come, durante la chiamata, vengano digitati i tasti 5,2 e 8. E’ evidente come i toni passino attraverso il canale RTP e vengano identificati come “telephone-event”. Wireshark rappresenta lo strumento diagnostico più importante qualora si debba indagare sulla funzionalità dei Toni DTMF. Lo standard RFC2833 rende immediatamente visualizzabile il corretto passagigio dei toni.

  • La modalità RFC2833 costituisce il metodo preferibile per l’invio dei toni DTMF durante una Conversazione SIP.
  • La modalità RFC2833 non dipende dal codec utilizzato in quanto l’informazione viaggia fuori dalla banda audio e non risente quindi della compressione audio utilizzata.
  • La modalità RFC2833 è una modalità sincrona per l’invio dei toni DTMF. Il tono viene inviato in Realtime e viaggia in sincono con l’informazione audio.

2) Invio dei DTMF in Modalita Inband (All’interno della Banda Audio – RTP)

La modalità inband prevede che i toni viaggino all’interno del flusso audio RTP e sono chiaramente ascoltabili analizzando la traccia audio catturata con Wireshark. Questo tipo di modalità di invio dei toni presenta delle criticità legate alla qualità del segnale audio. Affinchè i codec risultino intellegibili lato chiamato (IVR) è necessario che essi siano inviati utilizzando un codec a bassa compressione audio come il G711A (pcma) o il G711U.

La metodologia di invio toni DTMF Inband costituisce, ancora oggi, un metodo molto utilizzato anche se, per le ragioni espresse sopra, sarebbe sempre da preferire l’utilizzo dei toni in modalità RFC2833.

  • La modalità Ibband costituisce un metodo alternativo, ancora largamente impiegato, perl’invio dei toni DTMF durante una Conversazione SIP.
  • La modalità Inband dipende strettamente dal codec utilizzato in quanto l’informazione viaggia all’interno dalla banda audio e risente quindi della compressione audio utilizzata. E’ impiegabile unicamente con i codec G711A. Non è utilizzabile con il codec G729 a causa dell’elevata compressione del codec che rende in tono inviato non riconoscibile/affidabile.
  • La modalità RFC2833 è una modalità sincrona per l’invio dei toni DTMF. Il tono viene inviato in Realtime e viaggia in sincono con l’informazione audio.

3) Invio dei DTMF in Modalita SIP-INFO (Fuori dalla Banda Audio, all’interno di un Richiesta SIP con metodo INFO)

L’invio di un tono SIP può anche essere effettuata mediante il metodo INFO nella comunicazione SIP. Come nel caso della specifica RFC2833, il tono viene inviato al di fuori della banda audio. In questo caso però, il DTMF viene inviato all’interno di una Richiesta SIP di tipo INFO. Il metodo SIP-INFO per l’invio dei toni è vivamente sconsigliato in quanto non vi è sincronia con il flusso audio RTP. Ciò può comportare ritardi nell’invio della comunicazione con conseguenti anomalie.

Qui sotto l’esempio di una richiesta SIP INFO per il DTMF 5

Tono DTMF SIP INFO

  • La modalità SIP INFO costituisce un metodo sconsigliato, per l’invio dei toni DTMF durante una Conversazione SIP. La comunicazione del DTMF avviene infatti in maniera asincrona rispetto al Flusso Audio RTP.
  • La modalità SIP-INFO non dipende dal codec utilizzato in quanto l’informazione viaggia fuori dalla banda audio, all’interno di una richiesta SIP, e non risente quindi della compressione audio utilizzata.
  • La modalità SIP-INFO è una modalità asincrona per l’invio dei toni DTMF. Il tono viene inviato in maniera non sincronizzata con l’informazione audio RTP.

4) Come diagnosticare eventuali problemi

Sulla base delle indicazioni fornite sopra, risulta evidente che il miglior modo per effettuare un’analisi di un problema relativo all’invio dei toni DTMF sia quello di effettuare una cattura pcap con Wireshark ed analizzare i dati ricercandoli nelle posizioni indicate. Per i Toni DTMF RFC2833 e SIP-INFO saranno direttamente visualizzabili attraverso gli strumenti di analisi per le Chiamate VoIP di Wireshark. Per la verifica dei toni Inband sarà invece necessario ascoltare direttamente il flusso audio presente nel file di cattura.