Читаем Asterisk™: будущее телефонии Второе издание полностью

Одним словом, GotoIfTime передает вызов в заданную метку label, если текущие дата и время соответствуют критерию, заданному параметрами times (время), days_of_week (дни недели), days_of_month (дни месяца) и months (месяцы). Рассмотрим каждый аргумент более подробно:

times

Это список из одного или более временных диапазонов, записанных в 24-часовом формате. Например, период с 9:00 утра до 5:00 вечера

будет задан так: 09:00-17:00. День начинается с 0:00 и заканчивается в 23:59.

Следует отметить, что times прекрасно выполняет циклические переходы. Поэтому, если требуется задать период, когда офис закрыт, в параметре times можно указать 18:00-9:00 - и все будет работать, как ожидается. Обратите внимание, что данная техника применима и для других компонентов GotoIfTime. Например, описать выходные дни можно, задав sat-sun (суббота- воскресенье).

days_of_week

Это список из одного или более дней недели. Дни должны быть заданы как mon, tue, wed, thu, fri, sat и/или sun. Период с понедельника по пятницу можно задать как mon-fri. Вторник и четверг были бы представлены как tue&thu.

Обратите внимание, что можно задавать сочетание диапазонов и отдельных дней, например sun-mon&wed&fri-sat или проще,

wed&fri-mon.

days_of_month

Это список дней месяца. Дни задаются числами от 1 до 31. Период с 7-го до 12-го числа будет представлен как 7-12, а 15-е и 30-е числа месяца будут записаны как 15&30.

months

Это список из одного или более месяцев года. Диапазон месяцев должен быть записан как jan-apr, а если требуется указать месяцы, идущие не по порядку, они записываются через амперсанд, например jan&mar&jun. Также можно комбинировать диапазоны и отдельные месяцы: jan-apr&jun&oct-dec. Если необходимо выбрать все возможные значения для любого из этих аргументов, просто задайте * для него.

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

• Метка приоритета в рамках того же добавочного номера, например

time_has_passed (время прошло).

• Добавочный номер и приоритет в рамках того же контекста, например 123,time_has_passed.

• Контекст, добавочный номер и приоритет, например incoming,123, time_has_passed.

Теперь, после того как мы ознакомились с синтаксисом, рассмотрим несколько примеров. Следующий пример соответствует промежутку времени с 9:00 утра до 5:59 вечера, с понедельника по пятницу, любого дня месяца, в любой месяц года:

exten => s,1,GotoIfTime(09:00-17:59,mon-fri,*,*?open,s,1)

Если абонент звонит в данные часы, вызов будет направлен в первый приоритет добавочного номера s контекста open. Если вызов поступает в другое время, вне заданного промежутка, он будет направлен в следующий приоритет текущего добавочного номера. Это позволяет выполнять переходы по условию с несколькими временными критериями, как показано в примере ниже (обратите внимание, что более конкретизированные временные диапазоны всегда должны быть указаны перед менее конкретными):

; Если это любой час любого дня недели, который ; является четвертым днем месяца июля, мы закрыты exten => s,1,GotoIfTime(*,*,4,jul?open,s,1)

; В рабочие часы вызовы направляются в контекст open exten => s,n,GotoIfTime(09:00-17:59|mon-fri|*|*?open,s,1) exten => s,n,GotoIfTime(09:00-11:59|sat|*|*?open,s,1)

; В противном случае мы закрыты exten => s,n,Goto(closed,s,1)

Возможна ситуация, когда для интервала задано конечное время 17:58, а текущее время - 17:59, но диалплан не меняет своего поведения. Для такого случая следует заметить, что степень дискретизации приложения GotoIfTime равна двум минутам. Поэтому, если в качестве времени завершения периода задано 18:00, система изменит свое поведение только в 18:01:59.

Голосовая почта

Одной из самых популярных (или, возможно, непопулярных) функций любой современной системы телефонной связи является голосовая

почта. Естественно, Asterisk обладает достаточно гибкой системой голосовой почты. Среди ее возможностей можно упомянуть:

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

• Различные приветствия для состояний «занято» и «недоступен».

• Стандартные и специальные приветствия.

• Возможность связывать телефоны с несколькими почтовыми ящиками, а почтовые ящики - с несколькими телефонами.

• Уведомление о поступлении сообщения голосовой почты по электронной почте с возможностью прикрепления сообщения голосовой почты в виде звукового файла1.

• Пересылка и широковещательные рассылки голосовой почты.

Нет, за это действительно не надо платить, и да, это действительно работает.

• Индикатор ожидающих сообщений (мигающий световой индикатор или прерывистый тональный сигнал) во многих типах телефонов.

• Каталог ящиков голосовой почты служащих компании.

И это только вершина айсберга! В данном разделе будут представлены основы типовой настройки голосовой почты.

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT