====== Настройка индивидуального нерабочего времени для учетной записи провайдера ======
[[faq:|Обратно к инструкциям]]
====== Постановка задачи ======
В MikoPBX в разделе **Маршрутизация** -> **Нерабочее время** настроены правила маршрутизации вызовов в нерабочее время. Данные правила распространяются на все вызовы, независимо от того на какой номер компании позвонил клиент.
Необходимо для провайдера Zadarma настроить индивидуальное нерабочее время. Рабочее время для данного провайдера: с 9.00 до 18.00 по МСК.
====== Решение ======
===== Способ 1 =====
1. Подключите провайдера в MikoPBX согласно [[:providers|инструкции]].\\ \\
2. Перейдите в раздел **Модули** -> **Приложения диалпланов**. Создайте новое приложение (диалплан Asterisk) по [[:dialplan-applications|инструкции]]. Параметры приложения принимают вид:\\
{{ :providers:2019-02-22_152023.png |}}\\
{{ :providers:2019-02-22_152039.png |}}\\
Программный код созданного приложения:\\
1,ExecIfTime(09:00-18:00,mon-fri,*,*?Goto(internal,2003,1))
n,Goto(internal,201,1)
Команда **ExecIfTime** выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени. Если нам позвонят с 9:00 до 18:00 в любой будний день (с понедельника по пятницу), то мы перенаправляем вызов ([[http://asterisk.ru/knowledgebase/Asterisk+cmd+goto|команда Goto]]) на номер 2003. **2003** - это номер IVR-меню.\\
{{ :providers:2019-02-22_152131.png |}}\\
Иначе вызов направится сотруднику с внутренним номером 201.\\
{{ :providers:2019-02-22_152148.png |}}\\
3. Настраиваем правила входящей маршрутизации для созданного провайдера. Переходим в раздел **Маршрутизация** -> **Входящие маршруты**. Направляем все входящие вызовы на созданное приложение.\\
{{ :providers:2019-02-22_152227.png |}}
===== Способ 2 =====
1. Подключите провайдера в MikoPBX согласно [[:providers|инструкции]].\\ \\
2. Скопируйте в адресной строке ID провайдера, в нашем примере это **SIP-PROVIDER-B63EE3497989BF6597FF8C9DEC77EB49**\\ {{ :providers:2019-02-05_105038.png |}}\\ \\
3. Перейдите в раздел **Система** -> **Кастомизация системных файлов**.\\ {{ :providers:many_hosts:2019-02-04_173507.png |}}\\ \\
3. Откройте для редактирования конфигурационный файл **extensions.conf**. Установите режим "**Добавлять в конец файла**".\\ \\
4. В черное окно добавьте следующий фрагмент кода:\\
[SIP-PROVIDER-B63EE3497989BF6597FF8C9DEC77EB49-incoming-custom]
exten => _.!,1,NoOp(check time)
same => n,ExecIfTime(00:00-09:00,mon-fri,*,*?Macro(playback-exit,/offload/asterisk/sounds/other/out_work_times))
same => n,ExecIfTime(18:00-23:59,mon-fri,*,*?Macro(playback-exit,/offload/asterisk/sounds/other/out_work_times))
same => n,return
В выше приведенном фрагменте кода Вам необходимо составить правильное наименование контекста.\\
Формат создаваемого контекста:\\
[ID-ПРОВАЙДЕРА-incoming-custom]
* **ID-ПРОВАЙДЕРА** - значение, которое вы сохранили на втором шаге данной инструкции. В нашем примере это **SIP-PROVIDER-B63EE3497989BF6597FF8C9DEC77EB49**.
Рабочее время с 9.00 до 18.00. Следовательно необходимо задать два интервала для нерабочего времени: 00:00-09:00 и 18:00-23:59.\\ \\
Ниже красным цветом выделен фрагмент, который Вам необходимо изменить.\\
{{ :providers:2019-02-05_122005.png |}}\\
Более подробно разберём команду **ExecIfTime**. Эта команда выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени. В нашем случае команда выполняет проигрывание звукового файла, расположенного в директории **/offload/asterisk/sounds/other/out_work_times** в MikoPBX.\\
Синтаксис команды:
ExecIfTime(times,weekdays,mdays,months?appname[(appargs)])
* **times ** - Диапазоны времени в 24-часовом формате
* **weekdays** - Дни недели (mon, tue, wed, thu, fri, sat, sun)
* **mdays** - Дни месяца (1-31)
* **months** - Месяцы (jan, feb, mar, apr и т. д.)
* **appname[(appargs)]** - команда Asterisk с указанием параметров вызова
В нашем примере указаны диапазон времени, диапазон дней недели. Вместо указания дней месяцев и месяцев введены *. Этот символ означает "для всех остальных случаев".
ExecIfTime(00:00-08:00,mon-fri,*,*?Macro(playback-exit,/offload/asterisk/sounds/other/out_work_times))