почтовыйящик. => пароль,имя[,email[,email_пейджера[,опции]]]

Поясним назначение каждой части описания почтового ящика:

почтовыйящик

Это номер почтового ящика. Обычно он соответствует добавочному номеру ассоциированного с ним телефонного аппарата.

пароль

Числовой пароль, который будет использоваться владельцем почтового ящика для доступа к своей голосовой почте. Если пользователь изменит свой пароль, система обновит это поле в файле voicemail.conf.

имя

Это имя владельца почтового ящика. Текст данного поля используется в телефонном справочнике компании для обеспечения возможности абонентам при вызове применять имена пользователей.

email

Это адрес электронной почты владельца ящика голосовой почты. Asterisk может посылать уведомления о получении голосовой почты (включая само сообщение голосовой почты) на заданный ящик электронной почты.

emall_пейджера

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

опции

Это список опций, определяющих часовой пояс, в котором находится владелец почтового ящика, и переопределяющих глобальные настройки голосовой почты. Существует девять допустимых опций: attach, serveremail, tz, saycid, review, operator, callback, dialout и exitcontext. Эти опции определяются парами опция=значение, разделяемыми символами вертикальной черты (| ). Опция tz задает часовой пояс пользователя соответственно часовому поясу, определенному ранее в разделе [zonemessages] файла voicemail.conf. Остальные восемь опций переопределяют соответствующие их именам глобальные настройки голосовой почты.

Вот типовое описание почтового ящика:

101 => 1234,Joe Public,jpublic@somedomain.com,jpublic@pagergateway.net, tz=central|attach=yes

Продолжая создание нашего диалплана из последней главы, зададим ящики голосовой почты для Джона и Джейн. Для Джона определим пароль 1234, а для Джейн - 4444 (помните, это делается в файле voicemail. conf, а не в extensions.conf):

[default]

• => 1234,John Doe,john@asteriskdocs.org,jdoe@pagergateway.tld

• => 4444,Jane Doe,jane@asteriskdocs.org,jane@pagergateway.tld

Добавление голосовой почты в диалплан

Теперь, когда созданы почтовые ящики для Джейн и Джона, давайте обеспечим возможность абонентам оставлять сообщения для них в случае, если они не отвечают на звонок. Для этого воспользуемся приложением VoiceMail().

Приложение VoiceMail() направляет вызывающего абонента на заданный почтовый ящик, чтобы он мог оставить сообщение. Почтовый ящик должен быть описан так: почтовыйящик@контекст, где контекст - имя контекста голосовой почты. Сюда также могут быть добавлены буквы b или u для запроса типа приветствия. Если используется буква b, абонент услышит сообщение о занятости владельца почтового ящика. Если используется буква u, абонент услышит сообщение о недоступности владельца почтового ящика (если таковое существует). Применим это в нашем диалплане. Ранее в контексте [internal] располагалась следующая строка, обеспечивающая возможность звонить Джону:

exten => 101,1,Dial(${JOHN})

Теперь давайте добавим сообщение о недоступности, которое услышит вызывающий абонент, если Джон не ответит на звонок в течение 10 с. Помните, второй аргумент в приложении Dial() - время ожидания. Если до истечения времени ожидания ответа на вызов не последовало, звонок перенаправляется в следующий приоритет. Зададим время ожидания 10 с и добавим приоритет для перевода абонента на голосовую почту, в случае если Джон не отвечает на звонок вовремя:

exten => 101,1,Dial(${J0HN},10) exten => 101,n,VoiceMail(101@default,u)

Теперь скорректируем это так, чтобы, если Джон занят (в другом звонке), абонент перенаправлялся на голосовую почту, где слышал бы сообщение о занятости. Для этого воспользуемся переменной ${DIALSTATUS}, в которой содержится одно из значений статуса (список всех возможных значений можно получить в консоли Asterisk с помощью команды core show application dial):

exten => 101,1,Dial(${JOHN},10)

exten => 101,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail) exten => 101,n(unavail),Voicemail(101@default,u) exten => 101,n,Hangup()

exten => 101,n(busy),VoiceMail(101@default,b) exten => 101,n,Hangup()

Теперь абоненты будут получать сообщение голосовой почты Джона (с соответствующим приветствием), если Джон занят или недоступен. Однако осталась небольшая проблема - Джон не имеет возможности извлекать свои сообщения. Исправим это.

Организация доступа к голосовой почте

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

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