[Asterisk-Users] The sounds of silence: silent soundfiles available

John Todd jtodd at loligo.com
Fri Sep 5 12:41:19 MST 2003


>On Fri, 2003-09-05 at 01:40, John Todd wrote:
>
>>  [nonpedanticexample]
>>  exten => s,1,DigitTimeout(5)
>>  exten => s,2,ResponseTimeout(20)
>>  exten => s,3,Background(type-your-selection)
>>  exten => s,4,Background(silence/3)
>>  exten => s,5,Background(type-your-selection)
>>  exten => s,6,Background(silence/3)
>>  exten => s,7,Background(if-you-need-help-press-pound-for-instructions)
>>
>>  exten => t,1,Goto(s,3)
>
>
>This is another way. Please think about limiting your loops like I have
>below. It is possible to get a channel that didn't detect a hangup, and
>would stay busy the way you have listed above.
>
>[anotherway]
>exten => s,1,SetVar(Loop=0)
>exten => s,2,DigitTimeout(5)
>exten => s,3,ResponseTimeout(20)
>exten => s,4,Background(type-your-selection)
>
>
>exten => t,1,SetVar(Loop=[${Loop}+1])
>exten => t,2,gotoif([${Loop} > 6]?t|100)
>exten => t,3,gotoif([${Loop} == 3]?t|200)
>exten => t,4,goto(s|3)
>
>exten => t,100,Hangup
>
>exten => t,200,Background(if-you-need-help-press-pound-for-instructions)
>exten => t,201,goto(s|3)
>
>
>
>--
>Steven Critchfield <critch at basesys.com>

As usual, there is more than one way to skin a Aster-cat.

My example was intentionally incomplete as a whole dialplan, as it 
was an example.  I normally use AbsoluteTimeout for any calls coming 
into the system to handle "stuck" callers, and then change the 
AbsoluteTimeout to a different value when I send the caller to a Dial 
routine.  This method reduces complexity, and allows me to jump 
around in the dialplan without having to build a bunch of GotoIf 
jumps or think about where I am in a counter routine when I move 
between contexts.  Of course, the incrementing counter may be used 
for other purposes, so it may be suitable in certain circumstances.

While I really like GotoIf and use it extensively, I really hate it 
as well, since every time I make a change in a matching group, I have 
to increment every number after it, and then find every single GotoIf 
that references priorities that have been changed.

JT



More information about the asterisk-users mailing list