[asterisk-users] analog phone digit delay

Justin Killen jkillen at allamericanasphalt.com
Thu Jul 11 16:33:51 CDT 2013


The dahdi source already specifies an 8 second inter-digit timeout.  The problem is that it's erroneously using the matched pattern timeout instead, because the error handling part of the dialplan isn't distinguishable from the 'meat' of the dialplan.

>> If you don't have any ambiguity in your
extensions, you'll never have anyone waiting 8 seconds after they've
finished dialing, because once they've dialed a valid number (which
would match only one extension), it continues instantly without any
timeout at all.

I agree, this would be nice.  Really though, what we're talking about is a distinct pattern in the last priority slot that refers to 'everything that hasn't already matched something else'.  And that slot leaving the timeout at 8 seconds instead of changing it to 3.  It seems silly to me to have to jump through a bunch of hoops in the dialplan just to add matching patterns for an anti-match; it should be something provided for in the codebase.

So, in addition to the previous 3 options, there's now a fourth:
4) Change error handling code to not be a match-all, but rather a pattern (or patterns) that don't allow for overlap between themselves and the 'valid' extension patterns above them, so that there is no ambiguity between the 'valid' patterns and the 'error handling' patterns.

I agree that this would work, but I think the labor involved with maintaining it would be high.  And of course, I'm using FreePBX (I guess I could put in a request to change this for FreePBX, but then I'm sure there's others like AsteriskNOW that would also need to change, so it makes more sense having this within asterisk itself).


-Justin

-----Original Message-----
From: asterisk-users-bounces at lists.digium.com [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Chad Wallace
Sent: Thursday, July 11, 2013 2:05 PM
To: asterisk-users at lists.digium.com
Subject: Re: [asterisk-users] analog phone digit delay

On Thu, 11 Jul 2013 13:53:27 -0700
Justin Killen <jkillen at allamericanasphalt.com> wrote:

> They won't catch, no (because of priority), but they do match, which
> is enough to trigger the 3 second timeout instead of the 8 second.
> So, if you pickup and dial 1, then you will only get 3 seconds
> (instead of 8) to type in the next digit before it considers it
> done.  The issue I am describing is compounded by the fact that the
> patter is _X. instead of _X but the core issue is the same - only
> getting 3 second inter-digit timeouts instead of 8.

Well, if you want an 8 second inter-digit timeout, you can do that by
changing the DAHDI source.  If you don't have any ambiguity in your
extensions, you'll never have anyone waiting 8 seconds after they've
finished dialing, because once they've dialed a valid number (which
would match only one extension), it continues instantly without any
timeout at all.

So it looks like you'll need both fixes--and then you can have it all.


> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Eric
> Wieling Sent: Thursday, July 11, 2013 12:22 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> The catch alls do not catch 1+ or 3+ calls.  Look carefully at it.
> Therefore there will not be a delay.
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Justin
> Killen Sent: Thursday, July 11, 2013 3:14 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> Right, but when you type any of those, there's only a 3 second
> inter-digit timeout because EVERYTHING is a match of the catch-all.
> There is no excessive delay, but instead a delay so short that I'm
> getting complaints.
>
> If I implement your suggestion and change the code in the channel
> driver, then there would be an 8 second delay all the time, even when
> dialing a number like 3001, which IMHO is excessive (and what I was
> referring to in the previous post).
>
> So, again:
>
> my two options as before:
>
> 1) Have the timeout be so short (3 seconds) that users complain (but
> they get a fancy message). 2) The timeouts are reasonable (8
> seconds), but when they're wrong the users get a busy signal (no
> fancy message).
>
> Plus we can add a third option:
> 3) Alter chan_dahdi.c to increase matchdigittimeout to 8 seconds,
> then:  The timeouts on invalid extensions are reasonable (8 seconds),
> but timeouts are valid extensions are excessive (8 seconds), and we
> get a fancy message.
>
>
> It's a shame that reasonable timeouts and a nice message are mutually
> exclusive.
>
>
> -Justin
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Eric
> Wieling Sent: Thursday, July 11, 2013 10:34 AM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> This issue is simple dialplan management, which applies to any PBX.
> This is something every PBX admin has to deal with.
>
> Here is an example using 4-digit extensions in the 3xxx range and
> outside calls are dialed with a leading 1 so the PBX knows it is an
> outside call.   There should be no excessive delay when dialing
> extensions or PSTN numbers in the setup below.  Calls should match
> when the last digit is dialed for those calls.   For invalid numbers
> there will, of course, be a delay.
>
> exten => _1NXXNXXXXXX,1,DoYourOutsideDialing
>
> exten => _3XXX,1,DoYourInsideDialing
>
> exten => _[24-9].,1,DoErrorHandling
>
> exten => _X,1,DoErrorHandling
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Justin
> Killen Sent: Thursday, July 11, 2013 1:11 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> No, I understand - maybe I'm not explaining myself well.
>
> Yes, I can change the source so that pattern-matched input delays 8
> seconds instead of 3, but then the users have to wait 8 seconds for
> every number they dial (even internal 3 digit calls).  I think what I
> really want is for the catch-all pattern to not trigger the shorter
> timeout.  It seems to me that if 3/8 second timeouts are standard and
> a catch-all for fancy messages is commonplace, then the two should
> work together without too much trouble, but instead they are
> currently mutually exclusive.
>
> I realize that a code change will be required to accomplish standard
> 3/8 second wait times AND be able to get a fancy message (I'll be
> submitting an issue to jira - I'm thinking add a special 'no pattern
> matched' extension like i or t).  For the time being, I have the
> catch-all disabled at the site and things are running smoother.
>
> Thanks Eric for your help on this - you helped me to track down the
> cause of the issue and provided a work-around, which is much
> appreciated.
>
> -Justin
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Eric
> Wieling Sent: Thursday, July 11, 2013 9:48 AM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> You seem to be confused.
>
> If you want to change the dialing timeouts on Asterisk analog
> channels, then you need to change the source code.   Now your dialing
> timeout problem is fixed.  I did that about 10 years ago to handle
> slow dialing users on asterisk analog ports.
>
> Then add a catchall pattern for bad numbers and your congestion tone
> is fixed.    done!
>
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Justin
> Killen Sent: Thursday, July 11, 2013 12:26 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> So my only two options then are:
>
> 1) Have the timeout be so short that users complain (but they get a
> fancy message). 2) The timeouts are reasonable, but when they're
> wrong the users get a busy signal (no fancy message).
>
> It's a shame that reasonable timeouts and a nice message are mutually
> exclusive.
>
>
> --Justin
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Eric
> Wieling Sent: Thursday, July 11, 2013 7:08 AM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> I imagine setting up a catch-all extension pattern is your best
> option.  That is what most seem people do.
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Justin
> Killen Sent: Wednesday, July 10, 2013 4:51 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> Okay, so I is no good.  Does anybody else have a work-around for this?
>
> -Justin
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Eric
> Wieling Sent: Wednesday, July 10, 2013 1:43 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> "I" has the same limitations as dialplan timeouts, you have to be in
> a Background or WaitExten or similar for them to work.    These items
> are designed for IVRS.
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Justin
> Killen Sent: Wednesday, July 10, 2013 4:40 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> It seems likely that this is exactly what is happening.  I'd rather
> not change the code though, but rather fix the dialplan.  I'm
> thinking using the 'i' extension would work just the same - would
> there be a reason to use a wildcard pattern match instead of i?
>
> -Justin
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Eric
> Wieling Sent: Wednesday, July 10, 2013 1:12 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> From chan_dahdi.c, don't know if it applies to your situation or not.
>
> /*! \brief Wait up to 16 seconds for first digit (FXO logic) */
> static int firstdigittimeout = 16000;
>
> /*! \brief How long to wait for following digits (FXO logic) */
> static int gendigittimeout = 8000;
>
> /*! \brief How long to wait for an extra digit, if there is an
> ambiguous match */ static int matchdigittimeout = 3000;
>
>
> -----Original Message-----
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Justin
> Killen Sent: Wednesday, July 10, 2013 3:55 PM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
> So then, by saying "If the digits already dialed match an extension
> in the dialplan...wait 3 seconds...", then we're saying that asterisk
> has found a match, and the match is the bad-extension.  Here is the
> bad-number context that is included:
>
>
>
> [bad-number]
>
> include => bad-number-custom
>
> exten => _X.,1,Noop(bad-number, timeouts: absolute:
> ${TIMEOUT(absolute)} digit: ${TIMEOUT(digit)} response:
> ${TIMEOUT(response)})
>
> exten => _X.,n,ResetCDR()
>
> exten => _X.,n,NoCDR()
>
> exten => _X.,n,Progress
>
> exten => _X.,n,Wait(1)
>
> exten => _X.,n,Progress
>
> exten =>
> _X.,n,Playback(silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer)
>
> exten => _X.,n,Wait(1)
>
> exten => _X.,n,Congestion(20)
>
> exten => _X.,n,Hangup
>
>
>
>
>
>
>
> So then, what you're saying then is that if I was to remove this
> include, there would be no match in the dialplan and asterisk will
> wait for 8 seconds instead of 3?  The next question then is how to
> accomplish this without using the wildcard (and how to change it in
> freepbx).
>
>
>
> -Justin
>
> ________________________________
>
> From: asterisk-users-bounces at lists.digium.com
> [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Richard
> Mudgett Sent: Wednesday, July 10, 2013 10:22 AM To: Asterisk Users
> Mailing List - Non-Commercial Discussion Subject: Re:
> [asterisk-users] analog phone digit delay
>
>
>
>
>
>
>
> On Mon, Jul 8, 2013 at 12:14 PM, Justin Killen
> <jkillen at allamericanasphalt.com> wrote:
>
> I have an installation that has analog phones connected via T1
> channel banks.  I'm getting complaints from users that they will
> enter a partial number (eg 91213), then turn away to get the next few
> digits, and the system will start dialing before they have a chance
> to put in the rest of the dialing string.  Is there a way to increase
> this delay?  The only use these 4 dialing patterns:
>
>
>
> Internal 3 digit numbers
>
> 91 XXX XXX XXXX   (for backwards compatibility)
>
> 9 XXX XXXX (also for compatibility)
>
> XXX XXXX
>
>
>
> The simple switch in chan_dahdi has two hardcoded timeout times for
> more digits.
>
>  1) If the digits already dialed match an extension in the dialplan
> but could match another extension if more digits are dialed then
> chan_dahdi will wait 3 seconds for more digits to arrive.
>
> 2) If the digits already dialed do not match any extension in the
> dialplan but more digits could match an extension then chan_dahdi
> will wait 8 seconds for more digits.
>
> The shorter timeout is so the caller won't have to wait too long if
> the caller intends to call the shorter dialplan extension.
>
> You need to look at the extension patterns in your dialplan to see
> where you have ambiguity between extensions.  Are you using the '.'
> wildcard?
>
>
>
> Richard
>
>
>
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
> http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
>                http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
>                http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users


--

C. Chad Wallace, B.Sc.
The Lodging Company
http://www.lodgingcompany.com/
OpenPGP Public Key ID: 0x262208A0


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users



More information about the asterisk-users mailing list