Приходилось ли вам сталкиваться с задачами, которые не представляется возможным решить встроенными средствами 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
- Description - Простое описание, вновь создаваемого, назначения
- Notes - Здесь можно дать более развернутое описание, для чего и при каких условиях используется данное назначение
- Return - Возвращать ли звонок в родительский контекст, другими словами «обратно». Если выбрано Yes, то открывается список доступных направлений. Если No - звонок завершается
Важно: при указании опции Return удостоверьтесь, что ваш «кастомный» контекст заканчивается командой Return
ПРИМЕР НАСТРОЙКИ CUSTOM DESTINATIONS
Для примера было создано следующая запись
Здесь будет использоваться контекст test_context и после того, как все действия контекста будут завершены, модуль отправит звонок на IVR.
Теперь можно использовать созданное нами назначение в других модулях, например Announcement
Не забываем нажимать Submit и Apply Config