Содержание статьи
Создание своего VoIP-сервиса с использованием свободных компонентов – дело
далеко не простое. Администратору требуется знать не только основы работы с
*nix-системами, но и специфику VoIP и конкретных программ. Впрочем, задачу можно
упростить, если обратиться к специализированным решениям.
Муки выбора
Использование стандартного дистрибутива Linux, пусть даже хорошо известного
администратору, имеет свои слабые стороны. В пакетных репозитариях сегодня редко
встретишь полный набор необходимых программ (да еще и последних версий), а
значит, все придется собирать, устанавливать и обновлять вручную. Это займет
много времени и сил, ведь кроме системы, зависимостей, Asterisk и драйверов к
оборудованию VoIP, придется разбираться с установкой веб-интерфейса, системы
учета звонков и т.д. Специализированное решение не требует глубоких знаний (хотя
они и приветствуются), – настройки просты и понятны любому, кто хорошо
представляет конечный результат. Разработчики обычно сами следят за новинками ПО
и предлагают обновления при помощи собственных репозитариев.
На сегодняшний день уже имеется несколько подобных решений. Так, Digium
(компания-разработчик Asterisk) предлагает свой вариант - дистрибутив
AsteriskNOW. Последняя
стабильная версия 1.0.2 построена на основе одноименного веб-интерфейса и
системы сборки rBuilder Online дистрибутива
rPath Linux. Собственно,
веб-интерфейс AsteriskNOW, используемый в этом дистрибутиве, находится в стадии
активной разработки, и многие необходимые функции отсутствуют. С его помощью
можно лишь выполнить ряд базовых операций настройки сервиса VoIP и ничего более.
Вероятно, потому что его возможности сильно уступают аналогичным решениям
сторонних разработчиков, в новом релизе будет добавлен
FreePBX (интерфейс для
удобного конфигурирования Asterisk), который и будет использоваться по
умолчанию.
Следующий кандидат – Trixbox
– доступен в двух вариантах: коммерческом (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,
базирующийся на m0n0wall (FreeBSD 6.2) и Asterisk 1.4. В качестве интерфейса
использован несколько переработанный AsteriskNOW. Кстати, имеются и
русифицированные модули голосовых сообщений.
Выбор сделан
После анализа всех предложений был выбран
Elastix. В настоящее время
он является наиболее оснащенным и удобным в работе решением. Используя 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-систем». В зависимости от планируемой нагрузки выбери наиболее
близкий вариант (хотя это не догма).
Разработчики упростили процесс установки 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, как правило, проблем не возникает.
Настройка внешних каналов производится в подменю «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
Интерфейс | Логин | Пароль |
Elastix | admin | palosanto |
freePBX | admin | admin |
Flash Operator Panel | admin | eLaStIx.2oo7 |
Calling Cards | admin | mypassword |
SugarCRM | admin | password |
vTiger | admin | admin |
OpenFire | admin | Указывается во время настройки сервиса |
RoundCubeMail | В виде user.domain.com | Указывается при создании новой записи |
MySQL | root | eLaStIx.2oo7 |
INFO
Flash Operator Panel позволяет наблюдать за активностью Asterisk в реальном
времени, отслеживать активность абонентов, управлять соединениями с помощью
простых операций, просматривать статус, прослушивать и прерывать звонки и многое
другое.
По умолчанию в настройках клиента голосовая почта отключена.
Настройка Asterisk детально освещена в статьях «Строим телефонную сеть», «Под знаком VoIP», «VoIP особого назначения»
и «Звездные счета».
WARNING
Флажок напротив «Allow Anonymous Inbound SIP Calls?» должен быть установлен в
«No», иначе любой пользователь сможет подключиться к серверу и осуществлять
звонки.