Asterisk может автоматически совершать звонок если в директорию (по умолчанию) /var/spool/asterisk/outgoing/ поместить .call файл. Если дата изменения файла больше текущей, то звонок будет совершен при наступлении или после этого времени.
Для автоматических вызовов должен быть загружен модуль pbx_spool.so, он должен быть прописан в modules.conf либо должен быть указан параметр autoload=yes.
Приведу пример содержимого файла:
Channel: SIP/goip4/10670000000 Application: Playback Data: file1 MaxRetries: 5 RetryTime: 60 WaitTime: 30
Кратко опишу что я в нем указывал:
Channel: SIP/goip4/10670000000 (канал для исходящего вызова, в моем случае будет использована первая SIM карта на goip4 шлюзе и будет набран номер 0670000000)
Application: Playback (приложение которое нужно выполнить при звонке, в моем случае Playback для того чтобы воспроизвести звуковой файл)
Data: file1 (данные для приложения, так как запускается Playback, то file1 является именем запускаемого файла, в моем случае я поместил файл сюда /usr/share/asterisk/sounds/ru_RU/file1.ulaw)
MaxRetries: 5 (количество попыток после которых вызов будет считаться не успешным, значение по умолчанию 0, отсчет начинается с 0 — это одна попытка вызова)
RetryTime: 60 (время в секундах между попытками вызова, по умолчанию 300 (5 минут))
WaitTime: 30 (время ожидания ответа на вызов в секундах, по умолчанию 45)
Также можно указать:
Context: NAME (имя контекста из extensions.conf)
Extension: NAME (имя екстеншена из extensions.conf)
Priority: (номер приоритета с которого начать выполнение)
Archive: Yes/No (Yes — значит переносить .call файл в директорию /var/spool/asterisk/outgoing_done/ после совершения вызова)
AlwaysDelete: Yes/No (не удалять файл если время модификации больше текущего)
Например можно перемещать готовый .call файл используя rsync при определенных событиях, после чего будет совершен звонок:
rsync -avh /scripts/zabbix/alert.d/zabbix.call /var/spool/asterisk/outgoing/zabbix.call
Смотрите также мои популярные записи на тему — Asterisk