Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 120, ДЕКАБРЬ 2008 г.

Эластичная VoIP-платформа. Elastix: гибридное решение для быстрого и простого развертывания VoIP-телефонии

Сергей «grinder» Яремчук (grinder@ua.fm, tux.in.ua)




Создание своего VoIP-сервиса с использованием свободных компонентов – дело далеко не простое. Администратору требуется знать не только основы работы с *nix-системами, но и специфику VoIP и конкретных программ. Впрочем, задачу можно упростить, если обратиться к специализированным решениям.

Муки выбора

Использование стандартного дистрибутива Linux, пусть даже хорошо известного администратору, имеет свои слабые стороны. В пакетных репозитариях сегодня редко встретишь полный набор необходимых программ (да еще и последних версий), а значит, все придется собирать, устанавливать и обновлять вручную. Это займет много времени и сил, ведь кроме системы, зависимостей, Asterisk и драйверов к оборудованию VoIP, придется разбираться с установкой веб-интерфейса, системы учета звонков и т.д. Специализированное решение не требует глубоких знаний (хотя они и приветствуются), – настройки просты и понятны любому, кто хорошо представляет конечный результат. Разработчики обычно сами следят за новинками ПО и предлагают обновления при помощи собственных репозитариев.

На сегодняшний день уже имеется несколько подобных решений. Так, Digium (компания-разработчик Asterisk) предлагает свой вариант - дистрибутив AsteriskNOW (www.asterisknow.org). Последняя стабильная версия 1.0.2 построена на основе одноименного веб-интерфейса и системы сборки rBuilder Online дистрибутива rPath Linux (www.rpath.com). Собственно, веб-интерфейс AsteriskNOW, используемый в этом дистрибутиве, находится в стадии активной разработки, и многие необходимые функции отсутствуют. С его помощью можно лишь выполнить ряд базовых операций настройки сервиса VoIP и ничего более. Вероятно, потому что его возможности сильно уступают аналогичным решениям сторонних разработчиков, в новом релизе будет добавлен FreePBX (интерфейс для удобного конфигурирования Asterisk, www.freepbx.org), который и будет использоваться по умолчанию.

Следующий кандидат – Trixbox (www.trixbox.org) – доступен в двух вариантах: коммерческом (Pro) и свободном - Trixbox CE (Community Edition). Создан он на базе компонентов LAAMP (Linux, Apache, Asterisk, МySQL и PHP), и в качестве интерфейса управления предложен FreePBX с некоторыми собственными модулями. Удобен тем, что в нем изначально присутствует система биллинга и панель оператора (Flash Operator Panel). Текущая версия базируется на CentOS 5.1. Чтобы получить доступ к репозитарию пакетов, следует зарегистрироваться на сайте разработчика. Только после этого можно будет установить такие приложения, как Jabber и SugarCRM.

На использование во встроенных устройствах (CPU – 200 МГц, RAM – 64 Мб) ориентирован AskoziaPBX (www.askozia.com), базирующийся на m0n0wall (FreeBSD 6.2) и Asterisk 1.4. В качестве интерфейса использован несколько переработанный AsteriskNOW. Кстати, имеются и русифицированные модули голосовых сообщений.

Выбор сделан

После анализа всех предложений был выбран Elastix (elastix.org). В настоящее время он является наиболее оснащенным и удобным в работе решением. Используя Elastix, можно создать не только полнофункциональный VoIP-сервис, но и некоторые другие сервисы обмена информацией. В стандартную поставку, кроме LAMP, входят: Postfix и Cyrus-IMAP, почтовый веб-интерфейс RoundCubeMail, Jabber-сервер OpenFire, факс-сервер HylaFax, две CRM-системы (Customer Relationship Management, управление взаимоотношениями с клиентами) - SugarCRM и VTigerCRM, система биллинга A2Billing, сервер DHCP и многие другие компоненты. Для настроек всех этих функций используется понятный веб-интерейс собственной разработки. Причем, в отличие от других дистрибутивов, в Elastix интерфейс изначально локализован.

Elastix построен на CentOS 5, с которым он полностью совместим по пакетам. Разработчики дополнили стандартный Asterisk собственными утилитами и модулями сторонних производителей. Отмечается, что дистрибутив оптимизирован с учетом возможной работы на виртуальных машинах вроде VirtualBox, VMWare или XEN. Распространяется все это дело по лицензии GNU GPL.

Установка Elastix

