MikoPBX
Модули
MikoPBX
Модули
Имеем две учетные записи от провайдера Zadarma, настроенных в MikoPBX по инструкции.
Необходимо для каждого номера Zadarma настроить свое нерабочее время. Например, для номера +7(495)-229-30-42 рабочее время с 9.00 до 18.00 по МСК; для номера +7 (499) 638-25-84 рабочее время с 8.00 до 20.00 по МСК.
1. Подключите провайдеров, зарегистрированных на одном хосте, как описано в инструкции
2. Перейдите в раздел Система → Кастомизация системных файлов.
3. Откройте для редактирования конфигурационный файл extensions.conf. Установите режим «Добавлять в конец файла».
4. В черное окно добавьте следующий фрагмент кода:
[public-direct-dial-custom] exten => _.!,1,NoOp(check time) same => n,Gosub(check-out-work-time-custom,${FROM_DID},1) same => n,return [check-out-work-time-custom] exten => 584611,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 exten => 420296,1,NoOp(check time) same => n,ExecIfTime(00:00-08:00,mon-fri,*,*?Macro(playback-exit,/offload/asterisk/sounds/other/out_work_times)) same => n,ExecIfTime(20:00-23:59,mon-fri,*,*?Macro(playback-exit,/offload/asterisk/sounds/other/out_work_times)) same => n,return
В выше приведенном фрагменте кода Вам необходимо указать логины от Ваших учетных записей провайдеров.
В нашем примере использовались следующие данные:
Ниже красным цветом выделены фрагменты, которые Вам необходимо изменить.
Более подробно разберём команду ExecIfTime. Эта команда выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени. В нашем случае команда выполняет проигрывание звукового файла, расположенного в директории /offload/asterisk/sounds/other/out_work_times в MikoPBX.
Синтаксис команды:
ExecIfTime(times,weekdays,mdays,months?appname[(appargs)])
В нашем примере указаны диапазон времени, диапазон дней недели. Вместо указания дней месяцев и месяцев введены *. Этот символ означает «для всех остальных случаев».
ExecIfTime(00:00-08:00,mon-fri,*,*?Macro(playback-exit,/offload/asterisk/sounds/other/out_work_times))