В MikoPBX в разделе Маршрутизация → Нерабочее время настроены правила маршрутизации вызовов в нерабочее время. Данные правила распространяются на все вызовы, независимо от того на какой номер компании позвонил клиент. Необходимо для провайдера Zadarma настроить индивидуальное нерабочее время. Рабочее время для данного провайдера: с 9.00 до 18.00 по МСК.
Перейдите в раздел Модули → Приложения диалпланов. Создайте новое приложение (диалплан Asterisk) по инструкции. Параметры приложения принимают вид:
Программный код созданного приложения:
Команда ExecIfTime выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени. Если нам позвонят с 9:00 до 18:00 в любой будний день (с понедельника по пятницу), то мы перенаправляем вызов (команда Goto) на номер 2003. 2003 - это номер IVR-меню.
Иначе вызов направится сотруднику с внутренним номером 201.
Настраиваем правила входящей маршрутизации для созданного провайдера. Переходим в раздел Маршрутизация → Входящие маршруты. Направляем все входящие вызовы на созданное приложение.
Найдите и скопируйте ID-провайдера. Чтобы это сделать - перейдите в конфигурацию необходимого провайдера. В нашем примере - это SIP-1687941868
Перейдите в раздел Система -> Кастомизация системных файлов
Откройте для редактирования конфигурационный файл extensions.conf.
Установите режим «Добавлять в конец файла». В черное окно добавьте следующий фрагмент кода:
В выше приведенном фрагменте кода Вам необходимо составить правильное наименование контекста. Формат создаваемого контекста:
ID-ПРОВАЙДЕРА - значение, которое вы сохранили на втором шаге данной инструкции. В нашем примере это SIP-1687941868.
Рабочее время с 9.00 до 18.00, следовательно необходимо задать два интервала для нерабочего времени: 00:00-09:00 и 18:00-23:59.
Более подробно разберём команду ExecIfTime. Эта команда выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени. В нашем случае команда выполняет проигрывание звукового файла, расположенного в директории /offload/asterisk/sounds/other/out_work_times в MikoPBX. Синтаксис команды:
times - Диапазоны времени в 24-часовом формате
weekdays - Дни недели (mon, tue, wed, thu, fri, sat, sun)
mdays - Дни месяца (1-31)
months - Месяцы (jan, feb, mar, apr и т. д.)
appname[(appargs)] - команда Asterisk с указанием параметров вызова
В нашем примере указаны диапазон времени, диапазон дней недели. Вместо указания дней месяцев и месяцев введены *. Этот символ означает «для всех остальных случаев».