Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван
Обратите особое внимание на имя папки, создаваемой этой командой, поскольку оно, вероятно, изменится к тому времени, когда вы будете читать данную книгу. Пока книга готовилась к выходу, имя папки менялось четыре раза. Последним было /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.
В следующей главе мы заглянем в будущее телекоммуникаций и обсудим, почему (и как глубоко) мы верим, что Asterisk прекрасно подходит на главную роль в нем.15
Asterisk - будущее телефонии
Сначала они не замечают вас, потом осмеивают, затем начинают бороться и наконец - проигрывают.
- Махатма Ганди
Вот мы и добрались до последней главы книги. Рассмотрено многое, но, надеемся, теперь вы понимаете, что мы лишь слегка коснулись этого феномена, называемого Asterisk. Чтобы прийти к логическому завершению, давайте рассмотрим, что могут предложить Asterisk и системы телефонной связи с открытым исходным кодом в ближайшем будущем.
Прогнозы - неблагодарное дело, но мы абсолютно уверены, что появление механизмов связи с открытым исходным кодом, таких как Asterisk, предвещает изменения в мышлении, которые приведут к трансформации всей телекоммуникационной отрасли. В данной главе мы представим основания нашей веры в эти идеи.
Проблемы традиционной системы телефонной связи
Чаще всего создателем телефона называют Александра Грэхема Белла, но на самом деле во второй половине 19 века десятки умов работали над задачей передачи голоса по телеграфным линиям. Эти люди в большинстве своем были ребятами с деловой жилкой, жаждущими создать продукт, который помог бы им сколотить состояние.