Инструменты пользователя

Инструменты сайта


providers:many_hosts:non-work

Это старая версия документа!


Настройка индивидуального нерабочего времени для нескольких провайдеров, зарегистрированных на одном хосте

Обратно к инструкциям

Перед ознакомлением с данной инструкцией, необходимо выполнить настройку, описанную здесь.

Постановка задачи

Имеем две учетные записи от провайдера Zadarma, настроенных в Askozia 6 по инструкции.

Необходимо для каждого номера Zadarma настроить свое нерабочее время. Например, для номера +7(495)-229-30-42 рабочее время с 9.00 до 18.00 по МСК; для номера +7 (499) 638-25-84 рабочее время с 8.00 до 20.00 по МСК.

Используйте версию Askozia 6.5.9.46+

Решение

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

В выше приведенном фрагменте кода Вам необходимо указать логины от Ваших учетных записей провайдеров.
В нашем примере использовались следующие данные:

  • 584611 - логин от учетной записи провайдера для номера телефона +7(495)-229-30-42.

    Рабочее время с 9.00 до 18.00. Следовательно необходимо задать два интервала для нерабочего времени: 00:00-09:00 и 18:00-23:59.
  • 420296 - логин от учетной записи провайдера для номера телефона +7 (499) 638-25-84.

    Рабочее время с 8.00 до 20.00. Следовательно необходимо задать два интервала для нерабочего времени: 00:00-08:00 и 20:00-23:59.

Ниже красным цветом выделены фрагменты, которые Вам необходимо изменить.

Более подробно разберём команду ExecIfTime. Эта команда выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени. В нашем случае команда выполняет проигрывание звукового файла, расположенного в директории /offload/asterisk/sounds/other/out_work_times в Askozia.
Синтаксис команды:

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))
providers/many_hosts/non-work.1549292622.txt.gz · Последние изменения: 2019/06/11 13:06 (внешнее изменение)