Иногда нужно совершить автоматический звонок прямо с АТС Asterisk. Если случилось что-то очень важное в составе системы мониторинга. Или в составе системы умного дома. Я, например, использую эту возможность для сохранения редко используемых SIM карт, — периодически совершаю с них звонки в автоматическом режиме. Звоню на свой же телефон и слушаю, что мне хочет сообщить робот. У него фантазии нет, поэтому каждый раз торжественно проговаривает поздравления с установкой и настройкой. 😀
Вызов на телефон самый эффективный способ оповестить вас о чем-то действительно важном. Тем более, благодаря услуге Мультифон и бесплатной АТС сделать это как никогда просто.
Порывшись в интернете, нашел наиболее простой способ решения задачи. Проинициализировать вызов с помощью файла (Call file) определенного синтаксиса. Да, вот так просто, друзья!
Как это работает:
- Помещаем колл файл в директорию /var/spool/asterisk/outgoing/ или в другую, которая сконфигурирована в asterisk.conf.
- Если у вас отключена автозагрузка (autoload=no) в настройках modules.conf, убедитесь, что модуль pbx_spool.so загружен, иначе способ с файлами вызова работать не будет.
- Если время модификации call file установлено в будущем, астериск дождется его наступления, и выполнит вызов.
- Иначе, Астериск обнаружит и немедленно выполнит вызов с теми параметрами, которые указаны. Такие вызовы могут содержать привязку к dial plan’у или являться самостоятельными.
- После совершения звонка, Астериск удалит call file из указанной папки (outgoing).
Список параметров установки вызова:
- Channel: <Канал/транк для вызова.>
- CallerID: “имя” <номер> от кого будет вызов. Не сработает, если не соблюдать синтаксис.
- MaxRetries: <число> — количество попыток, не считая первой. То есть 0 = одна попытка, что соответствует значению по умолчанию. Соответственно 1 = две попытки и т.д.
- RetryTime: <число> -количество секунд между попытками. По умолчанию 5 минут (300 секунд)
- WaitTime: <число> — сколько секунд ожидать ответа. Если не указывается, то 45.
- Account: какая учетная запись будет использоваться
Что делать в случае ответа на вызов, соединить с:
- Context: <контекст> — определяется в extensions.conf
- Extension:
— с каким «номером» соединить - Priority: <приоритет> — с какого приоритета (грубо строки) начинать.
- Set: установить переменную в определенное значение, которая используется в логике вызова. Например file1=/path
- Application: вызвать команду астериска, вместо того чтобы соединять с абонентом.
- Data: различные параметры, которые передаются вместе с командой.
Пример звонка через Мегафон и проигрывание демонстрационного приветствия:
Channel: SIP/megafon-spb/7921******3
Application: Playback
Data: demo-congrats
Соответственно, можем записать свои аудиофайлы и проигрывать их в соответствии с ситуацией. Как их создать с правильными параметрами, может быть, расскажу в другой раз. Или сами найдите в интернете, там ничего сложного нет, просто дело хлопотное.
Небольшой совет. Если звонок планируется совершать периодически с определенным равным интервалом на один и тот же номер, можно создать шаблон. Потом просто копировать его в папку исходящих вызовов через cron, например таким правилом:
0 21 1 * * /bin/cp /home/account/Asterisk/keepalive.call /var/spool/asterisk/outgoing
Совершать звонок каждый месяц первого числа в 21 час ровно.
root4root aka admin
Добавить комментарий
X