Сергей Маликов
02.07.2020
1624

Отправка текстовых сообщений добавочным средствами Asterisk

При необходимости передачи некоторых данных (например, идентификационных номеров оборудования) между добавочными отправка текстовых сообщений может быть наиболее удобным способом. Также, можно инициировать запуск какого-либо скрипта (например, по выбору пункта в голосовом меню) и получать запрошенную информацию не в аудиоформате, а в текстовом виде на софтфон или телефон. Для обеспечения возможности передачи сообщений в Asterisk есть […]

При необходимости передачи некоторых данных (например, идентификационных номеров оборудования) между добавочными отправка текстовых сообщений может быть наиболее удобным способом. Также, можно инициировать запуск какого-либо скрипта (например, по выбору пункта в голосовом меню) и получать запрошенную информацию не в аудиоформате, а в текстовом виде на софтфон или телефон.

Для обеспечения возможности передачи сообщений в Asterisk есть необходимые опции и приложение MessageSend, которое необходимо использовать в диалплане. Также используемые SIP телефоны или софтфоны должны поддерживать возможность приема/передачи текстовых сообщений.

Например, такими софтфонами являются MicroSIP, Linphone, PhonerLite и Zoiper (в бесплатной версии Zoiper только прием).

Использовавшееся в примере ПО: CentOS Linux release 7.6.1810 (Core), Asterisk 13.27.1, FreePBX 13.0.192.19.

Прежде всего, для разрешения приема/передачи сообщений в глобальные настройки sip (в веб интерфейсе FreePBX – Settings->SIP Settings) необходимо добавить соответствующие опции.

Добавление опций в Sip Settings

Также добавляем в диалплан контекст send-messages. Для отладки можно использовать приложение DumpChan выводящее в консоль доступные на текущем приоритете переменные и их значения:

nano /etc/asterisk/extensions_custom.conf
Добавление контекста в диалплан

После заходим в консоль Asterisk и применяем изменения

asterisk –rvvv

CLI>

dialaplan reload

После этого абоненты смогут обмениваться сообщениями. В Microsip для этого необходимо в поле ввода номера или на цифровой панели набрать экстеншен, которому нужно что-то отправить (в примере 100 отправляет 102-му) и нажать на иконку текстового диалога. У абонента 100 откроется окно переписки (с полем ввода внизу, отправка по нажатию Enter), если 102 онлайн, то, получив сообщение, sip клиент абонента 102 воспроизведет звуковое оповещение и откроет окно переписки

Передача сообщений в Microsip

Для обеспечения попыток повторной передачи сообщения в случае неудачи необходимо добавить в диалплан соответствующие строки:

Попытка повторной передачи в случае сбоя

Также, можно не использовать цикл While в диалплане, а в случае неуспешной отправки вызвать agi скрипт, в котором совершать повторные попытки. Для этого изменить /etc/asterisk/extensions_custom.conf (после изменения, также применить: asterisk –rx ‘dialplan reload’)

Вызов agi скрипта в случае сбоя (неуспешной отправки)

Создаем agi скрипт (например, на php)

touch /var/lib/asterisk/agi-bin/send-local-message.php

Даем права на выполнение, в скрипте прописываем логику:

chmod +x /var/lib/asterisk/agi-bin/send-local-message.php
nano /var/lib/asterisk/agi-bin/send-local-message.php
AGI скрипт повторной отправки

Также, можно создать меню, которое по выбору, какого-либо пункта отошлет сообщение с результатом выполнения скрипта или команды. Например, создадим меню, которое при выборе 1 пункта будет отсылать абоненту текстовое сообщение с результатом выполнения команды df –h. Для этого переходим в веб-интерфейс и создаем custom destination и новое меню:

Создание IVR

Создаем custom destination, указываем в нем контекст из файла /etc/asterisk/extensions_custom.conf (в примере — df-monitor), в котором будет описана логика выполнения необходимой команды.

Создание custom destination

Для того, чтобы попасть в созданную IVR можно у какого либо добавочного (например 120) изменить назначение по неответу

Optional destination

Внесем изменения в содержимое /etc/asterisk/extensions_custom.conf

Содержимое /etc/asterisk/extensions_custom.conf
Содержимое /var/lib/asterisk/agi-bin/send-local-message.php

После заходим в консоль Asterisk и применяем изменения

asterisk –rvvv

CLI>

dialaplan reload

После этого совершим вызов на 120 (например из Zoiper). После ответа системы – — нажать Keypad и донабрать “1”

Донабор в Zoiper

После этого для просмотра сообщения с результатом выполнения какой-либо системной команды (в примере df -h) в Zoiper перейти в Recent->Messages

Отображение приниятого сообщения в Zoiper (free)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.