Для решения данной ситуации мы решили написать маленькое приложение на Asterisk. [spoiler] Диалплан приложений Asterisk используют свои собственные внутренние номера, иными словами, при наборе определенного внутреннего номера выполняется код приложения. Для создания приложения в Askozia необходимо перейти в меню План набора-Приложения-Простой скрипт. Простой скрипт функции DND представлен на рисунке ниже:
Для завершения настройки не забудьте нажать Сохранить
Далее необходимо указать в настройках вашего провайдера следующее(меню Учетные записи - Провайдеры, выберите своего провайдера и нажмите кнопку редактирования ).
Находим в настройках провайдера закладку Дополнительно и в поле Manual Dialplan Incoming вводим следующее:
Для завершения настройки не забудьте нажать Сохранить
Теперь функция DND доступна при наборе внутреннего номера 0000363.
Для вашего удобства код приложения выкладываем ниже:
1,GotoIf($["${EXTEN}" = "h"]?end) n,NoOp(${DB(DND/${CALLERID(num)})}) n,GotoIf($[ "${DB(DND/${CALLERID(num)})}" = "1" ]?deactivatednd:activatednd) n(activatednd),Set(DB(DND/${CALLERID(num)})=1) n,Playback(activated) n,Hangup() n(deactivatednd),Set(DB(DND/${CALLERID(num)})=0) n,Playback(de-activated) n,Hangup() n(end),NoOp(DND changed) |
Код для редактирования настроек вашего провайдера:
ExecIf($[ "${DB(DND/${INCOMINGCALLEDEXTENSION)}" = "1" ]?Busy(3)) ExecIf($[ "${DB(DND/${INCOMINGCALLEDEXTENSION)})}" = "1" ]?Hangup()) |