GotoIfTime() - Выполняет переход по условию на основании времени и дня.
GotoIfTime(время,дни_недели,дни_месяца,месяцы?метка)
Выполняет переход в очередь или номер, если время соответствует заданному в условии.
Каждый элемент может быть определен или как * (для всех случаев), или как диапазон.
Аргументы приложения:
время - Диапазоны времени в 24-часовом формате.
дни_недели - Дни недели (mon, tue, wed, thu, fri, sat, sun).
дни_месяца - Дни месяца (1-31).
месяцы - Месяцы (jan, feb, mar, apr и т. д.).
Пример:
;начало переадресации звонков
;2 марта с 17:30 до 21:00 из очереди на очереди 2 в очередь 1
; same => n,GotoIfTime(17:30-21:00|*|2|mar?ochered1,s,1)
;21 октября из очереди 1 в очередь 2
; same => n,GotoIfTime(*|*|21|oct?ochered2,s,1)
;24 ноября из очереди 1 в очередь 2
;same => n,GotoIfTime(*|*|24|nov?ochered2,s,1)
;переключение по дням недели каждый вторник, среда, четверг.
same => n,GotoIfTime(*|wed&thu&fri|*|*?ochered1,s,1)
;окончание переадресации звонков
На основе: http://www.zarubochki.ru/asterisk_GotoIfTime
Update:2018/12/12
Как определяется время?
Синтаксис показан в примере настроек extensions.conf и выглядит так:<time range>|<days of week>|<days of month>|<months>
где:
Время = <time range>= <hour>’:'<minute>’-‘<hour>’:'<minute>
| “*”
День недели = <days of week> = <dayname>
| <dayname>’-‘<dayname>
| “*”
Наименование дней недели = <dayname> = “sun” | “mon” | “tue” | “wed” | “thu” | “fri” | “sat”
День месяца<days of month> = <daynum>
| <daynum>’-‘<daynum>
| “*”
Число = <daynum> = a number, 1 to 31, inclusive
Часы = <hour> = a number, 0 to 23, inclusive
Минуты = <minute> = a number, 0 to 59, inclusive
Месяц = <months> = <monthname>
| <monthname>’-‘<monthname>
| “*”
Наименования месяцев = <monthname> = “jan” | “feb” | “mar” | “apr” | “may” | “jun” | “jul” | “aug” | “sep” | “oct” | “nov” | “dec”
Наименования дней недели <daynames> и месяцев <monthnames> не чувствительны к регистру. дополнение от: