D'vel tech blog D'vel tech blog
Blog »
Problemi sui toni DTMF in rfc2833 con asterisk 1.6.2

Nelle ultime versioni di asterisk 1.6.2 si incontrano alcuni problemi nella trasmissione dei toni DTMF in rfc2833. I problemi si verificano solo con alcuni peer ma, soprattutto, solo quando asterisk si trova a dover interpretare il flusso audio (per intercettare alcuni dtmf, come per le feature, come il trasferimento di chiamata o il parcheggio delle chiamate). La soluzione è di particolare interesse in quanto un provider piuttosto diffuso nel nostro paese (Eutelia) risulta essere fra quelli con cui non passano regolarmente i toni.

Analizzando il codice scopriamo che il cambiamento è avvenuto dopo la 1.6.2.0-rc2 (con questa infatti tutto funziona regolarmente) e più precisamente con la release svn 221086, il cui commento ci suggerisce la soluzione:
 
   r221086 | twilson | 2009-09-30 09:49:11 -0500 (Wed, 30 Sep 2009) | 25 lines

   Change the SSRC by default when our media stream changes

   Be default, change SSRC when doing an audio stream changes Asterisk doesn't
   honor marker bit when reinvited to already-bridged RTP streams,resulting in
   far-end stack discarding packets with "old" timestamps that areactually part of
   a new stream.  This patch sends AST_CONTROL_SRCUPDATE whenever there is a
   reinvite, unless the 'constantssrc' is set to true in sip.conf.

   The original issue reported to Digium support detailed the following situation:
   ITSP <-> Asterisk 1.4.26.2 <-> SIP-based Application Server Call comes in
   fromITSP, Asterisk dials the app server which sends a re-invite back
   toAsterisk--not to negotiate to send media directly to the ITSP, but to
   indicatethat it's changing the stream it's sending to Asterisk.  The app
   servergenerates a new SSRC, sequence numbers, timestamps, and sets the marker
   bit on the new stream.  Asterisk passes through the teimstamp of the new stream,
   butdoes not reset the SSRC, sequence numbers, or set the marker bit.

   When the timestamp on the new stream is older than the timestamp on the
   originalstream, the ITSP (which doesn't know there has been any change) discards
   the newframes because it thinks they are too old.  This patch addresses this by
   changing the SSRC on a stream update unless constantssrc=true is set in
   sip.conf.

   Review: https://reviewboard.asterisk.org/r/374/
 
 
In effetti, provando a forzare il vecchio comportamento indicando constantssrc=true sul peer relativo ai numeri eutelia, tutto ricomincia a funzionare correttamente.
 

 


  • Commenti
URL di Trackback:

Crea/Mostra articolo Crea/Mostra articolo

Sviluppi in Liferay? Sviluppi in Liferay?
Chiedici di formarti! ;)

La richiesta è senza impegno e potrai cancellare i tuoi dati in ogni momento, con un solo click!

Noi rispettiamo la tua privacy!

Bloggers Bloggers
Andrea Previati Messaggi: 10
Stelle: 0
Data: 06/04/12
Jader Jed Francia Messaggi: 25
Stelle: 1
Data: 18/03/12
Marco Napolitano Messaggi: 13
Stelle: 0
Data: 14/03/12
Luca Leone Messaggi: 3
Stelle: 0
Data: 16/12/11
Andrea Tomasello Messaggi: 1
Stelle: 0
Data: 30/09/11
Lorenza Amato Messaggi: 7
Stelle: 0
Data: 06/04/11
Stefano Macchiavelli Messaggi: 5
Stelle: 0
Data: 20/12/10
Chiara Mambretti Messaggi: 2
Stelle: 0
Data: 06/12/10
Simone Celli Marchi Messaggi: 3
Stelle: 1
Data: 12/07/10
Daniele Catellani Messaggi: 3
Stelle: 0
Data: 10/03/10
Marco Giordani Messaggi: 1
Stelle: 0
Data: 03/03/10
Serena Traversi Messaggi: 1
Stelle: 0
Data: 02/12/09