Приходилось ли вам сталкиваться с задачами, которые не представляется возможным решить встроенными средствами FreePBX? Например, это может быть необходимость подключить TTS, настроить «кастомную» обработку вызова при звонке на конкретный внутренний номер и прочие задачи. Поискав в интернет, вы, возможно, уже находили готовые контексты обработки вызовов для решения ваших задач, а, возможно, вы самостоятельно создавали их с нуля. Так или иначе, появляется вопрос: как подключить собственный контексты, написанные в файле /etc/asterisk/extensions_custom.conf
в FreePBX? Об это и поговорим.
В нашем случае на помощь приходит модуль Custom Destinations. Назначения, созданные с помощью данного модуля, будут использовать специальные контексты, которые были созданы вручную и которые хранятся в конфигурационном файле /var/asterisk/extensions_custom.conf
, а также эти назначения будут отображаться во всех других модулях, которые, так или иначе, участвуют в маршрутизации звонка, таких как: IVR, Queues, Announcement и прочие.
Настройка модуля
Перейдём к настройке. Чтобы попасть в модуль, с главной страницы переходим по следующему пути Admin –> Custom Destinations. Перед нами открывается следующее окно.
Обратите внимание на предупреждение, оно сообщает нам, что для работы с модулем нам необходимо быть опытными и знающими пользователями :) Чтобы создать новое назначение, нажмите на кнопку Add Destination, откроется следующее окно
Для каждого нового назначения необходимо указать следующие параметры:
- Target - Здесь необходимо указать ранее созданный контекст, на который нужно отправить абонента в формате [context],[exten],[priority]. Допустим, мы написали следующий контекст:
[test_context] exten => s,1,Answer() exten => s,2,Playback(greetings) exten => s,3,Voicemail(100) exten => s,4,Hangup()
Набор действий, которые будет выполнять система по данному контексту следующий:
- Отвечаем на звонок
- Озвучиваем файл greetings
- Отправляем на голосовую почту
- Завершаем вызов
Таким образом, в поле Target можно записать следующее: test_context,s,1
Пример настройки Custom Destinations
Для примера было создано следующая запись
Здесь будет использоваться контекст test_context и после того, как все действия контекста будут завершены, модуль отправит звонок на IVR.
Теперь можно использовать созданное нами назначение в других модулях, например Announcement
Не забываем нажимать Submit и Apply Config