Период детских болезней (багов, то бишь) для Elastix миновал. Последней актуальной версией является 1.3, которую можно получить по ссылкам на странице Downloads. Отдельно предложен образ для VMWare. Кроме того, в Tools находим образ CentoOS2Elastix, позволяющий превратить CentOS в Elastix.
Программа установки Anaconda полностью совпадает с инсталлятором популярного дистрибутива RedHat Linux, от которого, собственно, и произошел CentOS. Поэтому все руководства для любого из этих дистрибутивов будут действительны. Для примера можно почитать документацию, расположенную по адресу www.rhd.ru/docs/manuals/enterprise. К сожалению, четкие указания насчет аппаратных средств дать невозможно, слишком много здесь тонкостей и нюансов. Поэтому за примерными конфигурациями компьютеров отсылаю на страницу сайта voip.rus.net «Производительность Asterisk-систем» (voip.rus.net/tiki-index.php?page=Asterisk+dimensioning). В зависимости от планируемой нагрузки выбери наиболее близкий вариант (хотя это не догма).

Разработчики упростили процесс установки Elastix за счет использования файлов автоматизации KickStart. В ISO-образе таких файла три. В обычном варианте установки администратору будет задано всего лишь несколько вопросов: клавиатурная раскладка, часовой пояс, пароль суперпользователя root. Под систему отводится жесткий диск целиком, и все необходимые разделы будут созданы автоматически. Также без лишних запросов устанавливаются пакеты. Сетевые интерфейсы настраиваются на получение IP-адреса от DHCP-сервера. Нажав клавиши от <F1> до <F5>, можно получить справку по дополнительным параметрам. Сам процесс установки происходит в псевдографическом режиме, перемещение между элементами производится при помощи стрелок и клавиши табуляции. Выбор или отмена выбора нужного пункта – <Пробел> или <Enter>.

Несколько больше свободы предоставляет вариант Advanced, активируемый вводом в загрузочном меню параметра «advanced». Здесь уже возможна ручная разметка диска и настройка сетевых интерфейсов.

После перезагрузки система полностью готова к настройкам сервисов через веб-интерфейс. Регистрация в консоли может понадобиться только в том случае, когда сетевой интерфейс не сконфигурирован при установке. Для его настройки следует вызвать программу netconfig и в появившемся окне заполнить нужные параметры. Удаленное управление с использованием консоли выполняется по протоколу SSH (в комплект Elastix входит OpenSSH-сервер).

Знакомство с веб-интерфейсом

Теперь можно подключаться к веб-интерфейсу, для чего вводим в браузере IP-адрес сервера. Для регистрации используем учетную запись «admin» и пароль «palosanto». По умолчанию установлен английский язык интерфейса. Для смены на русский переходим в меню System –> Preferences –> Language. Пока интерфейс переведен лишь частично. Кроме того, в создаваемых графиках иногда появляется нечитаемый текст.

В целях безопасности следует изменить пароль администратора. Это можно сделать в Система –> Пользователи, затем выбрать в меню слева Users, отметить учетную запись admin и нажать кнопку «Редактировать».

Веб-интерфейс состоит из семи основных вкладок. Их названия вполне отвечают их назначению, поэтому разобраться легко. Внутри основных вкладок есть подменю, где можно получить доступ к конкретным настройкам.

Во вкладке «Система» также можно активировать и настроить встроенный DHCP-сервер, создать группы и наделить их правами. Группа, к которой принадлежит пользователь, задается при создании учетной записи; впоследствии группу легко сменить. Пользователь может быть членом только одной группы. В других подменю находятся пункты, позволяющие – загрузить модуль, найти оборудование, завершить работу системы, обновить пакеты, произвести резервирование и восстановление системы. Файл с именем elastixbackup-дата*, содержащий резервную копию, помещается в каталог /var/www/html/backup.

Настройка почтового сервера, учетных записей и перенаправление почты производится в меню Email. Здесь же находится подменю для доступа к RoundCubeMail. Аналогично, все настройки OpenFire собраны в меню IM. По умолчанию этот сервис неактивен. После нажатия на ссылку запустится мастер настройки сервиса, и в дальнейшем работа с OpenFire – стандартна. Меню «Отчеты» полностью отвечает своему названию. Здесь можно узнать статистику звонков и использования каналов. Подменю «Биллинг» содержит дополнительные пункты, в которых указываются тарифные планы и различные отчеты. В меню «Дополнительно» находятся пункты для доступа к SugarCRM, VTigerCRM и платформе для работы с карточками. В подменю «Загрузки» разработчики собрали ссылки на протестированные и рекомендуемые для совместного использования с Elastix приложения (софтфоны, IM-клиенты и факс-утилиты).

