KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программное обеспечение » Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Джим Меггелен - Asterisk™: будущее телефонии Второе издание

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Джим Меггелен, "Asterisk™: будущее телефонии Второе издание" бесплатно, без регистрации.
Перейти на страницу:

exten => 14165551212,1,NoOp(dundi-local: Number advertisement and incoming)

exten => 14165551212,n,Answer()

exten => 14165551212,n(call),Dial(SIP/1000)

exten => 14165551212,n,Voicemail(u1000)

exten => 14165551212,n,Hangup()

exten => 14165551212,n(call)+101,Voicemail(b1000)

exten => 14165551212,n,Hangup()

Альтернативные методы хранения голосовой почты

Обычный способ хранения голосовой почты Asterisk - простая запись сообщения в файл, размещаемый на локальном жестком диске в папке /var/spool/asterisk/voicemail. Этот метод хорош для простых офисных АТС, но в больших распределенных сетях или окружениях, в которых желательна более тесная интеграция с внешними приложениями, потребуются более сложные методы хранения.

Хранение голосовой почты на IMAP-сервере

Уже довольно долгое время телефонная отрасль обещает предоставить возможность хранения голосовых сообщений вместе с обычными сообщениями электронной почты. Это называется универсальной системой передачи и обработки сообщений (Unified Messaging), и хотя большинство офисных АТС сегодня предлагают такую систему в том или ином виде, обычно ее лицензирование и реализация очень дороги.

Естественно, Asterisk отбрасывает все эти глупости и просто позволяет интегрировать ящик голосовой почты в среду IMAP. Хранение голосовой почты на IMAP-сервере обеспечивает несколько преимуществ. После прослушивания по телефону сообщение голосовой почты переводится в состояние read (прочитано) на IMAP-сервере. Это означает, что клиентское почтовое приложение также отметит это сообщение как прочитанное. Аналогичным образом, если сообщение прослушивается из клиентского почтового приложения, система голосовой почты отключает сигнал уведомления о наличии непрочитанного сообщения на всех телефонах, закрепленных за этим почтовым ящиком. Удаление сообщения в одном месте обеспечит его удаление везде. Таким образом, однажды удаленное сообщение действительно уничтожается. Такова универсальная система передачи и обработки сообщений, «священный грааль» интеграции голосовой и электронной почты, но Asterisk скромно предпочитает не акцентировать на этом особое внимание. Интеграция с IMAP по-прежнему является новой функциональностью, поэтому для ее активации необходимо кое-что добавить. Первым делом для работы с IMAP-сервером Asterisk необходимо установить IMAP- клиент. Подойдет практически любой IMAP-сервер (даже Exchange Server). Авторы лично протестировали поддержку голосовой почты по протоколу IMAP с IMAP-серверами Courier-IMAP и Dovecot. IMAP- сервер физически может располагаться на одном компьютере с установленной Asterisk или находиться в другой части земного шара. Чтобы иметь возможность доступа к IMAP-серверу, Asterisk требует наличия библиотеки IMAP-клиента. Эта библиотека является бесплатным IMAP-клиентом под именем c-client, созданным в Вашингтонском университете. Чтобы установить c-client, надо просто перейти в свою папку /usr/src и выполнить следующие команды:

# wget ftp://ftp.cac.washington.edu/mail/imap.tar.Z

Это обеспечит загрузку исходного кода. Извлеките его из архива следующим образом:

# tar zxvf imap.tar.Z

Обратите особое внимание на имя папки, создаваемой этой командой, поскольку оно, вероятно, изменится к тому времени, когда вы будете читать данную книгу. Пока книга готовилась к выходу, имя папки менялось четыре раза. Последним было /usr/src/imap-2006h.

Перейдите в созданную папку и выполните команду

# make lrh IP6=4

Это обеспечит компиляцию всего, что необходимо Asterisk для использования библиотек IMAP-клиента[133].

Теперь необходимо повторно скомпилировать Asterisk с возможностями IMAP. Понадобится перейти в ту папку, в которой располагаются исходные файлы Asterisk (к примеру, /usr/src/asterisk), и выполнить следующую команду:

# /configure --with-imap=/usr/src/imap-2006h

Теперь необходимо повторно выполнить команду make menuconfig, чтобы включить IMAP-хранилище в компиляцию. В разделе Voicemail Build Options (Параметры создания голосовой почты) выберите параметр IMAP STORAGE (ХРАНИЛИЩЕ IMAP) и нажмите кнопку x, чтобы сохранить изменения и выйти. Теперь при компиляции Asterisk будет выполнена и сборка модуля IMAP. Очевидно, что следующий шаг - повторная компиляция и установка Asterisk. Для этого просто выполните в вашем терминале следующую команду:

# make && make install

Итак, модуль скомпилирован и установлен. Пришло время его сконфигурировать.

Добавим несколько строк в раздел [general] файла voicemail.conf, хранящегося в папке /etc/asterisk:

imapserver=localhost

imapport=143

expungeonhangup=yes

authuser=vmail

