Связь и система оповещения на Asterisk
Добавлено: 18 фев 2020, 20:49
Здравствуйте!
Задача: На базе Asterisk сделать внутреннюю телефонную связь и систему оповещения. Для системы оповещения собираюсь использовать несколько устройств системы оповещения и трансляции - Комендантъ VoIP-BSC1 - IP/SIP. Для одновременного оповещения через несколько устройств Комендантъ VoIP-BSC1 использую конференцию.
На данном этапе работают звонки между внутренними абонентами, и при звонке на номер 7777 создается конференция, в которую автоматически подключаются абоненты с номерами 7510 и 7805 (Комендантъ VoIP-BSC1). Звонок осуществляю с номера 7109.
1. /etc/asterisk/meetme.conf
2. /etc/asterisk/extensions.conf
3. /var/spool/asterisk/call_list.sh
4. /var/spool/asterisk/list.txt
Это все работает, конференция создается, 7510 и 7805 к ней подключаются автоматом, вопрос:
Как сделать, чтобы 7510 и 7805 выходили из конференции автоматически, когда 7109 кладет трубку?
Задача: На базе Asterisk сделать внутреннюю телефонную связь и систему оповещения. Для системы оповещения собираюсь использовать несколько устройств системы оповещения и трансляции - Комендантъ VoIP-BSC1 - IP/SIP. Для одновременного оповещения через несколько устройств Комендантъ VoIP-BSC1 использую конференцию.
На данном этапе работают звонки между внутренними абонентами, и при звонке на номер 7777 создается конференция, в которую автоматически подключаются абоненты с номерами 7510 и 7805 (Комендантъ VoIP-BSC1). Звонок осуществляю с номера 7109.
1. /etc/asterisk/meetme.conf
Код: Выделить всё
[rooms]
conf => 7777
Код: Выделить всё
[sipout]
exten => _7777, 1, Answer()
exten => _7777, n, System(/var/spool/asterisk/call_list.sh)
exten => _7777, n, ConfBridge(7777)
[conference]
exten => s, 1, Answer()
exten => s, n, ConfBridge(7777)
3. /var/spool/asterisk/call_list.sh
Код: Выделить всё
#!/bin/sh
while read number; do
cat <<EOF > /var/spool/asterisk/$number
Channel: Local/$number@sipout
Callerid: $number
MaxRetries: 1
RetryTime: 20
WaitTime: 30
Context: conference
Extension: s
Priority: 1
Archive: yes
Set: CDR(userfield)=${REASON}
Account: confrence_1
EOF
chown asterisk:asterisk /var/spool/asterisk/$number
mv /var/spool/asterisk/$number /var/spool/asterisk/outgoing
echo "$number"
number=`expr $number + 1`
while [ "$?" -eq "0" ]
do
count_files ()
{
count_f=`ls /var/spool/asterisk/outgoing | wc -l`
if [ "$count_f" -eq "15" ]; then
sleep 10
return 0
else
return 1
fi
}
count_files
done
done < /var/spool/asterisk/list.txt
exit 0
Код: Выделить всё
7510
7805
Как сделать, чтобы 7510 и 7805 выходили из конференции автоматически, когда 7109 кладет трубку?