Использование различных контекстов в зависимости от времени суток.


План набора сервера Asterisk: extensions.conf, позволяет Вам включать в план набора контексты, в зависимости от времени и/или даты.


Синтаксис:


include => context||||

Пример:

; Для начала, обозначим праздничные дни
include => holiday|*|*|1-7|jan
include => holiday|*|*|23|feb
include => holiday|*|*|8|mar
include => holiday|*|*|1|may
include => holiday|*|*|9|may
include => holiday|*|*|5|nov
include => holiday|17:00-23:59|*|31|dec

; Включаем контексты, для рабочего времени
include => day|09:00-19:59|mon-fri|*|*

; Если, не рабочее время - то ночной режим.
include => night|20:00-8:59|mon-fri|*|*
include => night|*|sat-sun|*|*

Пример от Troy Settle, адаптирован мной


exclaimОбратите внимание!, что в контекст включается содержимое указанного контекста.

Если Вы, вместо:
include => night|20:00-8:59|mon-fri|*|*
include => night|*|sat-sun|*|*

Укажите:

include => night


То можно столкнуться с проблемой, суть которой состоит в том, что дневной "day" контекст может продолжить выполнять команды из "ночного" контекста (если совпадают номера екстеншенов), например, если контексты имеют следующие содержимое:

[day]
.....
exten => s,8,Background(to-hear-menu-again)

и

[night]
....
exten => s,9,Background()

Тогда, после выполнения команды первого контекста: Background(to-hear-menu-again), будет выполнена команда: Background(), которая была включена из контекста "night".


Ссылки по теме: