[asterisk-users] Macro Overlap

Nicholas Blasgen nicholas at blasgen.com
Tue Aug 7 13:13:33 CDT 2007


I've got 4 SIP phone lines with a call-limit of 2 for each.  I've written a
handy macro to allow my users to dial a phone number and the macro will
figure out the next available line to use by first checking if the GROUP()
is over 2 and then checking to see if ChanIsAvail() as a backup, and if it
can't use the line for either reason it goes to the next line.  The problem
is that there are enough situations that the Macro gets called twice without
much time seperation.  Both macros check the group() number, it comes back
as free, they check the line availability and it's open, and they try
dialing.  But because they both started at more or less the same instant,
they've both at the same stage in the macro and sometimes (maybe 10% of the
time) a macro will try dialing on a line that's already in use.

My question is this.  Is it possible to tell Asterisk to execute part of a
macro as a block without allowing any other commands to be processed during
that time?  Some way to LOCK the dialplan (as you'd do in SQL).  I want my
macro to be able to execute the part of the code that checks line status and
then sets the GROUP() without allowing any other dialplans from running
during that time.  Anyone know if this is a current feature?

-- 
/Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20070807/3d16a720/attachment.htm 


More information about the asterisk-users mailing list