[Home]

Summary:ASTERISK-09958: Wrong duration value in SIP INFO messages when sending DTMF
Reporter:Alexander Litnitskiy (litnialex)Labels:
Date Opened:2007-07-25 13:24:08Date Closed:2007-07-26 18:03:11
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) 1.1.1.1.log
( 1) bad.log
( 2) good.log
Description:DTMF tones sent with INFO method from one Asterisk server are not understood by another Asterisk at all. I think it is due to bad Duration= field in SIP INFO message, which seems to indicate time in ms between DTMF presses (which can be very long interval) , instead of traditional 250ms.


****** ADDITIONAL INFORMATION ******

asterisk v. 1.4.9.
OS Linux 2.6.16.13-4-smp, SUSE LINUX 10.1 (X86-64)
zaptel v. 1.4.4 for ztdummy module

Logs:
both logs are recordered at asterisk-1.4.9 with ip 2.2.2.2
bad.log: call is received from another asterisk-1.4.9 with ip 1.1.1.1. DTMF INFO doesn't work
good.log: call is received from asterisk-1.2.15 with ip 3.3.3.3. DTMF INFO is recognized properly

SIP config on both asterisk-1.4.9 servers is the same:

------------ sip.conf -----------------------
[general]
bindport=5060                   ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0                ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=no                    ; Enable DNS SRV lookups on outbound calls
disallow=all
allow=alaw
rtptimeout=60
rtpholdtimeout=60

;we allow unauthenticated calls and send them to ivrmanager context
context=ivrmanager              ; Default context for incoming calls
insecure=port,invite

;allow nat by default
nat=yes

dtmfmode=info

[authentication]

----------- end of sip.conf -----------------
no peers are defined. Calls are sent using IP address without authentication and from the same LAN.

Comments:By: Mark Michelson (mmichelson) 2007-07-25 16:46:38

I appreciate your bringing this to our attention, but unfortunately in order to be able to debug this issue, we're going to need the log of asterisk box at 1.1.1.1 so that we can see how it generated that duration value.

By: Joshua C. Colp (jcolp) 2007-07-25 16:47:21

We need to see the log information from the machine sending the INFO packet, and details of the channels involved.

By: Alexander Litnitskiy (litnialex) 2007-07-26 00:59:57

The call flow is as follows:
IAX client (4.4.4.4) <---> Asterisk (1.1.1.1) <----> Asterisk (2.2.2.2).

I'm adding 1.1.1.1.log recordered at host 1.1.1.1 with both IAX2 and SIP debug enabled.

Thanks for your attention.

By: Digium Subversion (svnbot) 2007-07-26 18:01:50

Repository: asterisk
Revision: 77460

------------------------------------------------------------------------
r77460 | file | 2007-07-26 18:01:49 -0500 (Thu, 26 Jul 2007) | 4 lines

(closes issue ASTERISK-9958)
Reported by: litnialex
If a DTMF end frame comes from a channel without a begin and it is going to a technology that only accepts end frames (aka INFO) then use the minimum DTMF duration if one is not in the frame already.

------------------------------------------------------------------------

By: Digium Subversion (svnbot) 2007-07-26 18:03:11

Repository: asterisk
Revision: 77461

------------------------------------------------------------------------
r77461 | file | 2007-07-26 18:03:10 -0500 (Thu, 26 Jul 2007) | 12 lines

Merged revisions 77460 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r77460 | file | 2007-07-26 20:19:04 -0300 (Thu, 26 Jul 2007) | 4 lines

(closes issue ASTERISK-9958)
Reported by: litnialex
If a DTMF end frame comes from a channel without a begin and it is going to a technology that only accepts end frames (aka INFO) then use the minimum DTMF duration if one is not in the frame already.

........

------------------------------------------------------------------------