[asterisk-users] DTMF duplicated when Waitexten

Loïc LATREILLE loic.latreille at ovh.net
Tue Aug 25 08:47:31 CDT 2009


Hello,

I have a problem of DTMF duplication.

I receive call from my provider with SIP protocol. These calls pass  
through an interactive voice menu, using the application Waitexten to  
enter a client code. The menu works fine, but sometimes I have DTMF  
duplication that prevent proper code entry. All DTMF come twice.

my sip.conf
-----------
[general]
context=default
allowguest=no
allowoverlap=no
allowtransfer=yes
udpbindaddr=0.0.0.0
tcpenable=no
tlsenable=no
srvlookup=yes
maxexpiry=3600
minexpiry=60
defaultexpiry=120
qualifyfreq=60
disallow=all
allow=alaw
language=fr
relaxdtmf=no
dtmfmode=rfc2833
videosupport=no
dynamic_exclude_static=yes
canreinvite=no
rtcachefriends=yes
rtsavesysname=yes
rtupdate=yes
rtautoclear=yes
ignoreregexpire=no

[xxxxx]
type=peer
host=xxxxxx.xxxxxxx.com
secret=XxXxXxXxXxX
call-limit=128
defaultuser=00XXXXXXXXXXX
fromuser=00XXXXXXXXXXX
disallow=all
allow=ulaw
nat=yes
context=trunk
qualify=50
insecure=invite
restrictcid=no
dtmfmode=rfc2833
rfc2833compensate=yes
canreinvite=no
---------------

my extensions.conf
------------------
[general]
static=yes
writeprotect=no
autofallthrough=yes
extenpatternmatchnew=yes
clearglobalvars=no

[vm-xxx]
exten => s,1,Answer
exten => s,n,Set(TIMEOUT(response)=3)
exten => s,n,Set(TIMEOUT(digit)=5)
exten => s,n,Playback(xxxxx)
exten => s,n,Playback(xxxxx)
exten => s,n,Playback(xxxxx)
exten => s,n,Set(MAX=0)
exten => s,n(menu),Background(xxxx_menu)
exten => s,n,WaitExten

exten => _NXNXXXXXX#,1,Agi(xxxxxx)
exten => _NXNXXXXXX#,n,Macro(xxxxx)

exten => t,1,Set(CALLERID(name)=******* - xxxxxxx})
exten => t,n(noid),Playback(xxxxxxx)
exten => t,n,Playback(xxxxxxx)
exten => t,n,Macro(xxxxxxx)

exten => i,1,Playback(xxxxxxxx)
exten => i,n,Set(MAX=$[${MAX} + 1])
exten => i,n,GotoIf($[${MAX} = 3]?t,1)
exten => i,n,Goto(s,menu)
----------------------

my full log on 1 example
--------------------------
[Aug 25 15:29:53] VERBOSE[16029] pbx.c: [Aug 25 15:29:53]     -- Executing  
[s at vm-xxxxx:1] Answer("SIP/provider-xxxxxxx", "") in new stack
[Aug 25 15:29:53] DEBUG[16029] chan_sip.c: SIP answering channel:  
SIP/provider-xxxxxxx
[Aug 25 15:29:53] DEBUG[16029] channel.c: Didn't receive a media frame  
 from SIP/provider-xxxxxxx within 500 ms of answering. Continuing anyway