Настройки виртуальных факсов производятся в меню «Факс». Здесь же указывается электронный адрес, на который будут отсылаться сообщения о получении нового факса. Реализован поиск по принятым сообщениям. Зайдя в Template Email, следует установить шаблон сообщения, используемого при отправке факса. Среди документации на сайте проекта есть три видеоурока, где показано, как настроить HylaFax и отправить сообщение с клиентского компьютера.Учитывая, что большая часть сервисов уже работает после установки, можно сразу приступать к настройкам.

Настройка SIP-аккаунта

Все связанное с настройками Asterisk размещено во вкладке PBX. При необходимости, выбрав «Unembedded freePBX», можно вместо инструментов, предлагаемых Elastix, перейти на интерфейс FreePBX. Доступ к CLI Asterisk находится в подменю «Командная строка Asterisk». Для более тонкой настройки возможна и ручная правка конфигурационных файлов Asterisk.

Для примера рассмотрим создание нового SIP-аккаунта. В «General Setting» указываются общие настройки. Например, в «Asterisk Dial command options» по умолчанию установлено «tr», что означает разрешение передачи вызова вызываемой стороной по нажатию «#» и обычные гудки. Записав вместо «r» букву «m», можно заменить гудки приятной музыкой (MusicOnHold). Она будет сопровождать абонента, пока ему не ответят. В этом же меню настраивается формат времени, страна и почтовые адреса для отправки факсов.

Проследи, чтобы флажок напротив «Allow Anonymous Inbound SIP Calls?» был установлен в «No», иначе любой пользователь сможет подключиться к серверу и нагло осуществлять звонки.

Теперь переходим в подменю «Конфигурирование УАТС» и в раскрывающемся списке «Device» выбираем тип устройства. Для софтфона это будет «Generic SIP Device», хотя некоторые реализации поддерживают и протокол IAX2. После нажатия на кнопку «Submit» появится окно, в котором указываем параметры нового клиента. Все поля заполнять не требуется, всегда можно вернуться и подкорректировать настройки. Обрати внимание на подсказки, появляющиеся при наведении курсора на некоторые параметры. В поле «User Extension» вводим номер абонента, в «Display Name» – имя, выводимое при звонке. В поле «secret» указывается пароль для доступа к номеру, а для софтовых телефонов здесь можно использовать и буквенно-цифровую комбинацию. После заполнения нужных полей нажимаем «Submit». Новая учетная запись должна появиться в поле справа. Если новые настройки требуют перезапуска Asterisk, в верхней части окна появляется надпись «Apply Configuration Changes Here» на красном фоне. Нажимаем на нее и пробуем подключиться клиентом.

По умолчанию в настройках клиента голосовая почта отключена. Для ее активации нужно перейти в поле «Voicemail & Directory» и установить значение «Status» в «Enable». Для доступа к голосовой почте в «Voicemail Password» введи пароль (пользователь затем может его изменить, зайдя в меню «*98»). Так как пользователь будет набирать пассворд, используя кнопки телефона, пароль должен состоять только из цифр. Чтобы получать сообщения о наличии голосовой почты на e-mail, надо ввести адрес в поле «Email Address» и «Pager Email Address». В последнем указывается номер для отправки коротких сообщений в виде SMS. При помощи нескольких переключателей указываются дополнительные возможности. Например, установка «Email Attachment» в «yes» разрешит отправку голосового сообщения в качестве почтового вложения.

После того, как будет разрешен VoiceMail, появятся дополнительные меню. В «Gabcast Configuration» настраивается запись переговоров в www.gabcast.com (для чего нужна действующая учетная запись на этом сервисе – бесплатно предоставляется до 200 Мб места под запись). В «Add Follow Me Settings» указывается список альтернативных номеров и алгоритм их выбора в том случае, если абонент не отвечает на звонок. Окончательное решение по неотвеченному звонку указывается в поле «Destination if no answer». Здесь можно положить трубку, перенаправить звонок другому абоненту, записать сообщение или выполнить любую другую команду Asterisk.

