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

Luigi Rizzo rizzo at icir.org
Fri Dec 16 06:08:17 MST 2005


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




More information about the asterisk-dev mailing list