[asterisk-users] What don't I get about SIP?
John Marvin
jm-asterisk at themarvins.org
Sat Sep 9 01:31:16 MST 2006
Mike wrote:
> Here it is:
>
>
> <dialplan dialplan.impossibleMatchHandling="1"
> dialplan.removeEndOfDial="1">
> <digitmap dialplan.digitmap="[7]xx|[9]xxxxxxxxxxT|[9][1]xxxxxxxxxxT"
> dialplan.digitmap.timeOut="3"/>
>
> When I dial 845, I get fast busy. When I dial 9-555-555-5555, it dials
> without the need to press send. All good result.
Actually, as soon as you hit 8 you will get the fast busy.
Is that your full dialplan? What about an emergency (911) or other N11
calls? What about direct dial international calls (011...)?
>
> When I dial 9-555-5 and wait, nothing happens....
So, it looks like what you want is a global dialing timeout in the
phone, which the Polycom phones don't appear to have once you break
dialtone. But you may be able to kluge the digit timeout to give you
that feature if you don't need it for what it is meant for. Right now
you are using it to timeout when a digit other than 1 is pressed after
the 9. That isn't really necessary (unless 91 followed by 9 digits is
actually a valid number for whatever you are doing with it). Also, you
are using the brackets unecessarily, since you only have one digit
within them. An equivalent dialplan that doesn't use the digit timeout
feature would be:
<digitmap dialplan.digitmap="7xx|9[2-9]xxxxxxxxx|91xxxxxxxxxx"
The digit timeout feature is typically used for direct dial
international calls and calling the operator. If you don't need either
of those then you could do something like this:
<digitmap dialplan.digitmap='7xx|9[2-9]xxxxxxxxx|91xxxxxxxxxx|[79]x.T"
dialplan.digitmap.timeOut="15"/>
which would timeout and send whatever sequence you had pressed after 15
seconds if you hadn't already matched one of the other patterns.
Note that asterisk may possibly respond with error code 484 if the
sequence pressed isn't complete, which would make the phone continue to
ask for more digits. So, the other part of the solution is to add:
exten => _X.,1,Congestion()
to extensions.conf in the context you are using for your polycom phone(s).
That will match anything that doesn't match one of your valid extensions
as long as it is two digits or more. So you still will get the behaviour
you don't like if someone just presses 7 or 9 and nothing else. But it
will give you most of what you want, assuming I understand what you are
looking for in the first place (you could try x.T in the digitmap and _.
in extensions.conf, but _. is likely to cause other problems).
Note: When the Polycom gets the congestion response from Asterisk it
plays the congestion tone for only about 3-4 seconds, and then hangs up,
which is different behaviour from when you press an 8 for instance. If
you want the behaviours to be similar you could do something like this:
exten => _X.,1,Answer()
exten => _X.,2,Playtones(congestion)
exten => _X.,3,Wait(30)
exten => _X.,4,Hangup()
John
More information about the asterisk-users
mailing list