[Home]

Summary:ASTERISK-16554: DTMF Manager events missing with some codecs on bridged SIP calls
Reporter:Ben Klang (bklang)Labels:
Date Opened:2010-08-11 13:34:51Date Closed:2011-06-07 14:04:41
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/CodecHandling
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) extensions.conf
( 1) sip.conf
Description:I am placing calls from a SIP client endpoint (tested with various hard and soft phones) calling to Asterisk via SIP.  Once connected to Asterisk the caller makes choices that then sends a call out via a different SIP peer (an outbound proxy in this case).

The endpoints and the outbound proxy are both configured to use dtmfmode=rfc2833, a fact I can confirm by looking at packet captures and Asterisk console output.  Enabling RTP debugging also shows the DTMF being processed.  In addition, both the endpoints and the peer are configured with canreinvite=no, forcing Asterisk to stay in the media path.  I have confirmed this as well with RTP debugging.

When a call comes in from the endpoint the DTMF is working properly to collect the destination phone number.  Each digit that is entered by the user triggers the appropriate DTMF event on the AMI socket.  Next the call is placed outbound via the proxy.  As soon as the call is bridged DTMF events on AMI cease.  The RTP continues to work end-to-end and the DTMF is received by the far end.  The only thing that appears to be broken is that AMI events are not sent to my AMI listener.

The strange thing is that events DO work as expected, even when bridged, when I use GSM or uLaw.  When using aLaw no events are sent by AMI once the calls are bridged.

This has been tested with 1.6.1.11 and 1.8.0-beta3 with the same behavior observed.
Comments:By: Nicholas Mistry (gamedna) 2010-08-11 14:43:02

Created a simple test setup, and I confirm the above behavior using the following configuration:

Zoiper SIP -> BOX A -> IAX or SIP TRUNK -> BOX B

AMI DTMF Events are produced when using ulaw or gsm on all devices.  When configured for alaw, the AMI DTMF events are no longer produced on Box B.  RFC 2833 DTMF events are visible on Wireshark from both Zoiper->Box A and Box A->Box B

Asterisk versions:
BOX A: Asterisk SVN-trunk-r280910 built by nick @ NickMAC.local on a i386 running Darwin on 2010-08-05 09:02:54 UTC

BOX B: Asterisk 1.6.0.26-FONCORE-r78 built by root @ revisor.trixbox.com on a i686 running Linux on 2010-06-08 22:01:27 UTC

By: Leif Madsen (lmadsen) 2010-08-12 14:40:24

Can you please provide the following information:

* sip.conf
* console output
* debugging information
* dialplan

Thanks!

By: Ben Klang (bklang) 2010-08-12 14:41:52

I'm happy to provide the dialplan, console output and sip.conf.  You also requested "debugging output"; what are you looking for there?  Do you want me to enable debug to a certain level and send the debug log that Asterisk generates?

Uploading files momentarily....

By: Ben Klang (bklang) 2010-08-12 15:11:16

Console output:

 == CDR updated on SIP/inbound_proxy-00000042
   -- Executing [0014044754840@simpletest:1] Dial("SIP/inbound_proxy-00000042", "SIP/outbound_proxy/0014044754840") in new stack
Agent policy for SIP/inbound_proxy-00000042 is 'never'. CC not possible
   -- Called outbound_proxy/0014044754840
   -- SIP/outbound_proxy-00000043 is making progress passing it to SIP/inbound_proxy-00000042
   -- SIP/outbound_proxy-00000043 answered SIP/inbound_proxy-00000042
   -- Locally bridging SIP/inbound_proxy-00000042 and SIP/outbound_proxy-00000043
 == Spawn extension (simpletest, 0014044754840, 1) exited non-zero on 'SIP/inbound_proxy-00000042'


What's most important though is what happens on the AMI socket.  When I dialled each digit in "0014044754840" I received DTMF events.  Once the channel connected I pressed several keys on my keypad.  No DTMF events were sent on the AMI socket.  Here's some output from a script I wrote to monitor DTMF events:


DTMF event received on SIP/inbound_proxy-00000042: 0
DTMF event received on SIP/inbound_proxy-00000042: 0
DTMF event received on SIP/inbound_proxy-00000042: 1
DTMF event received on SIP/inbound_proxy-00000042: 4
DTMF event received on SIP/inbound_proxy-00000042: 0
DTMF event received on SIP/inbound_proxy-00000042: 4
DTMF event received on SIP/inbound_proxy-00000042: 4
DTMF event received on SIP/inbound_proxy-00000042: 7
DTMF event received on SIP/inbound_proxy-00000042: 5
DTMF event received on SIP/inbound_proxy-00000042: 4
DTMF event received on SIP/inbound_proxy-00000042: 8
DTMF event received on SIP/inbound_proxy-00000042: 4
DTMF event received on SIP/inbound_proxy-00000042: 0


Here I pressed several keys but received no more DTMF events.

By: Paul Belanger (pabelanger) 2010-09-04 14:30:08

A full debug will likely help.
--
We require a complete debug log to help triage the issue.

This document will provide instructions on how to collect debugging logs from an Asterisk machine for the purpose of helping bug marshals troubleshoot an issue:

http://svn.digium.com/svn/asterisk/trunk/doc/HOWTO_collect_debug_information.txt

By: Leif Madsen (lmadsen) 2011-02-08 13:50:15.000-0600

Suspended due to lack of feedback from the reporter.