[asterisk-users] DAHDI inter-digit timeout = 0

Richard Mudgett
Wed, 11 Apr 2012 23:34:05 -0000

> I've had an old server die on me, it was installed by someone else
> then never maintained.  It runs some old version of Elastix on top
> of Asterisk 1.4.33 with 4x Digium T100P cards.  I swapped all the
> parts into a referb of the same gear and it runs great, but I want
> to put it in a completely new box.  The OS on the old drives was too
> old to talk to the embedded chipset in the new server so I installed
> whatever version of Elastix was in the current production repo
> (Asterisk 1.8.7) and rebuilt the configs from the ground up to
> utilize a new Digium T420P...
>
> Long story short, this is the first time I've worked with hardware
> cards, so I obviously missed something.  When a line is picked up, I
> get dial tone but it immediately goes to a busy signal after the
> first digit is pressed.  I get the same result when I use the new
> T420P and an old T100P.  The log below was generated when I hit 8,
> three times, as quickly as possible. It's only seeing the first 8
> then dumps that 8 to extension 'stations' which has no '8',
thus the
> busy signal. "timeout = 0" is my only lead.
Set(TIMEOUT(digits)=X)
> has no affect since the timeout occurs before the call hits the
> dialplan context, so methinks the issue lies elsewhere.  Four hours
> in, my forehead raw from being smashed against hard surfaces, said
> "elsewhere" has eluded me...  Suggestions?  I'm looking for a
slap
> to the face and a finger pointing to my stupid oversight.  RTFM +
> intertubes have failed me (or I them)
>
> DEBUG[5785] chan_dahdi.c: Monitor doohicky got event Ring/Answered on
> channel 5
> DEBUG[5785] sig_analog.c: channel (5) - signaling (2) - event
> (ANALOG_EVENT_RINGOFFHOOK)
> DEBUG[5785] dsp.c: Setup tone 1100 Hz, 500 ms, block_size=160,
> hits_required=21
> DEBUG[5785] dsp.c: Setup tone 2100 Hz, 2600 ms, block_size=160,
> hits_required=116
> DEBUG[19988] sig_analog.c: __analog_ss_thread 5
> VERBOSE[19988] sig_analog.c:     -- Starting simple switch on
> 'DAHDI/5-1'
> DEBUG[5757] devicestate.c: No provider found, checking channel
> drivers for DAHDI - 5
> DEBUG[5757] devicestate.c: Changing state for DAHDI/5 - state 2 (In
> use)
> DEBUG[5757] devicestate.c: device 'DAHDI/5' state '2'
> DEBUG[19988] sig_analog.c: Begin DTMF digit: 0x38 '8' on DAHDI/5-1
> DEBUG[19988] chan_dahdi.c: Begin DTMF digit: 0x38 '8' on DAHDI/5-1
> DEBUG[19988] sig_analog.c: End DTMF digit: 0x38 '8' on DAHDI/5-1
> DEBUG[19988] chan_dahdi.c: End DTMF digit: 0x38 '8' on DAHDI/5-1
> DEBUG[19988] sig_analog.c: waitfordigit returned '8' (56), timeout
> 0
> DEBUG[19988] sig_analog.c: Can't match 8 from '1505' in context
> stations
> DEBUG[19988] channel.c: Hanging up channel 'DAHDI/5-1'
> DEBUG[19988] chan_dahdi.c: dahdi_hangup(DAHDI/5-1)
> DEBUG[19988] sig_analog.c: analog_hangup 5
> DEBUG[19988] sig_analog.c: Hangup: channel: 5 index = 0, normal = 1,
> callwait = 0, thirdcall = 0
> DEBUG[19988] chan_dahdi.c: Set option TONE VERIFY, mode: OFF(0) on
> DAHDI/5-1
> DEBUG[19988] chan_dahdi.c: Set option TDD MODE, value: OFF(0) on
> DAHDI/5-1
> DEBUG[19988] sig_analog.c: Updated conferencing on 5, with 0
> conference users
> VERBOSE[19988] sig_analog.c:     -- Hanging up on 'DAHDI/5-1'
> VERBOSE[19988] chan_dahdi.c:     -- Hungup 'DAHDI/5-1'
>

Your "clue" of timeout=0 is a red herring.  The timeout variable
printed
is unconditionally set to zero a few lines before the debug message is
printed.

The problem is the dialplan context 'stations' does not have an
extension
starting with '8'.  It is either the wrong context or you need to
add an extension to the 'stations' context in your dialplan.  The
initial
context that your phone is going to start in is configured in
chan_dahdi.conf.  See the chan_dahdi.conf.samples file for more
information.

Richard