VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Связь и система оповещения на Asterisk

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
Mushta
Сообщения: 9
Зарегистрирован: 06 мар 2018, 15:50

Связь и система оповещения на Asterisk

Сообщение Mushta »

Здравствуйте!
Задача: На базе Asterisk сделать внутреннюю телефонную связь и систему оповещения. Для системы оповещения собираюсь использовать несколько устройств системы оповещения и трансляции - Комендантъ VoIP-BSC1 - IP/SIP. Для одновременного оповещения через несколько устройств Комендантъ VoIP-BSC1 использую конференцию.
На данном этапе работают звонки между внутренними абонентами, и при звонке на номер 7777 создается конференция, в которую автоматически подключаются абоненты с номерами 7510 и 7805 (Комендантъ VoIP-BSC1). Звонок осуществляю с номера 7109.

1. /etc/asterisk/meetme.conf

Код: Выделить всё

[rooms]
conf => 7777
2. /etc/asterisk/extensions.conf

Код: Выделить всё

[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
4. /var/spool/asterisk/list.txt

Код: Выделить всё

7510
7805
Это все работает, конференция создается, 7510 и 7805 к ней подключаются автоматом, вопрос:
Как сделать, чтобы 7510 и 7805 выходили из конференции автоматически, когда 7109 кладет трубку?
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: Связь и система оповещения на Asterisk

Сообщение ded »

Освоить команду
CLI> channel request hangup all
и прикрутить её на
exten => h,1,....
exten => h,n, Hangup()
в контексте [conference] через внешний скрипт. Логика - когда вешается трубка 7109 отрабатывает exten => h и гасит все
Mushta
Сообщения: 9
Зарегистрирован: 06 мар 2018, 15:50

Re: Связь и система оповещения на Asterisk

Сообщение Mushta »

Спасибо за пинок в нужном направлении, не знаю, выполнил ли я в точности то, что вы мне посоветовали, но работает!

Мои изменения в /etc/asterisk/extensions.conf :

Код: Выделить всё

[sipout]
exten => _7777, 1, Answer()
exten => _7777, n, System(/var/spool/asterisk/call_list.sh)
exten => _7777, n, ConfBridge(7777)
exten => h, 1, Gosub(conference,h,1)

[conference]
exten => s, 1, Answer()
exten => s, n, ConfBridge(7777)
exten => h, 1, System(asterisk -rx channel request hangup all)
Mushta
Сообщения: 9
Зарегистрирован: 06 мар 2018, 15:50

Re: Связь и система оповещения на Asterisk

Сообщение Mushta »

В моем решении выше была ошибка, убивались все каналы, не только конференция.
Ниже привожу рабочий пример без этого недостатка:
/etc/asterisk/extensions.conf:

Код: Выделить всё

[sipout]
exten => _7777, 1, Answer()
exten => _7777, n, System(/var/spool/asterisk/call_list.sh)
exten => _7777, n, ConfBridge(7777)
exten => h, 1, System(asterisk -rx confbridge kick 7777 all)

[conference]
exten => s, 1, Answer()
exten => s, n, ConfBridge(7777)
Mushta
Сообщения: 9
Зарегистрирован: 06 мар 2018, 15:50

Re: Связь и система оповещения на Asterisk

Сообщение Mushta »

Остался не решенным вопрос, как отключить голосовые оповещения при входе и выходе из конференции.....
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: Связь и система оповещения на Asterisk

Сообщение ded »

Обнулить соответствующие аудио файлы?

P.S. знак _ не нужен, 7777 - это не шаблон.
exten => _7777

exten => h, 1, требует продолжения
exten => h, n, Hangup()
Mushta
Сообщения: 9
Зарегистрирован: 06 мар 2018, 15:50

Re: Связь и система оповещения на Asterisk

Сообщение Mushta »

Благодарю за подсказки, все исправил, со звуком решил следующим способом:
/etc/asterisk/confbridge.conf

Код: Выделить всё

sound_kicked=silence/1
Mushta
Сообщения: 9
Зарегистрирован: 06 мар 2018, 15:50

Re: Связь и система оповещения на Asterisk

Сообщение Mushta »

И так, внутренние звонки работают, оповещение с использованием конференции тоже работает, осталось разобраться с последним, что хотелось бы реализовать. На объекте где предполагается эксплуатация всего выше перечисленного, нужно в систему оповещения скоммутировать сигналы ГО (Гражданская Оборона). В оборудовании ГО имеем сигнальную пару (звук) и пару управления (сухие контакты реле).
Вопрос: есть ли возможность по сигналам ГО на Астериске формировать конференцию в которую вещать звук ГО? Есть ли идеи?
mormishka
Сообщения: 2
Зарегистрирован: 06 мар 2017, 21:06

Re: Связь и система оповещения на Asterisk

Сообщение mormishka »

добрый день.
удалось решить задачу с сухими контактами в связке с астериском?
Или придумали как то подругому?
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH