Для решения данной ситуации мы решили написать маленькое приложение на 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())
|