Crmgo Blog

Asterisk GotoIfTime()

Asterisk GotoIfTime()

Opis: GotoIfTime(<times>|<weekdays>|<mdays>|<months>?[context|]extension|]pri) Jeśli bieżący czas pokrywa się z podanym przedziałem czasowym, następuje przejście do określonego numeru wewnętrznego. Każdy element określający czas może być ustawiony jako symbol '*' (zawsze pasuje) lub jako przedział. Jeśli bieżący czas nie pokrywa się z podanym…

Asterisk GotoIfTime()

Opis:

GotoIfTime(<times>|<weekdays>|<mdays>|<months>?[context|]extension|]pri)

Jeśli bieżący czas pokrywa się z zadanym przedziałem czasowym, następuje przejście do określonego numeru wewnętrznego (ekstenji). Każdy element określający czas może być ustawiony jako symbol '*' (zawsze pasuje) lub jako przedział. Jeśli bieżący czas nie pokrywa się z zadanym przedziałem czasowym, zostanie wykonana komenda o następnym priorytecie.

Jak określić czas

Rozważmy przykład opisany w pliku extensions.conf:

<time range>|<days of week>|<days of month>|<months>

Jeśli zastąpisz dowolną opcję symbolem '*', zostanie ona zignorowana podczas porównywania.
Na przykład:

exten => 3000,1,GotoIfTime(9:00-17:00|mon-fri|*|*?open,s,1)

Nastąpi przejście do kontekstu „open”, na numer wewnętrzny s, do komendy o priorytecie 1, jeśli bieżący czas mieści się w przedziale między 9:00 a 17:00, od poniedziałku do piątku, a miesiąc i dzień miesiąca nie są sprawdzane.

Kolejny przykład:
exten => s,6,GotoIfTime(*|*|1-3|May?attendant,s,30)

Nastąpi przejście do kontekstu „attendant”, na numer wewnętrzny s, do komendy o priorytecie 30, o dowolnej porze dnia w dniach od 1 do 3 maja. (Na przykład, gdy biuro jest zamknięte na święta majowe.)

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.