[Asterisk-Dev] dropped/ignored back-to-back dtmf ?

Yaakov Menken menken at capalon.com
Fri Dec 16 08:03:54 MST 2005


We noticed what may be the same issue where a SIP adapter (Linksys PAP2 
-- from user input to the attached analog phone) or SIP phone (Sipura 
841) is sending rfc2833 tones to *, which then forwards (IAX) through a 
second * server which connected the call (over PSTN or whatever our 
termination vendors do). Sometimes the destination system recognizes the 
digits, sometimes not.

Tilghman suggested correctly that inband solves the problem, but also 
mentioned that we might lengthen the tone via do_senddigit in channel.c. 
  If this solves your problem, perhaps the default value should be 
raised, and/or this made into a config option.

Yours,

Yaakov Menken

Luigi Rizzo wrote:
> Hi,
> i am trying to figure out why strings of back-to-back dtmf tones
> (e.g.  generated from the console through "dial 12345" while a call
> is active) are processed only partially - the first (one or a few)
> tones get to the remote side (through sip info if that matters,
> but rfc2833 gives the same) and the other are dropped.
> 
> There must be a timing issue somewhere because enabling
> more verbose debugging slows down the parties and
> seems to enable more tones to get through.
> 
> Anyways i did a bit of debugging, and noticed that
> the tones are correctly queued on the sender side and
> available through ast_read. However, i see only a few
> INFO messages sent to the remote side, and the
> stack backtrace below (added in ast_read()) seems
> to suggest that at some point (in the case below after
> the second digit) the behaviour should be different.
> 
> Any idea on what is the problem ? Perhaps the late
> arrival of the SIP/2.0 200 OK from the remote party ?
> 
> BTW the experiment was run with two instances of
> asterisk (fresh trunk versions) talking to each other.
> 
> 	cheers
> 	luigi
> 
> 
> *CLI> Dec 16 14:43:43 WARNING[23056]: channel.c:1895 ast_read: frametype 1 subclass 49
> print_trace: Obtained 12 stack frames.
> print_trace: 0x805f3ff <ast_read+1087> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8062029 <ast_bridged_channel+569> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8062950 <ast_channel_bridge+1952> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x28437d71 <ast_bridge_call+1765> at /home/luigi/luigi_ast/usr/local/lib/asterisk/modules/res_features.so
> print_trace: 0x2861ae22 <+13362> at /home/luigi/luigi_ast/usr/local/lib/asterisk/modules/app_dial.so
> print_trace: 0x2861b0de <+14062> at /home/luigi/luigi_ast/usr/local/lib/asterisk/modules/app_dial.so
> print_trace: 0x806f4d8 <pbx_exec+96> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8071b40 <pbx_substitute_variables_varshead+1172> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8072828 <ast_spawn_extension+32> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8072c20 <ast_exec_extension+1012> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8073569 <ast_exec_extension+3389> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x2812632c <_thread_start+52> at /usr/lib/libc_r.so.4
> Dec 16 14:43:43 WARNING[23056]: channel.c:1895 ast_read: frametype 1 subclass 50
> print_trace: Obtained 12 stack frames.
> print_trace: 0x805f3ff <ast_read+1087> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8062029 <ast_bridged_channel+569> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8062950 <ast_channel_bridge+1952> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x28437d71 <ast_bridge_call+1765> at /home/luigi/luigi_ast/usr/local/lib/asterisk/modules/res_features.so
> print_trace: 0x2861ae22 <+13362> at /home/luigi/luigi_ast/usr/local/lib/asterisk/modules/app_dial.so
> print_trace: 0x2861b0de <+14062> at /home/luigi/luigi_ast/usr/local/lib/asterisk/modules/app_dial.so
> print_trace: 0x806f4d8 <pbx_exec+96> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8071b40 <pbx_substitute_variables_varshead+1172> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8072828 <ast_spawn_extension+32> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8072c20 <ast_exec_extension+1012> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x8073569 <ast_exec_extension+3389> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x2812632c <_thread_start+52> at /usr/lib/libc_r.so.4
> Dec 16 14:43:43 WARNING[23056]: channel.c:1895 ast_read: frametype 1 subclass 51
> print_trace: Obtained 3 stack frames.
> print_trace: 0x805f3ff <ast_read+1087> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x809a9e4 <ast_unregister_indication+528> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x2812632c <_thread_start+52> at /usr/lib/libc_r.so.4
> Dec 16 14:43:43 WARNING[23056]: channel.c:1895 ast_read: frametype 1 subclass 52
> print_trace: Obtained 3 stack frames.
> print_trace: 0x805f3ff <ast_read+1087> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x809a9e4 <ast_unregister_indication+528> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x2812632c <_thread_start+52> at /usr/lib/libc_r.so.4
> Dec 16 14:43:43 WARNING[23056]: channel.c:1895 ast_read: frametype 1 subclass 53
> print_trace: Obtained 3 stack frames.
> print_trace: 0x805f3ff <ast_read+1087> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x809a9e4 <ast_unregister_indication+528> at /home/luigi/luigi_ast/usr/local/sbin/asterisk
> print_trace: 0x2812632c <_thread_start+52> at /usr/lib/libc_r.so.4
> 
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
> 
> Asterisk-Dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev




More information about the asterisk-dev mailing list