Использование Call-файлов в Asterisk
Call-файлы — это удобный инструмент, позволяющий связывать Asterisk и любые внешние приложения. Связь обеспечивается посредством обмена данными через текстовые файлы, называемые Call-Файлами. Такую связь часто делают для совместной работы CRM-системы, систем автообзвона и автооповещения, а также программы на любых языках программирования, и, разумеется, BASH. Call-файлы имеют определенную структуру, которую понимает Asterisk. Получая такой файл, Asterisk ищет в нем необходимые для себя инструкции и переменные, после чего обрабатывает и выполняет его.
Как Asterisk получает Call-файл?
Для работы Call-файлов используется директория/var/spool/asterisk/outgoing/
Как только в этой директории появляется Call-файл, он тут же поступает на обработку Asterisk-ом.
Структура Call-файла (на англ.яз.):
Specify where and how to callChannel: <channel>: Channel to use for the call.CallerID: «name» <number> Caller ID, Please note: It may not work if you do not respect the format: CallerID: «Some Name» <1234>MaxRetries: <number> Number of retries before failing (not including the initial attempt, e.g. 0 = total of 1 attempt to make the call). Default is 0.RetryTime: <number> Seconds between retries, Don’t hammer an unavailable phone. Default is 300 (5 min).WaitTime: <number> Seconds to wait for an answer. Default is 45.Account: Set the account code to use.
If the callanswers, connect it here:Context: <context-name> Context in extensions.confExtension: <ext> Extension definition in extensions.confPriority: <priority> Priority of extension to start withSet: Set a variable for use in the extension logic (example: file1=/tmp/to) ; in Asterisk 1.0.x use ‘SetVar’ instead of ‘Set’Application: Asterisk Application to run (use instead of specifiying context, extension and priority)Data: The options to be passed to application
New (?) in Asterisk 1.4Set: Can now also write to dialplan functions like CDR ()AlwaysDelete: Yes/No — If the file’s modification time is in the future, the call file will not be deletedArchive: Yes/No — Move to subdir «outgoing_done» with «Status: value», where value can be Completed, Expired or Failed.
Пример Call-файла.
Данный Call-файл принимает переменную $temp и вызывает контекст from-hdd, где эта переменная задается в качестве экстеншена.
CallerID: »HDD» <$temp>
MaxRetries: 1
RetryTime: 15
WaitTime: 15
Context: from-hdd
Extension: $temp
Priority: 1
Пример контекста, предназначенного для работы с Call-файлом.
Для того чтобы Call-файл отработал в системе, требуется правильным образом описанный контекст from-hdd. Суть его такова:
Дозвониться на номер 751Воспроизвести сообщение «Температура жесткого диска составляет»Воспроизвести число, хранящееся в переменной, например «сорок восемь»Воспроизвести сообщение «Градусов».Корректно завершить разговор.
[from-hdd] exten ≥_.,1,Wait (1) same≥n,Dial (SIP/751) same≥n,PlayBack (hello-world) same≥n,Wait (0.5) same≥n,SayDigits (${EXTEN}) same≥n,PlayBack (vm-goodbye) same≥n,Hangup ()
Данный пример показывает, каким образом можно настроить Asterisk и внешние приложения для оповещения о температуре жесткого диска сервера. Мы его используем для связи bash+cron с Asterisk.
Пример скрипта для создания Call-файла.
Вот сам скрипт на bash, который обеспечивает его работу:
#!/bin/bash temp=' (smartctl --all /dev/sda | grep Temperature_Cels | awk '{print $10}')' #echo $temp /bin/echo «CallerID: »HDD» <$temp> MaxRetries: 1 RetryTime: 15 WaitTime: 15 Context: from-hdd Extension: $temp Priority: 1 » > /tmp/test.call chown asterisk:asterisk /tmp/test.call cat /tmp/test.call #sleep 10 mv /tmp/test.call /var/spool/asterisk/outgoing/
Успешного использования Asterisk!
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.