[Home]

Summary:ASTERISK-10308: DISA prevents DTMF detection w/ FXO port on TDM400
Reporter:Benjamin M. (devnullzero)Labels:
Date Opened:2007-09-15 11:16:33Date Closed:2011-06-07 14:08:10
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_disa
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:DISA prevents DTMF detection capability when using the FXO
port of the TDM400.

I got a confirmation from an other user:
http://lists.digium.com/pipermail/asterisk-users/2007-September/196518.html

Also tested with svn 1.4 branch rev82444.

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

Below, config A and B and their debug logs.

In Config A I use Authenticate() instead of using DISA password since it
demonstrates that it's DISA that seems to prevent DTMF detection when
using Zap/1. Otherwise DISA works flawlessly when calls are coming from
FXS port (TDM400), IAX, SIP channels.... and we have absolutely no
other problem detecting DTMF that we are aware of...

---------------------------  
zapata.conf
---------------------------
context=inbound-pstn
signalling=fxs_ks
rxgain=10
txgain=3
language=fr
channel => 1

I have tried to change gains without any result ...
(http://forums.digium.com/viewtopic.php?t=17769&highlight=disa+dtmf)

; --- Config A --- ;

exten => 111,1,Answer
exten => 111,n,Authenticate(111)
exten => 111,n,DISA(no-password|internal)

; --- Dial sequence --- ;

PSTN line -> TDM400
enter extension 111 -> dial tone
enter password  111 -> "new" dial tone
enter extension -> I still getting the dial tone whatever I'm entering
timeout.

Here the debug log:

<snip>

DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF end accepted without begin '1' on Zap/1-1
DTMF end passthrough '1' on Zap/1-1
Scheduling timer at 0 sample intervals
Set channel Zap/1-1 to write format ulaw
Oooh, got something to jump out with ('1')!
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on Zap/1-1
DTMF end emulation of '1' queued on Zap/1-1
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on Zap/1-1
DTMF end emulation of '1' queued on Zap/1-1
 == CDR updated on Zap/1-1
Launching 'Answer'
   -- Executing [111@compagnie:1] Answer("Zap/1-1", "") in new stack
Launching 'Authenticate'
   -- Executing [111@compagnie:2] Authenticate("Zap/1-1", "111") in new
stack
Set channel Zap/1-1 to write format gsm
Scheduling timer at 160 sample intervals
   -- <Zap/1-1> Playing 'agent-pass' (language 'fr')
Scheduling timer at 0 sample intervals
Scheduling timer at 0 sample intervals
Set channel Zap/1-1 to write format ulaw
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on Zap/1-1
DTMF end emulation of '1' queued on Zap/1-1
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on Zap/1-1
DTMF end emulation of '1' queued on Zap/1-1
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on Zap/1-1
DTMF end emulation of '1' queued on Zap/1-1
DTMF digit: # on Zap/1-1
DTMF end '#' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '#' with duration 100 queued on Zap/1-1
DTMF end emulation of '#' queued on Zap/1-1
Set channel Zap/1-1 to write format gsm
Scheduling timer at 160 sample intervals
   -- <Zap/1-1> Playing 'auth-thankyou' (language 'fr')
Scheduling timer at 0 sample intervals
Scheduling timer at 0 sample intervals
Set channel Zap/1-1 to write format ulaw
Launching 'DISA'
   -- Executing [111@compagnie:3] DISA("Zap/1-1",
"no-password|internal") in new stack
Digittimeout: 3000
Responsetimeout: 10000
Mailbox:
Context: internal
DISA no-password login success
Set channel Zap/1-1 to write format slin
Scheduling timer at 160 sample intervals
Scheduling timer at 0 sample intervals

[ ------------ asterisk isn't detecting any DTMF... ---------- ]

DISA extension entry timeout on chan Zap/1-1
Requested indication 8 on channel Zap/1-1
Set channel Zap/1-1 to write format ulaw
Scheduling timer at 0 sample intervals
Spawn extension (compagnie,111,3) exited non-zero on 'Zap/1-1'
 == Spawn extension (compagnie, 111, 3) exited non-zero on 'Zap/1-1'
Soft-Hanging up channel 'Zap/1-1'
Hanging up channel 'Zap/1-1'
zt_hangup(Zap/1-1)
Hangup: channel: 1 index = 0, normal = 7, callwait = -1, thirdcall = -1
disabled echo cancellation on channel 1
Set option TDD MODE, value: OFF(0) on Zap/1-1
Updated conferencing on 1, with 0 conference users
   -- Hungup 'Zap/1-1'


<snip>




; --- Config B --- ;

exten => 111,1,Answer
exten => 111,n,DISA(111|internal)

; --- Dial sequence --- ;

PSTN line -> TDM400
enter extension 111 -> dial tone
enter password  111 -> I still getting the dial tone whatever I'm entering
password timeout.

Here the debug log:

<snip>
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF end accepted without begin '1' on Zap/1-1
DTMF end passthrough '1' on Zap/1-1
Scheduling timer at 0 sample intervals
Set channel Zap/1-1 to write format ulaw
Oooh, got something to jump out with ('1')!
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on Zap/1-1
DTMF end emulation of '1' queued on Zap/1-1
DTMF digit: 1 on Zap/1-1
DTMF end '1' received on Zap/1-1, duration 0 ms
DTMF begin emulation of '1' with duration 100 queued on Zap/1-1
DTMF end emulation of '1' queued on Zap/1-1
 == CDR updated on Zap/1-1
Launching 'Answer'
   -- Executing [111@compagnie:1] Answer("Zap/1-1", "") in new stack
Launching 'DISA'
   -- Executing [111@compagnie:2] DISA("Zap/1-1", "111|internal") in
new stack
Digittimeout: 3000
Responsetimeout: 10000
Mailbox:
Context: internal
Set channel Zap/1-1 to write format slin
Scheduling timer at 160 sample intervals
Scheduling timer at 0 sample intervals

[ ------------ asterisk isn't detecting any DTMF... ---------- ]

DISA password entry timeout on chan Zap/1-1
Requested indication 8 on channel Zap/1-1
Set channel Zap/1-1 to write format ulaw
Scheduling timer at 0 sample intervals
Spawn extension (compagnie,111,2) exited non-zero on 'Zap/1-1'
 == Spawn extension (compagnie, 111, 2) exited non-zero on 'Zap/1-1'
Soft-Hanging up channel 'Zap/1-1'
Hanging up channel 'Zap/1-1'
zt_hangup(Zap/1-1)
Hangup: channel: 1 index = 0, normal = 7, callwait = -1, thirdcall = -1
disabled echo cancellation on channel 1
Set option TDD MODE, value: OFF(0) on Zap/1-1
Updated conferencing on 1, with 0 conference users
   -- Hungup 'Zap/1-1'
<snip>
Comments:By: Joshua C. Colp (jcolp) 2007-10-29 12:28:27

Please rerun this test using the latest 1.4 with debug enabled in logger.conf and debug level set to 9, as well as DTMF logging. Thanks.

By: Tilghman Lesher (tilghman) 2007-12-05 17:36:33.000-0600

No response from reporter.

By: Benjamin M. (devnullzero) 2007-12-05 18:48:50.000-0600

Sorry for the delay. I can reproduce with 1.4.15. I will try to debug the system during Christmas holidays.

By: Tilghman Lesher (tilghman) 2007-12-24 21:35:13.000-0600

devnullzero:  Excellent.  I look forward to seeing your debug any day now.

By: Benjamin M. (devnullzero) 2007-12-24 22:56:11.000-0600

Here your Christmas gift ;-)

Don't hesitate to ask for anything else.

Example with no detection at all (sometime I can get it working, but it seems to be by pure chance). Via IAX or locally absolutely not problem with DISA.

Asterisk 1.4.16.2
Zaptel Version 1.4.7.1

asterisk -f -C /usr/local/etc/asterisk  -vvvvvvvvv -g  -ddddddddd -c

exten => 9000,1,Answer
exten => 9000,n,Set(TIMEOUT(digit)=5)
exten => 9000,n,Set(TIMEOUT(response)=10)
exten => 9000,n,Set(CALLERID(all)=F ${CALLERID(name)} <${CALLERID(num)}>)
exten => 9000,n,Playback(vm-password&beep)
exten => 9000,n,DISA(987654|internal)



Got event 18 (Ring Begin)...
Got event 2 (Ring/Answered)...
Launching 'Goto'
   -- Executing [s@inbound-pstn:1] Goto("Zap/1-1", "context|s|1") in new stack
   -- Goto (context,s,1)
Launching 'Set'
   -- Executing [s@context:1] Set("Zap/1-1", "CHANNEL(language)=fr") in new stack
Launching 'Set'
   -- Executing [s@context:2] Set("Zap/1-1", "TIMEOUT(digit)=3") in new stack
   -- Digit timeout set to 3
Launching 'Set'
   -- Executing [s@context:3] Set("Zap/1-1", "TIMEOUT(response)=10") in new stack
   -- Response timeout set to 10
Launching 'Answer'
   -- Executing [s@context:4] Answer("Zap/1-1", "") in new stack
Notification of state change to be queued on device/channel Zap/1-1
Took Zap/1-1 off hook
Enabled echo cancellation on channel 1
Engaged echo training on channel 1
Launching 'Wait'
   -- Executing [s@context:5] Wait("Zap/1-1", "1") in new stack
No provider found, checking channel drivers for Zap - 1
Changing state for Zap/1 - state 2 (In use)
Launching 'BackGround'
   -- Executing [s@context:6] BackGround("Zap/1-1", "voice/welcome") in new stack
Set channel Zap/1-1 to write format gsm
Scheduling timer at 160 sample intervals
   -- <Zap/1-1> Playing 'voice/welcome' (language 'fr')
DTMF digit: 9 on Zap/1-1
DTMF end '9' received on Zap/1-1, duration 0 ms
DTMF end accepted without begin '9' on Zap/1-1
DTMF end passthrough '9' on Zap/1-1
Scheduling timer at 0 sample intervals
Set channel Zap/1-1 to write format ulaw
Oooh, got something to jump out with ('9')!
DTMF digit: 0 on Zap/1-1
DTMF end '0' received on Zap/1-1, duration 0 ms
DTMF end accepted without begin '0' on Zap/1-1
DTMF end passthrough '0' on Zap/1-1
DTMF digit: 0 on Zap/1-1
DTMF end '0' received on Zap/1-1, duration 0 ms
DTMF end accepted without begin '0' on Zap/1-1
DTMF end passthrough '0' on Zap/1-1
DTMF digit: 0 on Zap/1-1
DTMF end '0' received on Zap/1-1, duration 0 ms
DTMF end accepted without begin '0' on Zap/1-1
DTMF end passthrough '0' on Zap/1-1
 == CDR updated on Zap/1-1
Launching 'Answer'
   -- Executing [9000@context:1] Answer("Zap/1-1", "") in new stack
Launching 'Set'
   -- Executing [9000@context:2] Set("Zap/1-1", "TIMEOUT(digit)=5") in new stack
   -- Digit timeout set to 5
Launching 'Set'
   -- Executing [9000@context:3] Set("Zap/1-1", "TIMEOUT(response)=10") in new stack
   -- Response timeout set to 10
Function result is ''
Function result is ''
Launching 'Set'
   -- Executing [9000@context:4] Set("Zap/1-1", "CALLERID(all)=F  <>") in new stack
Launching 'Playback'
   -- Executing [9000@context:5] Playback("Zap/1-1", "vm-password&beep") in new stack
Set channel Zap/1-1 to write format gsm
Scheduling timer at 160 sample intervals
   -- <Zap/1-1> Playing 'vm-password' (language 'fr')
Scheduling timer at 0 sample intervals
Scheduling timer at 0 sample intervals
Set channel Zap/1-1 to write format ulaw
Set channel Zap/1-1 to write format gsm
Scheduling timer at 160 sample intervals
   -- <Zap/1-1> Playing 'beep' (language 'fr')
Scheduling timer at 0 sample intervals
Scheduling timer at 0 sample intervals
Set channel Zap/1-1 to write format ulaw
Launching 'DISA'
   -- Executing [9000@context:6] DISA("Zap/1-1", "987654|internal") in new stack
Digittimeout: 5000
Responsetimeout: 10000
Mailbox:
Context: internal
Set channel Zap/1-1 to write format slin
Scheduling timer at 160 sample intervals
Internal timing is disabled (option_internal_timing=0 chan->timingfd=17)
Generator got voice, switching to phase locked mode
Scheduling timer at 0 sample intervals
Internal timing is disabled (option_internal_timing=0 chan->timingfd=17) <============ repeated around 500 times
<snip>
<==== NOT DETECTION: STILL GETTING THE DIALING TONE WHILE ENTERING PASSWORD =====>

<snip>

DISA password entry timeout on chan Zap/1-1
Requested indication 8 on channel Zap/1-1
Internal timing is disabled (option_internal_timing=0 chan->timingfd=17) <============ repeated around 500 times

<snip>

Set channel Zap/1-1 to write format ulaw
Scheduling timer at 0 sample intervals
Spawn extension (context,9000,6) exited non-zero on 'Zap/1-1'
 == Spawn extension (context, 9000, 6) exited non-zero on 'Zap/1-1'
Soft-Hanging up channel 'Zap/1-1'
Hanging up channel 'Zap/1-1'
zt_hangup(Zap/1-1)
Hangup: channel: 1 index = 0, normal = 7, callwait = -1, thirdcall = -1
disabled echo cancellation on channel 1
Set option TDD MODE, value: OFF(0) on Zap/1-1
Updated conferencing on 1, with 0 conference users
   -- Hungup 'Zap/1-1'
Notification of state change to be queued on device/channel Zap/1-1
No provider found, checking channel drivers for Zap - 1

By: Brett Bryant (bbryant) 2008-05-13 09:35:16

devnullzero, I cannot reproduce this problem with version 1.4.20 of asterisk.

Can you tell us if you're still getting the issue?

By: Benjamin M. (devnullzero) 2008-05-13 10:05:23

I will try during the weekend. I should have the answer before Monday.

By: Joshua C. Colp (jcolp) 2008-06-10 11:40:41

devnullzero: Any update?

By: Benjamin M. (devnullzero) 2008-06-10 12:37:03

I've tested without great success but the "unexpected behavior" seems to have changed since my previous debug. Saddly, I hadn't enough time to make all the debug. I should be able to check all that in one or two weeks.

By: Russell Bryant (russell) 2008-07-08 10:39:01

Feel free to reopen if you have further information to describe what problem you are seeing.