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

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


providers:many_hosts:non-work

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

providers:many_hosts:non-work [2019/02/04 15:00]
Портнова Татьяна
providers:many_hosts:non-work [2020/04/05 14:54]
Строка 1: Строка 1:
-====== Настройка индивидуального нерабочего времени для нескольких провайдеров,​ зарегистрированных на одном хосте ====== 
- 
-[[faq:​|Обратно к инструкциям]] 
- 
-<note tip>​Перед ознакомлением с данной инструкцией,​ необходимо выполнить настройку,​ описанную [[providers:​many_hosts|здесь]].</​note>​ 
- 
-====== Постановка задачи ====== 
-Имеем две учетные записи от провайдера Zadarma, настроенных в Askozia 6 по [[providers:​many_hosts|инструкции]]. \\  
-{{ :​providers:​many_hosts:​2019-02-04_174426.png |}}\\  
-Необходимо для каждого номера Zadarma настроить свое нерабочее время. Например,​ для номера +7(495)-229-30-42 рабочее время с 9.00 до 18.00 по МСК; для номера +7 (499) 638-25-84 ​ рабочее время с 8.00 до 20.00 по МСК. ​ 
- 
-<note important>​Используйте версию **Askozia 6.5.9.46+**</​note>​ 
- 
-====== Решение ====== 
- 
-1. Подключите провайдеров,​ зарегистрированных на одном хосте, как описано в [[providers:​many_hosts|инструкции]]\\ \\  
-2. Перейдите в раздел **Система** -> **Кастомизация системных файлов**.\\ {{ :​providers:​many_hosts:​2019-02-04_173507.png |}}\\ \\  
-3. Откройте для редактирования конфигурационный файл **extensions.conf**. Установите режим "​**Добавлять в конец файла**"​.\\ \\  
-4. В черное окно добавьте следующий фрагмент кода:​\\ ​ 
-<​code>​ 
-[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 
-</​code>​ 
- 
-В выше приведенном фрагменте кода Вам необходимо указать логины от Ваших учетных записей провайдеров.\\ ​ 
-В нашем примере использовались следующие данные:​ 
-  * **584611** - логин от учетной записи провайдера для номера телефона +7(495)-229-30-42.\\ {{ :​providers:​many_hosts:​2019-02-04_174343.png |}} \\ Рабочее время с 9.00 до 18.00. Следовательно необходимо задать два интервала для нерабочего времени:​ 00:00-09:00 и 18:​00-23:​59. 
-  * **420296** - логин от учетной записи провайдера для номера телефона +7 (499) 638-25-84. \\ {{ :​providers:​many_hosts:​2019-02-04_174408.png |}}\\ Рабочее время с 8.00 до 20.00. Следовательно необходимо задать два интервала для нерабочего времени:​ 00:00-08:00 и 20:​00-23:​59. 
- 
-{{ :​providers:​many_hosts:​2019-02-04_174643.png |}}\\  
- 
-Более подробно разберём команду **ExecIfTime**. Эта команда выполняет указанное приложение Asterisk, если текущее время соответствует заданной спецификации времени. В нашем случае команда выполняет проигрывание звукового файла, расположенного в директории **/​offload/​asterisk/​sounds/​other/​out_work_times** в Askozia.\\ ​ 
-Синтаксис команды:​ 
-<​code>​ 
-ExecIfTime(times,​weekdays,​mdays,​months?​appname[(appargs)]) 
-</​code> ​ 
-  * **times ​  ** - Диапазоны времени в 24-часовом формате 
-  * **weekdays** - Дни недели (mon, tue, wed, thu, fri, sat, sun) 
-  * **mdays** ​   - Дни месяца (1-31) 
-  * **months** ​  - Месяцы (jan, feb, mar, apr и т. д.) 
-  * **appname[(appargs)]** - команда Asterisk с указанием параметров вызова 
- 
-В нашем примере указаны диапазон времени,​ диапазон дней недели. Вместо указания дней месяцев и месяцев введены *. Этот символ означает "​для всех остальных случаев"​. ​ 
-<​code>​ 
-ExecIfTime(00:​00-08:​00,​mon-fri,​*,​*?​Macro(playback-exit,/​offload/​asterisk/​sounds/​other/​out_work_times)) 
-</​code>​ 
- 
- 
  
providers/many_hosts/non-work.txt · Последние изменения: 2020/04/05 14:54 (внешнее изменение)