несколькими временными критериями, как показано в примере ниже (обратите внимание, что более конкретизированные временные диапазоны всегда должны быть указаны перед менее конкретными):
; Если это любой час любого дня недели, который ; является четвертым днем месяца июля, мы закрыты 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.
• Пересылка и широковещательные рассылки голосовой почты.
Нет, за это действительно не надо платить, и да, это действительно работает.
• Индикатор ожидающих сообщений (мигающий световой индикатор или прерывистый тональный сигнал) во многих типах телефонов.
• Каталог ящиков голосовой почты служащих компании.
И это только вершина айсберга! В данном разделе будут представлены основы типовой настройки голосовой почты.
Конфигурация голосовой почты описывается в конфигурационном файле voicemail.conf. Этот файл содержит набор настроек, которые могут использоваться для приведения системы голосовой почты в соответствие конкретным требованиям. Рассмотреть все доступные опции voicemail.conf в одной главе было бы просто невозможно, но образец конфигурационного файла хорошо задокументирован и прост для понимания. Пока что давайте посмотрим в конец файла, где описываются контексты и ящики голосовой почты.
Контексты диалплана просто разделяют разные части диалплана, контексты голосовой почты позволяют определять разные, изолированные друг от друга, наборы почтовых ящиков. Это обеспечивает возможность хранить голосовую почту нескольких разных компаний или офисов на одном сервере. Контексты голосовой почты определяются так же, как и контексты диалплана: с помощью имени контекста, заключенного в квадратные скобки. В примерах данной книги будет использоваться контекст голосовой почты [default].
Создание почтовых ящиков
Внутри каждого контекста голосовой почты определяются разные почтовые ящики. Для описания почтового ящика используется следующий синтаксис:
Поясним назначение каждой части описания почтового ящика:
Это номер почтового ящика. Обычно он соответствует добавочному номеру ассоциированного с ним телефонного аппарата.
Числовой пароль, который будет использоваться владельцем почтового ящика для доступа к своей голосовой почте. Если пользователь изменит свой пароль, система обновит это поле в файле voicemail.conf.
Это имя владельца почтового ящика. Текст данного поля используется в телефонном справочнике компании для обеспечения возможности абонентам при вызове применять имена пользователей.
Это адрес электронной почты владельца ящика голосовой почты. Asterisk может посылать уведомления о получении голосовой почты (включая само сообщение голосовой почты) на заданный ящик электронной почты.
Это электронный адрес пейджера или мобильного телефона владельца ящика голосовой почты. Asterisk может посылать короткое сообщение, уведомляющее о получении голосовой почты, на заданный адрес электронной почты.
Это список опций, определяющих часовой пояс, в котором находится владелец почтового ящика, и переопределяющих глобальные настройки голосовой почты. Существует девять допустимых опций: attach, serveremail, tz, saycid, review, operator, callback, dialout и exitcontext. Эти опции определяются парами
Вот типовое описание почтового ящика:
101 => 1234,Joe Public,[email protected],[email protected], tz=central|attach=yes
Продолжая создание нашего диалплана из последней главы, зададим ящики голосовой почты для Джона и Джейн. Для Джона определим пароль 1234, а для Джейн - 4444 (помните, это делается в файле voicemail. conf, а не в extensions.conf):
[default]
• => 1234,John Doe,[email protected],[email protected]
• => 4444,Jane Doe,[email protected],[email protected]
Добавление голосовой почты в диалплан
Теперь, когда созданы почтовые ящики для Джейн и Джона, давайте обеспечим возможность абонентам оставлять сообщения для них в случае, если они не отвечают на звонок. Для этого воспользуемся приложением VoiceMail().
Приложение VoiceMail() направляет вызывающего абонента на заданный почтовый ящик, чтобы он мог оставить сообщение. Почтовый ящик должен быть описан так:
exten => 101,1,Dial(${JOHN})
Теперь давайте добавим сообщение о недоступности, которое услышит вызывающий абонент, если