В настоящее время встречаются аппаратные и программные IP-PBX. Первые представляют собой специализированное оборудование с предустановленным ПО. Как правило, они не могут быть модернизированы. Программные УАТС созданы в виде готовых Linux-дистрибутивов или исполняемых файлов для ОС Windows. Основными преимуществами последних средств являются возможность работы в виртуальном окружении Vmware, XEN и др., а также неприхотливость к аппаратной составляющей.
Наиболее популярными системами IP-PBX с открытым текстом являются Asterisk, FreeSWITCH, SipXecs и Yate.
Система FreeSWITCH была создана в 2006 г. Энтони Минессейлом (Anthony Minessale), одним из бывших разработчиков Asterisk. При разработке архитектуры были учтены проблемы существующих на тот период открытых программных продуктов для IP-телефонии. Основным интерфейсом конфигурирования FreeSWITCH являются текстовые файлы в формате XML, что затрудняет администрирование этой системы. А существующие графические интерфейсы для FreeSWITCH (WikiPBX, FusionPBX, blue.box) далеки по функциональности от того же FreePBX для Asterisk.
В основе продукта SipXecs заложен исходный текст ПО SipXpbx, изданный в 2004 г. компанией PingTel. Программное обеспечение SipXecs написано на языках программирования C++ и Java, оно работает в среде ОС Linux. Весь телефонный функционал реализован в рамках спецификации протокола SIP. Так как SipXecs не позволяет пропускать через себя медиапотоки, а замыкает их напрямую между агентскими устройствами (IP-телефонами), то невозможно реализовать некоторые важные функции PBX, например запись разговоров.
Работа над проектом Yet Another Telephone Engine (Yate) была начата в 2004 г. Написанный на C++, он может быть реализован в среде ОС Linux, BSD и Windows. Yate хорошо поддерживает следующие IP-протоколы: H323, IAX2, MGCP, различные уровни SS7 (MTP2, SIGTRAN), драйверы потоковых цифровых плат разных производителей. Yate считается одним из лучших H323-SIP конвертеров.
Создание IP-УАТС рассмотрим на примере открытой бесплатной программной телефонной станции Asterisk, используя веб-интерфейс управления FreePBX.
С помощью Asterisk можно развернуть внутреннюю телефонию с наглядными телефонными идентификаторами на основе фамилий абонентов — ivanov, petrov и пр., подключить внутреннюю телефонию к основной телефонной сети и предоставить возможность пользователям звонить во внешний мир, указывая традиционный телефонный номер абонента, а также подсоединить голосовую почту. В качестве хранилища голосовой почты сервис Asterisk может использовать сервер IMAP. Это позволяет управлять голосовой почтой посредством как телефона, так и клиента электронной почты. А еще через Asterisk можно подключить аналоговые телефонные аппараты и подсоединиться к офисной АТС.
Настройка внутренней телефонии
Итак, зарегистрируем наших внутренних пользователей. Заходим в меню «Application*Extension» и создаем Generic SIP devices. Протокол SIP (Session Initiation Protocol) является одним из широко применяемых для организации телефонных сетей VoIP (Voice over IP). В поле идентификатора пользователя User Extension требуется указать числовой телефонный номер (например, 101). Имеется возможность указать и дополнительный идентификатор SIP Alias в более «человеческом» формате (к примеру, ivanov). А чтобы имя и фамилия абонента красиво отображались, когда он будет звонить, необходимо заполнить поле Display Name (например, Ivanov Ivan Ivanovitch). Кроме того, есть возможность запретить посторонним совершить звонок от имени нашего пользователя, защитив его номер паролем. Для этого введем в поле secret, например, password101.
Внизу страницы нажмите кнопку Submit, после чего зарегистрируйте второго абонента со следующими атрибутами:
User Extension: 102
Display Name: Ivanov Ivan Ivanovitch
SIP Alias: Petrov Petr Petrovitch
secret: tpassword102
По окончании регистрации пользователей нажмите красную кнопку Apply Config в верхней части экрана.
Самое время подключить к нашей станции пару телефонов и проверить, как она будет работать.
Подключение телефонов к Asterisk
Воспользуемся программным SIP-клиентом. Существует множество реализаций таких программ под любую современную платформу, главное, иметь в наличии динамики и микрофон. Для операционной системы Windows популярным софтфоном (software telephone , в переводе с английского программный телефон) является ZoIPer (http://www.zoiper.com). Скачайте с сайта производителя бесплатную версию и добавьте (нажав кнопку Options) учетную запись SIP (Add new SIP Account) с произвольным названием (например, ivanov). В параметрах записи, в поле Domain, укажите IP-адрес, назначенный нашему FreePBX, в поле Username -- имя нашей первой учетной записи (101), а в поле Password — заданное для первой учетной записи значение параметра Secret (password101).
Кстати, IP-адрес и номер телефона пользователя мы вводили в поля Domain и Username соответственно. На другом компьютере проведите аналогичные действия для второй учетной записи. Хорошим признаком правильности наших действий будет надпись Registered в нижней части окна программы. А потом пригласите кого-нибудь принять участие в эксперименте от имени пользователя Петрова Петра Петровича — позвоните ему, набрав в программе телефонный номер petrov.
Можно позвонить и «по старинке», набрав номер 102. Если эксперимент прошел успешно и вам удалось поговорить — принимайте поздравления.
Подключение Asterisk к ТФОП
Внутренняя телефония — это хорошо, но остальные абоненты нам доступны только через ТФОП (телефонию общего пользования), или, иначе говоря, через PSTN (Public Switched Telephone Network, сеть, для доступа к которой используются обычные проводные телефонные аппараты). Давайте настроим в FreePBX возможность звонить во внешний мир, набирая традиционный телефонный номер абонента. Проще всего это делать через VoIP-провайдера. Выбор последнего — отдельная тема, но в любом случае с точки зрения настроек все будет аналогично, поэтому остановимся на SipNet (http://www.sipnet.ru).
При регистрации требуется указать действующий адрес электронной почты и номер мобильного телефона, который будет использоваться в качестве исходящего, когда вы станете совершать звонки. После регистрации на сайте вам будут присвоены SIP ID и пароль. Кроме того, на счете будет 1 у.е., чтобы совершать внешние звонки. Проверить возможность использования VoIP-провайдера из вашей локальной сети поможет ZoIPer, в поле Domain указав spinet.ru, в поле Username — присвоенный вам SIP ID и в поле Password — пароль. После подключения ZoIPer к SipNet позвоните себе на мобильный или городской телефон, введя цифру 8 перед кодом города. Проверьте наличие и качество прохождения звука в обоих направлениях. Если все в порядке, снова настройте ZoIPer на подключение к нашему FreeBPX.
Для подключения FreePBX к VoIP-провайдерам необходимо создать соединение типа «транк» (Trunk). Этот термин, пришедший из традиционной телефонии, обозначает соединение, в которое передается номер вызываемого абонента. Для подключения к SipNet необходимо создать SIP-транк. Заходим в меню «Connectivity*Trunks» и создаем транк Add SIP Trunk. В секции общих настроек General Settings в поле Trunk Name указываем название нашего соединения, например PSTN through SipNet. В поле Outbound CallerID, определяющим наш телефонный номер при совершении вызова, вводим hidden, все равно в SipNet подставится номер указанного вами при регистрации мобильного телефона.
Описание параметров использования транка для исходящих вызовов находится в секции Outgoing Settings. В поле Trunk Name задается техническое название соединения, например pstn_sipnet. А текстовый блок PEER Details показывает, что не всегда графический интерфейс может уберечь нас от необходимости знать, как настраивается Asterisk на самом деле. Фактически, это фрагмент одного из его файлов конфигурации, содержащий ответы на вопросы, как использовать транк (type=peer), куда направлять вызов (host=sipnet.ru), как аутентифицироваться (username=0037231234 и secret=xxxxxxxx), кем представляться при совершении вызова (fromuser=0037231234 и fromdomain=sipnet.ru)
.
Подтверждаем окончание настройки нажатием на кнопку Submit Changes и не забываем про красную кнопку Apply Config в верхней части экрана.
Теперь «объясняем» нашему Asterisk, что созданный транк надо использовать для совершения звонков во внешний мир. С использованием FreePBX это делается добавлением исходящего маршрута через меню «Connectivity*Outbound Routes». Указываем название маршрута в поле Route Name, например call_to_pstn.
В секции Dial Patterns that will use this Route определяется шаблон телефонных номеров, для вызова которых будет употребляться данный маршрут. Символ X в шаблоне соответствует любой цифре от 0 до 9. Таким образом, этот маршрут будет использоваться при вызове любого телефонного номера на территории Российской Федерации.
Осталось привязать маршрут к ранее созданному нами транку PSTN through SipNet в секции Trunk Sequence for Matched Routes, выбрав его имя из ниспадающего списка.
И, как обычно, фиксируем настройки нажатием кнопок Submit Changes и Apply Config.
В результате выполненных операций ваши пользователи могут связываться друг с другом, указывая в программе ZoIPer-имена, и звонить во внешний мир, вводя традиционные 11-значные номера телефонов, начинающиеся с цифры 8.
Выбор оборудования для подключения Asterisk к офисной телефонии
Теперь все наши достижения необходимо интегрировать в офисную телефонную сеть. К каждому рабочему месту в офисе подходят два кабеля: один -- для подключения компьютера к сети Ethernet, другой — для подсоединения телефона к аналоговой ATC. Классическое телефонное оборудование подключается к IP-PBX Asterisk с помощью голосовых шлюзов. На рынке существует большой выбор такого рода техники, но идеально подойдет устройство LinkSys 3102. Эта небольшая коробочка имеет четыре интерфейса, которые будут использоваться следующим образом:
• Internet (WAN) — в локальную сеть;
• Ethernet (LAN) — к рабочей станции сотрудника;
• Phone (Line 1) — к телефону сотрудника;
• Line (PSTN Line) — в телефонную сеть офиса.
На рисунке представлены схемы подключения рабочих мест сотрудников офиса, как оборудованных, так и не оборудованных голосовым шлюзом.
Простим разработчикам некоторую неразбериху в названиях интерфейсов. В остальном же устройство неплохо себя зарекомендовало — оно позволяет все подключить без прокладки дополнительных кабелей. Перед использованием рекомендуется провести сброс настроек устройства для возврата к заводским настройкам.