Christophorus Laube
2006-May-22 00:08 UTC
[Asterisk-Users] behaviour depending on count of used lines
Hi there,
I want to set up an extension set that acts different depending on the count
of used lines. I have a EuroISDN E1 board with mISDN and I only want to offer
10 lines. Therefore I set up a global variables LINES in the general section
of extensions.conf and instantiate it with 0. I a call is incoming I check
the LINES variable wether is 10 or more. If so I make a call transfer. If not
I increment the variable and direct the call to an internal SIP address.
After finishing the call I want to decrement the variable again, of course.
My extension set looks like this way:
[general]
static=yes
writeprotect=no
LINES => 0
[E1]
exten => 33006712,1,GotoIf($[${LINES} >= 10]?101:201)
exten => 33006712,101,Dial(mISDN/g:E1/34507725)
exten => 33006712,201,SetGlobalVar(LINES=$[ ${LINES} +1 ])
exten => 33006712,202,Dial(SIP/192.168.0.65:5080&SIP/192.168.0.65:5090)
exten => 33006712-ANSWER,203,Answer()
exten => 33006712-HANGUP,204,SetGlobalVar(LINES=$[ ${LINES} -1])
exten => 33006712,205,SetGlobalVar(LINES=$[ ${LINES} -1 ])
exten => 33006712,206,Hangup()
My problem is that the increment works perfectly, but the decrement is not
working. I added the last two extensions only because the hangup-extension
did not work.
Can anyone of you help me, please.
TIA, Christophorus Laube
switch from "global variables" to "group funcions". It's
much more
functional.
Basically, you can set a group for an incoming channel, and count "group
instances" across all channels. No necessity to decrement a variable,
because group setting is channel dependent, so disappear when given channel
is hangup.
Search for GROUP() and GROUP_COUNT() functions on http://www.voip-info.org
It's a thing like this:
exten => 33006712,1,GotoIf($[${GROUP_COUNT(LINES)} >= 10]?101:201)
exten => 33006712,101,Dial(mISDN/g:E1/34507725)
exten => 33006712,201,Set(GROUP()=LINES)
exten => 33006712,202,Dial(SIP/192.168.0.65:5080&SIP/192.168.0.65:5090)
Basically, in priority 201 you set the group named "LINES" for that
channel
before dialing your sip phone.
In priority 1, instead, you check your "used lines counter" getting
the
number of active asterisk channels having group set to "LINES".
that's all
2006/5/22, Christophorus Laube
<bob@semanticedge.de>:>
> Hi there,
>
> I want to set up an extension set that acts different depending on the
> count
> of used lines. I have a EuroISDN E1 board with mISDN and I only want to
> offer
> 10 lines. Therefore I set up a global variables LINES in the general
> section
> of extensions.conf and instantiate it with 0. I a call is incoming I check
> the LINES variable wether is 10 or more. If so I make a call transfer. If
> not
> I increment the variable and direct the call to an internal SIP address.
> After finishing the call I want to decrement the variable again, of
> course.
> My extension set looks like this way:
>
> [general]
> static=yes
> writeprotect=no
> LINES => 0
>
> [E1]
> exten => 33006712,1,GotoIf($[${LINES} >= 10]?101:201)
>
> exten => 33006712,101,Dial(mISDN/g:E1/34507725)
>
> exten => 33006712,201,SetGlobalVar(LINES=$[ ${LINES} +1 ])
> exten =>
33006712,202,Dial(SIP/192.168.0.65:5080&SIP/192.168.0.65:5090)
> exten => 33006712-ANSWER,203,Answer()
> exten => 33006712-HANGUP,204,SetGlobalVar(LINES=$[ ${LINES} -1])
> exten => 33006712,205,SetGlobalVar(LINES=$[ ${LINES} -1 ])
> exten => 33006712,206,Hangup()
>
> My problem is that the increment works perfectly, but the decrement is not
> working. I added the last two extensions only because the hangup-extension
> did not work.
> Can anyone of you help me, please.
>
> TIA, Christophorus Laube
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> Asterisk-Users mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.digium.com/pipermail/asterisk-users/attachments/20060522/7b3d1b30/attachment.htm