Kurt Knudsen
2008-Oct-20 23:50 UTC
[asterisk-users] TDM410P with EC doesn't detect DTMF after being on for ~1 hour
Now that I have a new card and my echo problems are 'mostly' solved, I have another major issue to deal with. After about an hour or so the card will stop detecting DTMF tones on incoming calls. dahdi_monitor shows the following: [root at asterisk wctdm24xxp]# dahdi_monitor 1 -v Visual Audio Levels. -------------------- Use chan_dahdi.conf file to adjust the gains if needed. ( # = Audio Level * = Max Audio Hit ) <----------------(RX <----------------(TX ###################################* The channel is spiked and I need to stop asterisk and restart dahdi. Here's what the full log shows when it sees an incoming call: [Oct 20 18:49:38] VERBOSE[10629] logger.c: -- Starting simple switch on 'DAHDI/1-1' [Oct 20 18:49:39] NOTICE[10629] chan_dahdi.c: Got event 17 (Polarity Reversal)... [Oct 20 18:49:42] NOTICE[10629] chan_dahdi.c: Got event 18 (Ring Begin)... [Oct 20 18:49:44] NOTICE[10629] chan_dahdi.c: Got event 2 (Ring/Answered)... [Oct 20 18:49:44] VERBOSE[10629] logger.c: -- Executing [s at DID_trunk_1:1] ExecIf("DAHDI/1-1", "1|SetCallerPres|unavailable") in new stack [Oct 20 18:49:44] VERBOSE[10629] logger.c: -- Executing [s at DID_trunk_1:2] ExecIf("DAHDI/1-1", "1|Set|CALLERID(all)=unknown <0000000>") in new stack The 3 events are always there when DTMF is ignored/not detected. Here's what the log shows with a correct call: [Oct 20 18:37:16] DEBUG[10563] dsp.c: dsp busy pattern set to 500,500 [Oct 20 18:37:16] VERBOSE[10611] logger.c: -- Starting simple switch on 'DAHDI/1-1' [Oct 20 18:37:17] VERBOSE[10611] logger.c: -- Executing [s at DID_trunk_1:1] ExecIf("DAHDI/1-1", "0|SetCallerPres|unavailable") in new stack [Oct 20 18:37:17] VERBOSE[10611] logger.c: -- Executing [s at DID_trunk_1:2] ExecIf("DAHDI/1-1", "0|Set|CALLERID(all)=unknown <0000000>") in new stack [Oct 20 18:37:17] VERBOSE[10611] logger.c: -- Executing [s at DID_trunk_1:3] Goto("DAHDI/1-1", "voicemenu-custom-3|s|1") in new stack [Oct 20 18:37:17] VERBOSE[10611] logger.c: -- Goto (voicemenu-custom-3,s,1) [Oct 20 18:37:17] VERBOSE[10611] logger.c: -- Executing [s at voicemenu-custom-3:2] Wait("DAHDI/1-1", "2") in new stack [Oct 20 18:37:17] DEBUG[10611] chan_dahdi.c: Ignore switch to REVERSED Polarity on channel 1, state 4 [Oct 20 18:37:17] DEBUG[10611] chan_dahdi.c: Ignoring Polarity switch to IDLE on channel 1, state 4 [Oct 20 18:37:17] DEBUG[10611] chan_dahdi.c: Polarity Reversal event occured - DEBUG 2: channel 1, state 4, pol= 0, aonp= 0, honp= 0, pdelay= 600, tv= 47$ [Oct 20 18:37:19] VERBOSE[10611] logger.c: -- Executing [s at voicemenu-custom-3:3] Set("DAHDI/1-1", "TIMEOUT(digit)=2") in new stack [Oct 20 18:37:19] VERBOSE[10611] logger.c: -- Digit timeout set to 2 The events are ignored and the call goes through as it should. Also, when the call FAILS, the caller ID does not work. Here's the last bit of dmesg: NO BATTERY on 1/1! BATTERY on 1/1 (+)! 26939263 Polarity reversed (1 -> -1) NO BATTERY on 1/1! 26940073 Polarity reversed (-1 -> 1) BATTERY on 1/1 (+)! RING on 1/1! 26984808 Polarity reversed (1 -> -1) NO RING on 1/1! 26986380 Polarity reversed (-1 -> 1) NO BATTERY on 1/1! BATTERY on 1/1 (+)! I have no idea what that means (module is running with debug=1). Any ideas?