[asterisk-users] Pre-Dial Handler return something like GOSUB_RESULT?

Richard Mudgett rmudgett at digium.com
Tue Jul 18 19:51:06 CDT 2017

On Tue, Jul 18, 2017 at 6:49 PM, John Kiniston <johnkiniston at gmail.com>

> I'm messing around with pre-dialer handlers today and running into a wall.
> Dial has the U option where I can execute a Gosub when the channels bridge
> and there I can set the variable GOSUB_RESULT to BUSY to make Dial act like
> the channel I called was Busy.

> I want to do something similar with a Pre-Dial handler but don't see a way
> I can Set a variable or return a value that will cause Dial to act like the
> channel I called was Busy?
> Use case:
> Endpoint 100 calls Extension 101
> Extension 101 has a Pre-Dial Handler that checks how many calls Endpoint
> 101 has in progress and if it's greater than X returns a Busy.
> Dial acts like it got a Busy back from the Endpoint, Sets DIALSTATUS and
> continues through it's dial-plan.
> I've tried using the BUSY() Application inside my Pre-Dial handler.
> I've tried sending BUSY back as a Value with Return() to be picked up in
> I've tried setting DIALSTATUS to BUSY.
> Am I trying to use the wrong tool for the Job here?

Why don't you do the how many calls the endpoint has check before Dial()?
You can use the LOCK/UNLOCK functions as shown in [1] on the calling
channel pre-dial
routine to prevent reentrancy issues while doing the check.  The called
channel pre-dial
routine is only to setup the channels you have decided to dial.

> Related, Why can we have multiple Hangup handlers but not Pre-Dial
> handlers?

* There is only one dial to execute the called channel pre-dial handler
while there are many opportunities to specify hangup handlers.
* How do you think you could associate different pre-dial handlers to
different called channels?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20170718/68442505/attachment.html>

More information about the asterisk-users mailing list