authpassword=vmailsecret

imapfolder=Voicemail

Поскольку Dovecot доступен в хранилище пакетов CentOS, установить небольшой IMAP-сервер для обработки виртуальных пользователей (голосовой почты) на сервере Asterisk просто:

# yum install dovecot

Обеспечим активацию поддержки IMAP в файле /etc/dovecot.conf, раскомментировав строку protocols, чтобы она выглядела следующим образом:

protocols = imap imaps Активировав поддержку IMAP, создадим учетную запись пользователя для сохранения почты:

# groupadd vmail

# useradd vmail -g vmail -s /bin/true -c "asterisk voicemail user" -p vmailsecret -d /var/spool/asterisk/imap-voicemail vmail

# chown -R vmail.vmail /var/spool/asterisk/imap-voicemail

Теперь перезапустим Dovecot и Asterisk - и все должно быть готово.

# service dovecot restart

# service asterisk restart

Поздравляем! Вы успешно установили базовую поддержку голосовой почты IMAP в Asterisk! Однако это лишь верхушка айсберга. Имея хранилище голосовой почты, работающее по протоколу IMAP, можно без труда реализовать совместно используемую (например, по отделам) голосовую почту с помощью совместно используемых IMAP-папок. Многие компании уже имеют совместно используемую по отделам электронную почту, так что совместно используемый ящик голосовой почты - весьма естественное и логичное развитие технологии. При наличии IMAP-хранилища голосовой почты каждый сотрудник может работать с несколькими ящиками голосовой почты, не смешивая личные и рабочие сообщения. С точки зрения Asterisk в конфигурации нет ничего необычного; вы просто вызываете приложение VoiceMail() с указанием желаемого почтового ящика и контекста и обеспечиваете, чтобы совместно используемая IMAP-папка была включена в список папок почтового клиента служащего отдела.

Наконец, вместо глобального IMAP-пользователя Asterisk может быть реализована авторизация для каждого почтового ящика в отдельности (то есть каждый ящик голосовой почты аутентифицируется как отдельный пользователь). Asterisk поддерживает это с помощью опций imapuser и imapsecret в индивидуальных описаниях ящиков голосовой почты:

[imapvoicemail]

# => 1234,Sue's Mailbox,,, [email protected]|imapsecret=suesimapsecret

# => 5555,Bob's Mailbox,,, [email protected]|imapsecret=bobsimapsecret

В этом конкретном примере, если сообщение оставлено в почтовом ящике IMAP 100 контекста imapvoicemail, Asterisk будет проходить аутентификацию на IMAP-сервере как [email protected], используя в качестве пароля suesimapsecret. Аналогично, если сообщение оставлено в почтовом ящике 101 того же контекста голосовой почты, будут использоваться соответственно [email protected] и bobimapsecret.

Хранение голосовой почты в базе данных ODBC

На всякий случай повторяю, что голосовая почта также может храниться в базе данных посредством ODBC-коннектора. Этому посвящена глава 12!

Asterisk и Jabber (XMPP)

Jabber - на самом деле первоначальное имя протоколов IETF XMPP (RFC 3920-3923). Поскольку имя Jabber, несомненно, лучше, чем XMPP, оно и закрепилось. Этот протокол изначально разрабатывался для обеспечения децентрализованной, общедоступной инфраструктуры обмена сообщениями и контроля присутствия, поддерживающей открытые стандарты. Она поддерживает доставку сообщений в автономном режиме и шифрование и «доросла» до голосовых сообщений, которые поддерживает Asterisk.

Интересно отметить, что вначале Jabber рассматривался как конкурент протокола SIMPLE, основывающегося на SIP. XMPP разработан как более универсальный протокол и, конечно, на основе XML. Asterisk можно сконфигурировать на использование XMPP в нескольких видах. XMPP может выступать в роли инфраструктуры контроля присутствия (например, добавочный номер 205 не отвечает или занят) или инфраструктуры обмена голосовыми сообщениями JINGLE для полной поддержки телефонной связи с другими сервисами, такими как Google Talk.

В отличие от других сетей обмена сообщениями, таких как MSN и Yahoo!, XMPP децентрализована. Кто угодно может иметь свой собственный Jabber-сервер и выполнять на нем любое количество сервисов. Сообщения отправляются практически так же, как сообщения электронной почты: используемый Jabber-сервер связывается с Jabber-сер- вером другого человека и устанавливается прямое соединение. Если этот человек не в сети, сообщение сохраняется, и, когда он регистрируется на своем Jabber-сервере, выполняется доставка всех хранящихся сообщений. Учитывая возможность шифрования (протокол XMPP поддерживает TLS), неудивительно, что многие коммерческие организации переходят к реализации внутренних сетей обмена сообщениями с использованием этого замечательного протокола. И Asterisk может органично интегрироваться в эти сети связи.

Заключение

Вот и все, что мы собирались рассказать в данной главе, но это далеко не все, что вы можете узнать об Asterisk. Надеемся, вы начинаете осознавать, насколько велики возможности Asterisk.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*