Специальные номера, используемые в Elastix для доступа к голосовой почте, парковки и записи вызова, настраиваются в «Feature Codes». Перед созданием номеров ознакомься с имеющимися здесь установками, чтобы не использовать зарезервированные номера. Описание номера для доступа к голосовой почте находится в поле «VoiceMail». В нашем случае – это «*98». Набираем его в телефоне, вводим свой номер и пароль для доступа к голосовой почте. Другой способ прослушать оставленное сообщение: воспользоваться веб-интерфейсом PBX – «Голосовая почта». Но чтобы пользователь смог в нем зарегистрироваться, сначала следует перейти в Система –> Пользователи и создать новую системную учетную запись. Номер телефона, который будет привязан к этому пользователю, указывается в поле «Extension».

Elastix предоставляет еще одну удобную функцию - сканирование выбранного диапазона IP-адресов для поиска клиентов. Администратор в ответ на запрос в подменю «Endpoint Configuration» получает список абонентов с указанием их IP- и МАС-адресов, номеров, типов телефонов и статуса.Возможность проведения конференции по умолчанию отключена. Для ее активации и настройки перейди в подменю Conference.

Подключение внешних каналов

Теперь, когда пользователи могут общаться между собой внутри дома/универа/офиса, перейдем к настройке внешних соединений. Поддерживаемые интерфейсные карты обнаруживаются автоматически. Для проверки следует перейти в Система –> Обнаружение оборудования. Если в списке нет нужного устройства, нажми кнопку «Сканировать оборудование». С картами-клонами X100P (www.voip-info.org/wiki/view/X100P+clone), как правило, проблем не возникает.

Настройка внешних каналов производится в подменю «Trunk». Под термин «канал» в Asterisk попадает как VoIP-провайдер, так и канал, предоставляемый интерфейсной картой. Это и предстоит выбрать на первом шаге мастера. Далее заполняем параметры. В «Outbound Caller ID» записываем Caller ID, который будет отправлен удаленному абоненту при исходящем вызове по этому каналу. Поле имени для Caller ID указывается в двойных кавычках, а поле номера - внутри символов <> ("Sergej" <12345>).

Указав число в поле «Maximum channels», можно ограничить количество одновременных звонков, совершаемых по этому каналу. В поле «Dial Rules» заносится план набора для исходящих номеров. В Elastix при создании шаблонов плана набора помогает мастер, позволяющий быстро добавить нужную запись. Чуть ниже, в «Trunk Name», указываем уникальное имя канала, – оно будет использовано в правилах Asterisk. В «Outgoing Settings» прописываются параметры VoIP-провайдера. В общем случае необходимо подправить заготовку, изменив поля со звездочками нужными значениями:

host=DNS имя или IP-адрес провайдера
username=логин
secret=пароль
type=peer

Последний параметр означает, что канал будет использован для исходящих звонков. Входящие звонки настраиваются в поле Incoming Settings. Дополнительно можно указать предпочтения для кодеков и прочие параметры. Все они подробно описаны в документации Asterisk. Большинство провайдеров требуют регистрации на сервисе. Необходимую строку указываем в «Register String». Формат ее таков: «username:password@voipprovider.com/ID».По окончании настроек нажимаем «Submit Changes» и перезапускаем Asterisk.

В итоге мы получили аналог ATC, при помощи которой можно совершать звонки как внутри дома/универа/офиса, так и на внешние номера. Но это еще далеко не все возможности, предоставляемые Asterisk/Elastix. Также доступны парковка вызова, использование агентов, конференции, биллинг, факс и многое другое. Слава техническому прогрессу!

Список логинов и паролей по умолчанию к сервисам Elastix

ИнтерфейсЛогинПароль
Elastixadminpalosanto
freePBXadminadmin
Flash Operator PaneladmineLaStIx.2oo7
Calling Cardsadminmypassword
SugarCRMadminpassword
vTigeradminadmin
OpenFireadminУказывается во время настройки сервиса
RoundCubeMail В виде user.domain.comУказывается при создании новой записи
MySQLrooteLaStIx.2oo7

INFO

  • Flash Operator Panel позволяет наблюдать за активностью Asterisk в реальном времени, отслеживать активность абонентов, управлять соединениями с помощью простых операций, просматривать статус, прослушивать и прерывать звонки и многое другое.
  • По умолчанию в настройках клиента голосовая почта отключена.
  • Настройка Asterisk детально освещена в статьях «Строим телефонную сеть» (X_11_2007), «Под знаком VoIP» (X_12_2007), «VoIP особого назначения» (X_01_2008), «Звездные счета» (X_02_2008).

WARNING

Флажок напротив «Allow Anonymous Inbound SIP Calls?» должен быть установлен в «No», иначе любой пользователь сможет подключиться к серверу и осуществлять звонки.

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001