Asterisk - телефонная станция, где вся бизнес-логика реализована в ПО. Какие преимущества это дает? Оригинал расположен на http://www.pbxware.ru/publications/pbx-in-software.
На написание этого материала вдохновила случайно попавшаяся статья на Computerra о сравнении классического радио устройства и его реализации в программном обеспечении компьютера - технология программно-управляемого радио (Software Defined Radio — SDR), позволяющая изменять эксплуатационные параметры радиооборудования на уровне ПО. Аналогия с АТС кажется очевидной.
Традиционный подход к созданию АТС
Когда-то, не так давно, вычислительные мощности были весьма ограниченным и очень дорогим ресурсом. Поэтому естественным было использование модульной архитектуры телефонных станций. Таким образом, любая АТС состояла из следующих модулей:
- блок питания;
- управляющий блок (коммутация);
- модуль управления телефонами;
- блоки взаимодействия с телефонной сетью (разные физические типы линий);
- дополнительные блоки, реализующие дополнительные функции.
Таким образом, небольшие компании могли позволить себе покупку только основных блоков, в совокупности позволявших осуществлять элементарную коммутацию каналов. Более крупные компании докупали нужный им функционал, такой как голосовая почта, постановка звонков в очередь, интерактивное голосовое меню, запись разговоров и др. Каждый функциональный элемент поставлялся в виде отдельной интерфейсной платы с "вшитой" в нее бизнес-логикой
- настоящий такой микро-компьютер со своим процессором, памятью, шиной, блоками ввода/вывода и тд.
Таким образом, тогдашний уровень развития вычислительной техники (аппаратно реализованная бизнес-логика) определили архитектуру построения телефонных систем.
Однако, такая политика модульной поставки и закрытых интерфейсов позволяла вендорам постоянно получать дополнительную прибыль по следующим видам.
- Периодические апгрейды - был модуль на 12 голосовых ящиков, вышел новый CPU, подешевела память, и производитель выпускал обновленный модуль на 48 голосовых ящиков, и так по каждой функции.
- Услуги по поддержке и обучение - так как система представляла собой "черный ящик", обслуживать его могли только высококвалифицированные инженеры, работающие или прошедшие обучение у производителя.
Таким образом, все невольно были вовлечены в "гонку вооружений", *либо ограничивая себе по использованию дополнительных телефонных функций, либо постоянно увеличивая бюджет на телефонную инфраструктуру. *
Эволюция вычислительной техники
Со временем стоимость вычислительных ресурсов (процессор, память) сильно упала, и мощные высокопроизводительные компьютеры стали доступны практически любой компании. Однако, несмотря на это, "продвинутые" телефонные функции, такие как постановка звонков в очередь, запись разговоров, голосовая почта и другие так и не стали намного дешевле и доступнее для небольших компаний. Причиной этому стали следующие факторы.
- Желание сохранить сделанные вложения. АТС представляет собой уникальный автономный программно-аппаратный комплекс, обладающий интерфейсами к аналоговым и цифровым телефонным сетям, а также специфическими внутренними интерфейсами, на разработку которых были затрачены большие финансовые и человеческие ресурсы. Переход на новые технологии требует больших затрат на научно-исследовательские разработки, разработку нового ПО, освоение нового производства, переобучение сотрудников и клиентов.
- Постоянно растущий спрос и получение сверх-прибылей. Отрасль телекоммуникаций является одной из самых стабильно и быстро растущих отраслей мировой экономики. На протяжение последних нескольких десятков лет происходили процессы глобализации рынков и связей, что усиливало значение и роль коммуникаций. Спрос на продукты связи оказался относительно неэлластичным, что позволило держать цены на прежнем уровне. Производители АТС были больше озабочены увеличением производства, расширением дилерской сети и привлечением клиентов.
- Отсутствие других вариантов. Потребители могли выбирать только между аналогичными продуктами от разных поставщиков, соотношение возможности / стоимость было примерно одинаковым.
Таким образом, исторически сложившиеся тенденции, конъюнктура рынка и отсутствие альтернатив не позволяли малому бизнесу использовать продвинутые возможности больших и дорогих АТС.
Появление открытого ПО Asterisk
В 1999 году американский студент факультета Computer Engineering в Auburn University Марк Спенсер создал компанию Linux Support Services. Столкнувшись с дороговизной АТС систем, Марк, обладая хорошими знаниями языка программирования C и используя свой персональный компьютер под операционной системой Linux, написал свою собственную мини АТС!
Это и стало началом широко известного феномена по имени Астериск, который заставил Марка сдвинуть фокус своего бизнеса с поддержки Linux на поддержку Астериск. Сегодня компания Linux Support Services известна как Digium и занимается доставкой Open Source технологий на рынок телекоммуникаций, становясь опорой всей телеком-индустрии.
Что из себя представляет Asterisk? По сути, компьютер моделирует все узлы телефонной станции программно. Причем делает это с высочайшим качеством.
Например, не надо перепаивать схему или проектировать и изготавливать новое устройство при смене каких-либо требований (только одно это дорогого стоит)
- достаточно поменять программу (если только нужный вид операций в ней не заложен). Мы, по сути, будем получать новую АТС, с новыми функциями при каждой смене программного обеспечения. А если не нравится реализация какой-то штатной функции
- подстройте ее под себя, ведь у Вас есть полный исходный код станции!
Asterisk является в первую очередь IP АТС, работающую на протоколе SIP - промышленном стандарте связи по IP. Однако, Asterisk также позволяет использовать традиционные телефоны и цифровые и аналоговые линии связи, превращаясь в гибридную телефонную систему. Например, при использовании PCI платы TE122 сервер с ПО Asterisk подключается по E1 каналу к провайдеру связи с поддержкой протокола ISDN PRI или ОКС7 (SS7). А при использовании платы TDM800P
с 4-мя модулями для аналоговых телефонов и 2-мя модулями для аналоговых линий к Asterisk подключаются 4 обычных телефона (можно с импульсным набором), и 2 городские телефонные линии.
Так что же такое Asterisk?
>Asterisk IP-PBX - Это Open Source приложение, работающее на Linux и [FreeBSD] и предназначенное для создания решений компьютерной телефонии. Asterisk обладает всеми возможностями классической АТС, поддерживает три [VoIP] протокола (SIP/H323/IAX), предоставляет функции голосовой почты ([VoiceMail]), конференций, интерактивного голосового меню (IVR), центра обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы), а также имеет гибкий и универсальный интерфейс для интеграции с внешними системами обработки данных (AGI). Все это делает Asterisk мощнейшей платформой для организации телекоммуникационного сервиса любого масштаба. Благодаря открытой лицензии, Asterisk активно развивается и поддерживается тысячами людей со всей планеты.
Архитектура Asterisk по сравнению классическими АТС
- монолитная (речь не идет о внутренней архитектуре ПО, тут как раз наоборот
- весь функционал реализуется в виде программных модулей, подключаемых библиотек). Это значит, что все функциональные возможности Asterisk доступны в рамках единой системы, а не разрозненных блоков. Какие преимущества возникают у Asterisk в результате такого подхода?
- Низкая стоимость и доступность, что означает возможность запуска Астериск практически на любом компьютере под управлением ОС Linux, а само ПО можно свободной скачать и использовать в любых целях.
- Полный контроль. Астериск
- это не "черный ящик". Астериск
- это ПО, доступное в исходных кодах, работающее под управлением открытой ОС. Это ПО, установленное и настроенное системным администратором компании. - Уникальная гибкость. Asterisk обладает встроенным средством
написания алгоритмов обработки звонков, в зависимости от огромного числа критериев. Фантазии администратора системы предлагается более двухсот команд и функций
- телефонных примитивов, которые можно комбинировать в любом сочетании, что позволяет штатными средствами реализовать большую часть всех потребностей компании.
- Расширяемость. AGI интерфейс астериска во многом похож на CGI, превративший статическую сеть иногда обновляемых страниц в интернет с динамично генерируемым контентом. Доступность исходного кода позволяет добавить любую функциональную возможность.
- Широкая поддержка со стороны многотысячного сообщества пользователей и разработчиков Астериск со всего мира.
Asterisk - это не единственное открытое решение телефонии. Существуют также такие продукты, как [OpenSER], Yate, [FreeSWITCH], но о них в других публикациях.
Дополнительная информация
- Сообщество пользователей Asterisk в рунете - asterisk-support.ru
- База знаний по Asterisk - asteriskpbx.ru
- Информация об Asterisk, IP телефонии в целом - voip-info.org и русское зеркало voip.rus.net.
- Домашнаяя страница Asterisk (можно скачать и "потрогать") - asterisk.org