[asterisk-users] Conference bridge problem
Bartosz Wegrzyn - asterisk
junk at lexoncom.com
Tue Sep 12 08:08:41 MST 2006
Hello,
I am trying to set conference system that will allow to bridge pstn and
voip conferences together,
So far I did this
created meetme conference room
conf => 500|1234
I created test extension 555, which does this:
exten => 555,1,MeetMeCount(500|count)
exten => 555,2,Gotoif,$[${count} = 0]?7
exten => 555,3,Gotoif,$[${count} = 1]?9
exten => 555,4,Meetme,500|cxAMs
exten => 555,5,Playback,goodbye
exten => 555,6,Hangup
exten => 555,7,Goto(from-internal-custom,556,1)
exten => 555,8,hangup
exten => 555,9,System(/usr/sbin/asterisk -rx "meetme kick 500 2")
exten => 555,10,Goto(from-internal-custom,556,1)
1st check how many people are in meetme conference 500
if more than 1 skip to 9 if zero go to 7
this is done because if zap channel is still up (from previous conference)
and in the conference it will block new
conference connection to pstn.
so my way is to check if there is more than 1 user in the conference, if
yes it would mean
that zap channel is still up (this is my main problem , so thats why I do
that)
if it is up I will go to extension 9 and I will kill it before I proceed
later I will run this:
exten => 555,10,Goto(from-internal-custom,556,1)
which initiates zap call using this file:
[root at asterisk1 asterisk]# cat 1-test
Channel: ZAP/4/91(number deleted)
Callerid: 1
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: from-internal-custom
Extension: 561
Priority: 1
above would call pstn number and put the call into extension 561
extension 561 would later dial dtmf codes to connect to the conference
with password:
exten => 561,1,wait,10
exten => 561,2,senddtmf(2)
exten => 561,3,senddtmf(7)
exten => 561,4,senddtmf(2)
exten => 561,5,senddtmf(5)
exten => 561,6,senddtmf(7)
exten => 561,7,senddtmf(3)
exten => 561,8,senddtmf(6)
exten => 561,9,senddtmf(#)
exten => 561,10,Meetme,500|qAx|1234
exten => 561,11,Hangup
at 561,10 it would go back to conference
at this time user is connected to 555 conference which is bridged with
pstn conference
When new user connects he goes to extension
exten => 555,7,Goto(from-internal-custom,556,1)
which does:
exten => 556,1,System(/bin/cp /etc/asterisk/1-test
/var/spool/asterisk/outgoing/)
exten => 556,2,goto(from-internal-custom,555,4)
because there are more than 2 users in the 500 conference (1st user and
pstn user) more uses can connect to join the
bridge.
Problem!!!
When all users disconnect, the zap channel is still up.
it will be killed next time the new user connects to the conference.
During the silent time the zap channel will not be available.
So, I created temporary solution
i wrote this script:
[root at asterisk1 asterisk]# cat script
a=0
/usr/sbin/asterisk -rx "meetme list 500 " | grep Sip
if [ $? != 0 ];then
a=2
else
a=1
fi
/usr/sbin/asterisk -rx "meetme list 500 " | grep IAX
if [ $? != 0 ];then
a=2
else
a=1
fi
/usr/sbin/asterisk -rx "meetme list 500 " | grep Zap
if [ $? = 0 ];then
if [ $a = 2 ];then
/usr/sbin/asterisk -rx "meetme kick 500 2"
/usr/sbin/asterisk -rx "meetme kick 500 1"
/usr/sbin/asterisk -rx "meetme kick 500 3"
fi
fi
The script checks if zap channel is up, although the IAX or SIP are down.
If it is up it will kill the zap channel.
Problem is that running that script using cron starts a lot of rastersik
processes and
asterisk stop working,
Any ideas how my problem could be solved?
Thx
Bart
More information about the asterisk-users
mailing list