Вкратце про Asterisk

uchastnik Как гласит известная шутка, люди — это болтливые обезьяны. Потребность людей в коммуникации является одним из движущих элементов эволюции. Один из важнейших её способов, как утверждает психология, это вербальное общение, разговор. Технический прогресс помог в этом человечеству — в начале прошлого века был изобретен телефон, в корне изменивший его образ жизни.

Современная телефонная связь по-прежнему нацелена на передачу голоса, но уже давно не ограничивается только этим. Каждый виток развития добавляет все больше удобства в этот процесс. Передача голоса посредством протокола IP — один из таких витков. Абонентами VoIP-сети могут быть кто угодно: от простых обывателей до бизнес-клиентов с высоким качеством передачи звука и множеством сопутствующих услуг. От небольших компаний, желающих сэкономить на междугородних разговорах, до корпораций, объединяющих свои офисы в единую телефонную сеть.

ast_17_12_2009

Помимо самой среды передачи, для построения VoIP-сети требуется устройство, которое будет обрабатывать звонки и предоставлять все те услуги, о которых я говорил ранее. Такие устройства называются IP-PBX (Private Branch Exchange) или, по-русски, IP-АТС (Автоматическая телефонная станция). На сегодняшний день на рынке IP PBX представлено множество решений. В этом обзоре хотелось бы рассказать об одном из таких решений — Астериск (Asterisk).

Астериск представляет собой серверное программное обеспечение, которое устанавливается на компьютер под управлением Linux, FreeBSD или Solaris. Есть так же версия под Windows, который называется AsteriskWin32.

Словом «астериск» в типографике называют символ звездочки «*». В регулярных выражениях этот знак используется для обозначения совпадения с любой последовательностью. Видимо, этим авторы хотели выразить готовность решения к интеграции с любой сетью и оборудованием.

Астериск был создан в 1999 году человеком по имени Марк Спенсер (Mark Spencer). Он написал эту программу для обслуживания компании, которая занималась поддержкой пользователей Линукса. Марк и по сей день остается лидером проекта. Во время кризиса доткомов в 2001 его приоритеты сместились, и он взялся за активное развитие Астериска. Компания, для которой писался Астериск, была переименована в Digium. Теперь она занималась продажей коммерческой версии Астериска и платной поддержкой пользователей. В дальнейшем, эта же компания начала продавать оборудование — телефонные карты для работы с различными телефонными сетями и интерфейсами. Астериск использует двойную лицензию распространения, позволяющую подключать закрытые модули, такие как коммерческие кодеки(G.729, G.723), модули для работы с закрытыми протоколами (Skype) и так далее. При этом Астериск — это ПО с открытым исходным кодом, и на сегодняшний день его разработкой занимаются сотни людей (по последним данным — более 800 человек). Астериск является полноценной системой обработки телефонных вызовов с гибкими настройками и большим количеством расширений и модулей.

Главным преимуществом Астериска я бы назвал открытость архитектуры. На сегодняшний день не все IP PBX поддерживают такое количество протоколов и возможностей интеграции с чужими решениями. Астериск — бесплатная система (Open source версия). Это значит, что деньги вам придется заплатить только специалисту, который его настроит, и будет поддерживать. Для организаций, которым нужна поддержка от производителя, существует платная версия Астериска (Asterisk Business Edition), которая отличается, по большей части, наличием сервисов, обновлений и обучением персонала.

ast_17_12_2009_1

Астериск может работать с IP-протоколами передачи голоса, такими как SIP, H.323, IAX2, Skype, SCCP (протокол по которому работают многие телефоны Cisco), MGCP, а также с традиционной телефонией (TDM) с помощью PCI/PCE-E карт с интерфейсами FXO/FXS или Е1/Т1. Такие карты, в частности, выпускает компания Digium. Так же для связи с TDM-сетями используются различные шлюзы производства компаний Cisco, Adtran, Grandstream, Vegastream и других.

Отдельное слово хочется сказать о протоколе IAX2. Этот протокол был разработан в рамках проекта Asterisk и расшифровывается как Inter Asterisk Exchange protocol. В отличие от протоколов SIP и H.323, он использует один порт для передачи сигнальной и голосовой частей трафика, что очень удобно, если между серверами есть узлы трансляции IP-адресов (NAT). Также, если есть необходимость сэкономить пропускную способность канала, IAX2 может работать в режиме транка (trunk). В этом режиме несколько разговоров упаковываются в поток более оптимально, чем если бы они передавались независимо друг от друга. Конечно же, как и H.323 и SIP, он поддерживает шифрование передаваемых данных. Помимо межсерверной связи IAX2 может использоваться для подключения конечных пользователей, причем есть как программные телефоны с поддержкой IAX2, так и аппаратные модификации.

Следующим преимуществом можно назвать простоту настройки Астериска. Она осуществляется через конфигурационные файлы с простым синтаксисом. Алгоритм обработки звонков описывается инструкциями, похожими на процедурный язык программирования. Соответственно вам самим решать, какой будет ваша конфигурация: сложной или простой. Помимо ручного редактирования файлов, есть множество веб-интерфейсов, позволяющих осуществить большинство манипуляций с настройками системы. При необходимости конфигурация может храниться в базе данных SQL. Так же у Астериска есть интерфейс управления, мониторинга и отладки через встроенную командную строку. Тоже, на мой взгляд, довольно удобный способ.

Астериск умеет:
• обрабатывать звонки;
• факсы (как аналоговые, так и по протоколу T38);
• работать с почтовыми и голосовыми ящиками пользователей;
• выполнять функции контакт-центра;
• организовывать телефонные конференции;
• служить сервером обмена мгновенными сообщениями;
• и многое другое.

Есть возможность интегрировать в звонок видео-поток, перейдя на ступень выше и обеспечив видео-телефонию. Астериск работает с протоколом мгновенных сообщений XMPP/Jabber. В настоящее время актуальна версия Asterisk 1.6. В будущем релизе 1.8, помимо прочих улучшений, планируется добавить интеграцию с различными сервисами календарей (WebCal, iCal, MS Exchange).

По моему убеждению, Астериск вполне подходит для корпоративного рынка в качестве офисной АТС, небольшого контакт-центра, системы взаимодействия с клиентами. Его можно использовать для создания платформы карточной телефонии, а также как шлюз из VoIP-коммуникаций в ТФОП. Для сектора малого бизнеса и домашних пользователей (SOHO) он тоже вполне подходит как сервер телефонии и узел связи с провайдером VoIP.

Астериск распространяется в виде исходных текстов, в бинарном виде (в составе дистрибутивов Линукс) или в виде специализированных дистрибутивов с предустановленной системой. Последние представлены довольно большим списком. Отдельно я бы хотел упомянуть о специализированном дистрибутиве Asterisk@Home, который сейчас переименован в Trixbox. Это довольно старый проект, который вполне может помочь начинающему разобраться с базовым функционалом и запустить свой первый сервер IP-телефонии.

На рынке продуктов VoIP представлены разные компании, с различными стратегиями и подходами. Чем больше их, тем больше выбор у конечного пользователя. Астериск, в данном случае — это выбор в пользу открытого программного обеспечения и гибкого подхода к реализации задач клиента. По моему опыту, на VoIP переходят именно те компании, которым нужно больше сервисов при оптимальных затратах. Астериск, в данном случае — одно из лучших решений.

При написании статьи использовалась информация с сайтов: wikipedia.org, voip-info.org, digium.com, blogs.asterisk.org, asterisk.org.

Orphus system