[Aug 25 15:29:53] VERBOSE[16029] pbx.c: [Aug 25 15:29:53]     -- Executing  
[s at vm-xxxxx:2] Set("SIP/provider-xxxxxxx", "TIMEOUT(response)=3") in new  
stack
[Aug 25 15:29:53] VERBOSE[16029] pbx.c: [Aug 25 15:29:53]     -- Executing  
[s at vm-xxxxx:3] Set("SIP/provider-xxxxxxx", "TIMEOUT(digit)=5") in new stack
[Aug 25 15:29:53] VERBOSE[16029] pbx.c: [Aug 25 15:29:53]     -- Executing  
[s at vm-xxxxx:4] Playback("SIP/provider-xxxxxxx", "xxxxxxxxxx") in new stack
[Aug 25 15:29:53] VERBOSE[16029] file.c: [Aug 25 15:29:53]     --  
<SIP/provider-xxxxxxx> Playing 'xxxxxxxxxx.ulaw' (language 'fr')
[Aug 25 15:29:56] VERBOSE[16029] pbx.c: [Aug 25 15:29:56]     -- Executing  
[s at vm-xxxxx:5] Playback("SIP/provider-xxxxxxx", "xxxxxxxxxx") in new stack
[Aug 25 15:29:56] VERBOSE[16029] file.c: [Aug 25 15:29:56]     --  
<SIP/provider-xxxxxxx> Playing 'xxxxxxxxxx.ulaw' (language 'fr')
[Aug 25 15:30:02] VERBOSE[16029] pbx.c: [Aug 25 15:30:02]     -- Executing  
[s at vm-xxxxx:6] Playback("SIP/provider-xxxxxxx", "xxxxxxxxxx") in new stack
[Aug 25 15:30:02] VERBOSE[16029] file.c: [Aug 25 15:30:02]     --  
<SIP/provider-xxxxxxx> Playing 'xxxxxxxxxx.ulaw' (language 'fr')
[Aug 25 15:30:08] VERBOSE[16029] pbx.c: [Aug 25 15:30:08]     -- Executing  
[s at vm-xxxxx:7] Set("SIP/provider-xxxxxxx", "MAX=0") in new stack
[Aug 25 15:30:08] VERBOSE[16029] pbx.c: [Aug 25 15:30:08]     -- Executing  
[s at vm-xxxxx:8] BackGround("SIP/provider-xxxxxxx", "xxxxxxxxxx") in new  
stack
[Aug 25 15:30:08] VERBOSE[16029] file.c: [Aug 25 15:30:08]     --  
<SIP/provider-xxxxxxx> Playing 'xxxxxxxxxx.ulaw' (language 'fr')
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end '7' received on  
SIP/provider-xxxxxxx, duration 0 ms
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end accepted without begin  
'7' on SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end passthrough '7' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end '7' received on  
SIP/provider-xxxxxxx, duration 100 ms
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end passthrough '7' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end '6' received on  
SIP/provider-xxxxxxx, duration 0 ms
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end accepted without begin  
'6' on SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end passthrough '6' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end '6' received on  
SIP/provider-xxxxxxx, duration 100 ms
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end passthrough '6' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end '6' received on  
SIP/provider-xxxxxxx, duration 0 ms
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end accepted without begin  
'6' on SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end passthrough '6' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end '6' received on  
SIP/provider-xxxxxxx, duration 100 ms
[Aug 25 15:30:14] DTMF[16029] channel.c: DTMF end passthrough '6' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end '8' received on  
SIP/provider-xxxxxxx, duration 0 ms
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end accepted without begin  
'8' on SIP/provider-xxxxxxx
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end passthrough '8' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end '8' received on  
SIP/provider-xxxxxxx, duration 100 ms
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end passthrough '8' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end '9' received on  
SIP/provider-xxxxxxx, duration 0 ms
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end accepted without begin  
'9' on SIP/provider-xxxxxxx
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end passthrough '9' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end '9' received on  
SIP/provider-xxxxxxx, duration 100 ms
[Aug 25 15:30:15] DTMF[16029] channel.c: DTMF end passthrough '9' on  
SIP/provider-xxxxxxx
[Aug 25 15:30:15] VERBOSE[16029] pbx.c: [Aug 25 15:30:15]     -- Invalid  
extension '7766668899' in context 'vm-xxxxx' on SIP/provider-xxxxxxx
------------------------

As you can see the DTMF come twice, the first with duration of 0ms et the  
second with duration of 100ms.
I tried to set relaxdtmf=yes or rfc2833compensate=yes but I still have the  
same problem...

Anybody know how I can solve this problem of DTMF duplication ?

Thank you in advance.


Loïc



More information about the asterisk-users mailing list