0,0
рейтинг
20 июня 2011 в 02:26

Разработка → Обзор свободно доступных и бесплатных IP АТС (Asterisk, FreeSWITCH, SipXecs, Yate)

Обзор свободно доступных и бесплатных IP АТС: Asterisk, FreeSWITCH, SipXecs, Yate. Приводятся преимущества и недостатки, сравнительный анализ функциональности и сфер применения. Делается вывод о том, что все продукты можно сочетать друг с другом.



Некоторое время назад ко мне обратился товарищ из «Открытых Систем» и попросил сделать обзор открытых IP АТС. Так как он обратился не только ко мне, а еще и к другим экспертам IP телефонии, то в результате в журнал попала компиляция, в которой мало осталось от моего оригинального обзора. Публикую его целиком на Хабре.

Вначале будет теоретическая вставка, для тех, кто не совсем в теме. Если будет скучно — просто пропустите ее! Приятного чтения! А чтобы лучше читалось, главы сопровождаются музыкальными подарками (настоятельно рекомендую наушники :-)

Поехали!

Теория

PBX (Private Branch Exhange) — английский термин, обозначающий офисную телефонную станцию, которая обеспечивает установление, поддержание и разрыв соединений между аппаратами, то есть коммутацию. PBX позволяет разделять ограниченные ресурсы (городские линии и номера) между неограниченным числом внутренних пользователей, при помощи таких телефонных функций, как внутренний номерной план, перевод звонков, постановка на удержание, и других.

Именно поэтому PBX система необходима любой организации — она позволяет эффективно организовать телефонную связь на предприятии (ну, пока еще нужна ;-)



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

В настоящее время только два протокола IP телефонии получили широкое распространение — H.323 и SIP.

Протокол, а более правильно, стёк протоколов H.323, был разработан международным союзом электросвязи (англ. International Telecommunication Union, ITU) — международной организацией, определяющей рекомендации в области телекоммуникаций и радио. Целью создания протокола была необходимость проведения аудио и видеоконференций по современным телекоммуникационным сетям, включая цифровые и IP сети.

SIP (англ. Session Initiation Protocol — протокол установления сеанса) — стандарт на способ установления и завершения пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым (видео- и аудиоконференции, мгновенные сообщения, онлайн-игры, и пр.). Разработкой протокола занималась Специальная Комиссия Интернет-разработок (Internet Engineering Task Force, IETF) — открытое международное сообщество проектировщиков, учёных, сетевых операторов и провайдеров, которое занимается развитием протоколов и архитектуры Интернета.

Протокол H.323 обладает большим стандартным набором возможностей по работе с видео конференциями (его создавали телефонисты, а интернет — одна из его рабочих сред), а протокол SIP больше приспособлен к работе в сетях TCP/IP, и более универсален (его создавали «интернетчики», и голос и видео — всего лишь одни из типов медиа контента).

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

Таким образом, можно с уверенностью сделать вывод, что современные IP PBX системы работают на базе протокола IP телефонии SIP.

Рассмотрим архитектуру SIP подробнее.

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

Основным функциональным элементом, реализующим функции управления соединением, является абонентский терминал. Остальные элементы сети могут отвечать за маршрутизацию вызовов, а также предоставляют дополнительные сервисы. Перечислим основные элементы:
  • Терминал. Когда клиент и сервер реализованы в оконечном оборудовании и взаимодействуют непосредственно с пользователем, они называются пользовательским агентским клиентом — User Agent Client (UAC), и пользовательским агентским сервером — User Agent Server (UAS). Если в устройстве присутствуют и UAC, и UAS, то оно называется пользовательским агентом — User Agent (UA), а по своей сути представляет собой терминальное оборудование SIP. Примеры UA — аппаратный или программный SIP телефон, SIP адаптер.
  • Прокси-сервер (от англ. proxy — «представитель») представляет интересы пользователя в сети. Он принимает запросы, обрабатывает их и выполняет соответствующие действия. Прокси-сервер также состоит из клиентской и серверной частей, поэтому может принимать вызовы, инициировать запросы и возвращать ответы. Предусмотрено два типа прокси-серверов:
    с сохранением состояний (stateful). Такой сервер хранит в своей памяти все полученные запросы и связанные с ним новые сформированные запросы до окончания транзакции.
    без сохранения состояний(stateless). Такой сервер просто обрабатывает получаемые запросы и на его базе реализовать сложные, интеллектуальные услуги невозможно.
  • Сервер переадресации — используется для определения текущего местоположения пользователя. Сервер переадресации не терминирует вызовы и не инициирует собственные запросы, а только сообщает адрес необходимого терминала или прокси-сервера. Для этих целей он взаимодействует с сервером определения местоположения. Для осуществления соединения пользователь может не использовать сервер переадресации, если он сам знает текущий адрес требуемого пользователя.
    Сервер определения местоположения пользователей. Пользователь может перемещаться в пределах сети SIP, поэтому существует механизм определения его местоположения в текущий момент времени. Сервер определения местоположения пользователей служит для хранения текущего адреса пользователя и представляет собой базу данных адресной информации.

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

Одним из таких вспомогательных протоколов является SDP — Session Description Protocol, предназначенный для описания сессии передачи потоковых данных, включая телефонию, интернет-радио, приложения мультимедиа, и поточные приложения. SDP протокол описывает формат заголовков и полей, в которых SIP клиенты и серверы перечисляют свои сессионные возможности (например, поддерживаемые алгоритмы сжатия — кодеки).

Вторым необходимым протоколом является RTP (англ. Real-time Transport Protocol), который используется для непосредственной передачи трафика реального времени. Протокол RTP переносит в своем заголовке данные, необходимые для восстановления голоса или видеоизображения в приемном узле, а также данные о типе кодирования информации (JPEG, MPEG и т. п.). В заголовке данного протокола, в частности, передаются временная метка и номер пакета. Эти параметры позволяют при минимальных задержках определить порядок и момент декодирования каждого пакета, а также интерполировать потерянные пакеты. В качестве нижележащего протокола транспортного уровня, как правило, используется протокол UDP. Установление и разрыв соединения не входит в список возможностей RTP, такие действия выполняются сигнальным протоколом SIP.

Таким образом, работа SIP PBX основывается на трех основных протоколах: SIP, SDP, RTP.

Есть еще протоколы, реализующие дополнительную функциональность, например, SIP TLS и Secure RTP, добавляющие шифрование сигнализации и медиа потоков, и другие, однако основными все же являются SIP, SDP и RTP.

Однако, если SIP протокол не определяет никаких высокоуровневых функций и сервисов, тогда что же такое IP PBX на базе протокола SIP?

Что считать SIP АТС?

В настоящее время существует достаточно большое количество телекоммуникационных программных продуктов, которые отличаются друг от друга архитектурой, целевыми функциями, поддерживаемыми протоколами, популярностью, и другими параметрами. Чтобы понять, являются ли они системой IP PBX, надо рассмотреть их в соответствии со следующими критериями:
  • Поддерживает ли система функции SIP регистратора? IP PBX должна знать о местонахождении своих пользователей, поэтому должна реализовывать функции SIP регистратора.
  • Поддерживает ли система функции SIP прокси? IP PBX должна заниматься установкой соединений между своими пользователями, а также поддерживать информацию о состоянии этих соединений.
  • Поддерживает ли система механизмы контроля над установленной SIP сессией? IP PBX должна иметь возможность прервать текущую сессию по причине поступающего более важного звонка, или для освобождения занятой линии, нужной руководителю, В архитектуре SIP такие функции выполняет так называемый Back-to-back User Agent (B2BUA). При использовании B2BU связь устанавливается не непосредственно между двумя пользователями, а между каждым из пользователей и B2BUA, и один звонок как бы превращается в две полностью независимые SIP сессии.
  • Поддерживает ли система функции проксирования RTP трафика? IP PBX должна пропускать через себя медиа потоки, например, в целях записи разговоров.
  • Какие дополнительные приложения доступны пользователям? Традиционно PBX системы поддерживают такие функции, как голосовая почта, конференц-связь, музыка на ожидании, статистика звонков и другие.

Целью моей статьи является обзор бесплатных IP PBX систем, распространяемых в исходном коде, которые я и буду сравнивать в соответствии с вышеперечисленными критериями. Наиболее популярными и зрелыми IP PBX системами с открытым кодом сегодня являются следующие:
  • Asterisk
  • FreeSWITCH
  • SipXecs
  • Yate

Рассмотрим их подробнее. Но сперва запустим следующий мега-трек!



Asterisk

Проект Asterisk был инициирован в 1999 году Марком Спенсером, владельцем и единственным сотрудником американской компании Linux Support Services.

Марк занимался системным администрированием и коммерческой поддержкой Linux, а также программировал на C.

Один из клиентов Марка обратился к нему с вопросом обеспечения офисной телефонии, и Марк Обнаружил, что офисные АТС стоят очень много денег. И решил написать свою АТС на базе Linux. Так родился проект под названием Asterisk.

Через некоторое время Марк основал компанию Digium, которая стала производить платы сопряжения Asterisk с традиционными телефонными сетями (через аналоговые и цифровые порты).

Вокруг Asterisk образовалось большое сообщество пользователей и разработчиков, проект стал активно развиваться.

В настоящее время Asterisk является самой популярной открытой IP АТС в мире, занимая почти 85% «рынка» open source PBX (а в целом открытые АТС занимают порядка 18% рынка PBX в USA — Открытые АТС занимают 18% рынка телефонии Северной Америки).

Название для Asterisk (от английского «звездочка», обозначение знака *) выбрали очень удачное. В IT звездочка обозначает замещение любого символа, или неограниченное количество символов. Даже штатные возможности Asterisk вызывают удивление. Модульная архитектура Asterisk позволяет легко подключать в коммутационное поле любую бизнес-логику, написанную на практически любом языке программирования, или реализованную на собственном языке диалплана Asterisk.
Приведем сокращенный список функциональных возможностей Asterisk:
  • Поддерживаются как протоколы IP телефонии, так и традиционные линии связи. В сервер с Asterisk можно вставить PCI платы Digium с аналоговыми и/или цифровыми портами в нужном количестве и сочетании.
  • Поддерживаются все базовые и расширенные функции АТС: голосовое меню, запись разговоров, статистика звонков, музыка на удержании, голосовая почта, постановка звонков в очередь и распределение по операторам (функции кол-центра), и многие другие.
  • Напрямую поддерживается Skype (драйвер канала chan_skype от Digium), также есть небольшое WEB приложение, позволяющее вызывать Skype пользователей с кнопочных телефонов через короткие номера из записной книжки
  • Поддерживается видео связь.
  • Существуют приложения по распознаванию голоса и генерации речи.
  • В последних версиях Asterisk поддерживается шифрование разговоров.
  • Asterisk обладает простыми и хорошо документированными интерфейсами для интеграции с другими системами (AGI и AMI), что позволяет легко встраивать коммуникации в бизнес-процессы и бизнес-приложения.
  • Существует большое количество всевозможных графических средств администрирования Asterisk, как платных, так и бесплатных, среди которых наиболее популярен бесплатный WEB интерфейс FreePBX. Также есть готовые дистрибутивы, позволяющие развернуть на обычном PC сервер IP PBX за считанные минуты. Наиболее популярными бесплатными дистрибутивами Asterisk являются TrixBox, Elastix. Следует сказать, что компания Digium, автор Asterisk, предлагает также коммерческое решение на базе Asterisk — SwitchVox, которое представляет из себя комплексное решение унифицированных коммуникаций. Помимо SwitchVox существует еще несколько десятков как коммерческих, так и открытых систем на базе Asterisk.
  • Наконец, вокруг Asterisk собрано очень большое сообщество пользователей, разработчиков и интеграторов, которые помогают друг другу познавать и использовать все многообразие возможностей Asterisk. В рунете самое большое сообщество можно найти на сайте asterisk-support.ru, который был создан в 2004 году в целях поддержки сообщества силами самого сообщества. Также совсем недавно, в январе этого года, был запущен проект asteriskpeople.ru, на котором представлена карта сообщества Астерискеров.

В настоящее время Asterisk продолжает развиваться, еще более стремительно, чем раньше. Только за 2010 год число пользователей Asterisk удвоилось.

Если еще несколько лет назад коммерческую поддержку или индивидуальную разработку под Asterisk можно было получить только в нескольких компаниях, то сегодня десятки компаний со всех регионов России оказывают услуги технической поддержки и системной интеграции основанных на Asterisk решениях, что полностью устранило риск использования свободного ПО в бизнесе — любая компания за разумные деньги может быстро получить гарантированную помощь специалистов по Asterisk высшего класса, некоторые из которых входят в первые десятки мировых Asterisk разработчиков.

Обилие возможностей Asterisk и активное развитие также является и минусом этого продукта — новичкам сложно быстро освоить большой объем информации. Также самые «свежие» версии Asterisk могут испытывать проблемы со стабильностью в виду большого числа добавлений и изменений.

В завершение обзора Asterisk следует сказать, что Asterisk — это решение IP PBX для офиса, хотя многие операторы связи пытаются использовать систему для оказания различных сервисов для своих клиентов. Но Asterisk для этого не очень подходит, так как не очень хорошо масштабируется.

FreeSWITCH

FreeSWITCH — это программный коммутатор, создание которого было инициировано одним из бывших разработчиков Asterisk — Энтони Минессейлом (Anthony Minessale) в 2006 году. После многочисленных попыток использования Asterisk под высокой нагрузкой, Энтони высказал ряд замечаний к базовой архитектуре системы, и предложил ее сменить. Однако, автор Asterisk — Марк Спенсер, отказался менять ядро. Поэтому Энтони вышел из состава разработчиков Asterisk и создал «с нуля» свой продукт, который он назвал FreeSWITCH.

При разработке архитектуры FreeSWITCH авторами были учтены все проблемы существующих открытых программных продуктов для IP телефонии.

Поэтому одними из главных достоинств нового продукта стали стабильность работы и масштабируемость, а также кросс-платформенность — FreeSWITCH работает под управлением как Linux, так и Windows.

Другой особенностью FreeSWITCH является использование SIP стека sofia-sip от Nokia, который считается самой лучшей открытой реализацией SIP протокола, распространяемой в исходном коде. В Asterisk же chan_sip реализован с неполным соблюдением страндартов. SIP является основным протоколом работы FreeSWITCH, хотя также поддерживаются и драйверы PCI плат для интеграции с традиционной телефонией, а также другие протоколы IP телефонии.

FreeSWITCH может использоваться как SIP прокси и SIP регистратор, как Session Border Controller (SBC), транскодирующий Back-to-back User Agent (B2BUA), как сервер конференций или голосовой почты.

Также FreeSWITCH поддерживает и многие функции IP PBX, такие как перевод звонка, перехват, парковка вызова, запись разговоров, прослушивание и другие.

Однако, на сегодняшний день список приложений IP PBX, доступный для FreeSWITCH, проигрывает аналогичному в Asterisk.

Основным интерфейсом конфигурирования FreeSWITCH является текстовые файлы в формате XML, что затрудняет администрирование этой системы, тогда как в Asterisk применяются хорошо читаемые и удобные .ini файлы в формате секция / опция.

Для FreeSWITCH отсутствуют готовые к использованию графические интерфейсы по управлению, что также затрудняет его использование. А существующие GUI для FreeSWITCH (WikiPBX, FusionPBX, blue.box) далеки по функциональности от того же FreePBX для Asterisk.

Тем не менее, FreeSWITCH активно развивается. Некоторые эксперты открытых программных продуктов для телекоммуникаций называют FreeSWITCH «Asterisk killer app», другие утверждают (и я в том числе!), что для обоих продуктов есть место на рынке, так как у каждого из них своя уникальная специфика.

SipXecs

В основу продукта SipXecs заложен исходный код ПО SipXpbx, опубликованный в свободный доступ в в 2004 году компанией PingTel.

Следует сказать, что специалистами PingTel был создан один из самых первых продуктов, при помощи которых успешно взаимодействовали SIP устройства от разных производителей, и их по праву можно считать пионерами «SIPостроения». С тех пор SipXecs считается самой полной и правильной реализацией SIP RFC.

После старта SipXpbx, компания PingTel продолжала развивать свой коммерческий продукт, SIPxchange, периодически выкладывая в открытый доступ различные части кода и добавляя их в SipXpbx.

По мере того, как к открытому проекту подключались активные разработчики, стало сложным поддерживать два разных продукта, так как текущая лицензионная политика не разрешала включать открытый код, написанный энтузиастами, в состав коммерческого продукта. Для решения этой проблемы в 2007 году, PingTel меняет структуру проектов, и выкладывает остальную часть закрытого кода в общий доступ, объединяя его с SipXpbx. Новый проект получил название SipXecs.

В 2008 году PingTel поглощается компанией Nortel. Nortel уже занималась поставкой своим клиентам продукта SCS (Software Communications System), основанного на исходном коде SipXecs. Специалисты Nortel внесли большой вклад как в развитие своего коммерческого продукта SCS, так и в открытый проект SipXecs.

В 2009 году Nortel объявила себя банкротом, и права на коммерческий продукт SCS перешли к Avaya. В марте 2010 года Avaya прекратила добавление своих наработок в исходный код SipXecs. Тогда сообщество пользователей SipXecs, включая некоторых бывших сотрудников PingTel, объединилось под крышей свеже созданной компании eZuce, которая в настоящее время и занимается поддержкой и развитием проекта.

ПО SipXecs написано на языке программирования C++ и Java (на Java, в частности написан его SIP стэк с использованием библиотеки Jain SIP) и работает на ОС Linux.

Это единственная открытая IP PBX система, в ядро которой с самого начала был включен WEB интерфейс по управлению. Если Asterisk позиционируется как голосовая платформа, то разработчики SipXecs считают свой продукт «коробочным» решением унифицированных коммуникаций!

Богатый арсенал Asterisk находится в большом числе конфигурационных файлов всевозможных модулей, а также во встроенной командной строке по управлению (CLI). SipXecs управляется через WEB интерфейс, и в нем возможно сделать только то, что предусмотрено разработчиками.

Asterisk поддерживает много разнообразных телефонных интерфейсов — аналоговых, цифровых, несколько протоколов IP телефонии. SipXecs поддерживает только SIP, являясь чистым SIP решением. Весь телефонный функционал реализован в рамках спецификации протокола SIP, а также разнесен на полностью независимые компоненты, взаимодействующие по протоколам SIP / HTTP / XML-RPC, и которые могут работать как на одном, так и на разных серверах, что, кстати говоря, на новом уровне обеспечивает надежность и масштабируемость.

Если Asterisk — «многопротокольная» система, принимающая звонки из разных типов каналов, и преобразующая их в свой внутренний формат в целях обработки и коммутации (замена старым АТС), то SipXecs — это SIP прокси, который занимается маршрутизацией SIP транзакций, не пропуская через себя медиа-потоки, а замыкая их напрямую между агентскими устройствами (IP телефонами).

Однако, из сильных строн пакета SipXecs вытекают и все его слабости. Так как не проксируются медиа-потоки, невозможно реализовать некоторые важные функции PBX, например, запись разговоров. Также, возникает проблема в том случае, когда пользователь находится внутри сети с частными IP адресами — проблема NAT. Также невозможно реализовать транскодинг там, где это необходимо. Однако, этим проблемы в последних версиях SipXecs решаются при помощи пакета FreeSWITCH, который органично вписался в архитектуру SipXecs, выполняя такие функции, как сервер конференц-связи и IVR сервер.

Yate

Проект Yet Another Telephone Engine (Yate) был начат в 2004 году. Поддерживаемые операционные системы: Linux, BSD, Windows. Написан Yate на C++. Yate не использует внешних SIP библиотек, а реализует SIP стек самостоятельно.

Yate — это софтсвитч, который содержит также многие PBX функции, в частности:
  • перевод, удержание и парковку вызова;
  • музыку на ожидании;
  • конференц-связь;
  • очереди
  • IVR
  • статистику звонков

Однако, Yate в первую очередь — это мультипротокольный коммутатор с очень гибкими правилами маршрутизации. Yate хорошо поддерживает такие протоколы IP телефонии, как H323, IAX2, MGCP, различные уровни SS7 (MTP2, SIGTRAN), драйвера потоковых цифровых плат разных производителей.

Также Yate включает в себя механизм кластеризации, который позволяет стоить хорошо масштабируемые решения.

Архитектурно Yate использует модель микро ядра и шины сообщений, а для маршрутизации сообщений используются регулярные выражения с возможностью размещения любых сообщений на шине. Такая архитектура делает простым добавление новых модулей, не затрагивая существующего кода. Yate — самый настоящий телефонный низкоуровневый двигатель (engine).

Существует специальный свободный дистрибутив с Yate и WEB интерфейсом по управлению – FreeSentral, включающий в себя интерфейс пользователя, где он управляет своими настройками, такими как переадресация, голосовая почта, записная книга, а также может просматривать статистику своих звонков.

Среди всех рассмотренных продуктов Yate обладает наименьшим функционалом, однако то, что Yate умеет делать, делает очень хорошо и стабильно. Еще одним недостатком является недостаточная документация.

Наиболее частое применение Yate — конвертер H323-SIP сигнализации.

Заключение

Выбрать IP PBX систему для своей организации среди открытых продуктов весьма непросто.

Ситуацию ухудшает то, что все они в принципе могут работать одновременно.

По мнению автора этой статьи, следует не пожалеть времени, и самостоятельно протестировать Asterisk, FreeSWITCH и SipXecs, и выбрать для себя продукт, подходящий больше.

А может, использовать их все. Ничто не мешает использовать SipXecs в качестве опорной IP-PBX, на которой регистрируются пользователи, FreeSWITCH в качестве сервера аудио конференций, Yate в качестве SIP-H323 транслятора для подключения провайдеров связи по H323 протоколу, так как единственная реализация H323 в Yate намного лучше любой из 3-х реализаций H323 в Asterisk, и Asterisk в качестве медиа-шлюза с потоковыми платами Digium или Sangoma, а также в качестве сервера дополнительных приложений, например, селекторной видео связи.

Добро пожаловать в мир открытых и бесплатных телефонных решений!

А тем, кто дочитал до конца — музыкальный бонус! Enjoy!
Литницкий Максим @litnimax
карма
86,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (68)

  • 0
    Большое спасибо за статью.

    >Asterisk — это решение IP PBX для офиса, хотя многие операторы связи пытаются использовать систему для оказания различных сервисов для своих клиентов

    У меня вот как раз «тот случай». У кого-нибудь есть инфа, когда ждать граблей? Иными словами, сколько девайсов (peers) можно подцепить к asterisk, и сколько одновременных звонков (g711) через него можно пропустить?
    • 0
      Bидел примеры по 1000 пользователей, но от 100 нужно думать о втором сервере как горячей замене.
    • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Я регулярно натыкался на проблемы Т.38 (передача факсов), её могут потребовать ваши клиенты. К сожалению, руки ещё не дошли посмотреть что в последних 1.6 и 1.8 релизах с Т.38

      Так же, возможно из-за недостатка времени периодически возникают проблемы с передачей dtmf в сопряжениях с Cisco CCM и MERA

      Как правильно уже комментируют — нагрузка может быть и более 1000 звонков, но тут уже желательно дописывать свои скрипты для управления всем этим хозяйством.
      • 0
        Т.38 решаются установкой сборки астериска 1.4.39 под названием Attrafax, в которой факсы весьма неплохо допилены
    • 0
      Проблема не в том, что нагрузку не держит. А в том, насколько надежно он ее держит. В Asterisk используется механизм блокировок, который начинает давать сбои при высокой конкуренции. Возникает так называемая взаимная блокировка, deadlock.
      www.google.ru/search?q=asterisk+deadlock

      Также Asterisk не извлекает никакого преимущества от многоядерности.

      Еще у него часто проблемы с утечкой памяти. Tuning Asterisk для операторского решения — высший пилотаж :-))

      Но несмотря на все свои недостатки, Asterisk такой вкусный!!! Мы сейчас активно изучаем коммерческую систему от Digium — SwitchVox, закрытый Asterisk. Плюемся… :-) На Asterisk'e бы уже 10 раз решили ту или иную задачу.

      Asterisk — это самый навороченный телефонный Lego конструктор, другим до него далеко.
      • 0
        Я проблему утечек и прочего решил просто. Не обновляю версию, если она не течет и ничего более свежего не требуется. Пока работает уже N лет :)
  • +2
    Спасибо за статью.

    P.S: У вас хороший музыкальный вкус, понравилась это идея :)
    • +1
      Если понравилась музыка, заходите в наш блог — asteriskblog.ru
      Там уже много музыки ;-)
  • +1
    Спасибо за статью!
    Вопрос
    другие утверждают (и я в том числе!), что для обоих продуктов есть место на рынке, так как у каждого из них своя уникальная специфика.

    Какая уникальная специфика есть у обоих продуктов. В каких случаях какой лучше использовать? Не совсем уловил из статьи.

    • 0
      Asterisk подойдёт для более простых задач, небольшого уровня.
      А если вам нужно создать провайдера или калл-центр с тысячами операторов, то лучше использовать FreeSWITCH.
      Наверное это имел ввиду автор :)
      • 0
        P.S.: Asterisk для сложных задач так же хорошо подойдёт. К сожалению никогда на практике не приходилось делать что-то сложное с Asterisk, а с FreeSWITCH знаком исключительно из этой статьи.
  • +1
    Отличное решение, что бы получить моментальный плюс статье от читателей, что только после клуба :)

    P.S. Как же на Хабре все-таки не хватает кнопки «прочитать как-нибудь позже»…
    • +2
      P.S. Как же на Хабре все-таки не хватает кнопки «прочитать как-нибудь позже»…

      «Добавить в избранное»?
      • 0
        Плюс сделать личный тег «toread» через «Изменить свои метки»
      • +2
        Ну да, только вот забываешь зайти в это самое избранное :)
  • +1
    На последнем видео, где корабль в шторм — кадры из фильма «Океаны» — http://ru.wikipedia.org/wiki/Океаны_(фильм), хороший фильм.
    • 0
      Супер, я не знал! Спасибо! А трек Don't surrender я смотрел уже раз 200.
  • +7
    Статья интересная, спасибо.
    Идея классная, тоже понравилось, и ко времени пришлась, приятно ночью вот так почитать )
    Об одном прошу хабровчан: не допустить, чтоб на Хабре теперь начали появляться топики со звуковым оформлением аля «Чумачечная весна»
    • –1
      Когда пишешь текст, рискуешь написать УГ, и получить кучу минусов к карме. Когда помимо текста, ты размещаешь еще и музыку, рискуешь дважды — мало ли кому не понравится.
      Так и было. Через минуту после публикации сразу получил -1. «Что ты делаешь, зараза!», подумал я, «неужели из-за транса!?»
      Еще через 3 минуты пост уже получил +2. «Все нормально. Поглядим, что завтра будет».
      А утром было супер! Спасибо.
  • 0
    Спасибо! Задали тон работы на сегодня )))
    • –2
      Самое приятное, что только можно было услышать! Отныне, все свои посты буду сопровождать сливками вокал транса.
  • +1
    Использовал Yate.
    Пытался организовать «мини» Softswich на спецефической плате производства моей компании (в результате планы изменились и релиза не состоялось).
    Что могу сказать про Yate:
    1. Документация есть на сайте, но мне её не хватало. Чтобы настроить конфиги я вдоль и поперёк ковырял исходники.
    2. Исходники это сказка на С++, читаются на одном дыхании — четко, логично, локонично, красиво. Я бы рекомендовал их читать как пример хорошего кода на С++.
    3. По функционалу нареканий не было, мне нужны били только SIP и SS7.
    4. Оперативная правка багов. Однажды заметил DeadLock — подробно описал проблему и пути решения и уже собирался отправить баг-репорт, как нашел исправление ошибки, обновишись до текущей версии.

    В целом мне Yate очень понравилась и в планах когда будет много-много свободного времени поизучать её подробнее.

    Пэ.Эс. Кстати, куратор проекта женщина Diana Cionoiu, кажется сотрудница какого-то Румынского университета.
    • 0
      Все верно. Yate очень качественный продукт, и очень мало документированный. А Диана — ну очень серьезная девушка из Румынии.
  • +8
    У читателей может быть совершенно другой музыкальный вкус и они могут не согласиться с Вашим выбором «мега» треков. Поэтому в будущем лучше бы воздержаться от такого рода революционных вставок, которые не относятся к сути статьи. На хабре они кажутся неуместными и лишними.
    • 0
      А у некоторых и совпадает =). В целом идея, как и статья, хороша, но злоупотреблять ей не следует
    • –4
      > У читателей может быть совершенно другой музыкальный вкус и они могут не согласиться с Вашим выбором «мега» треков
      Рискуя слить всю карму, я все же буду делиться лучшими музыкальными композициями в стиле Vocal Trance и Chillout Dreams, ведь это самое прогрессивное и мелодичное музыкальное направление современности.

      > На хабре они кажутся неуместными и лишними.
      А многим так не показалось. У нас есть блог, где каждый пост сопровождается треком. Это его фича :-)
      asteriskblog.ru.

      Tranceforming the world!
      • +1
        Вы бы лучше разбавили текст какими-нибудь изображениями. График рынка, возможная архитектура, приложение какое-н и пр. Хотя, «фичи» одновременно с какими-либо картинками скорее всего перегрузят пост и он будет тяжелее восприниматься.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Вот мне интресно есть смысл брать sfa. Может они все таки продлят его действие. И какие есть альтернативы кросе Skype connect.
      • 0
        Да его действия никто не отменял. Просто продажи и поддержка прекращается. Дигиумовского кода там не много, по этому, кмк, поддерживать своими руками и портировать на 1.10 большого труда не составит.
        • 0
          Тоесть после 2013, работать будет, но поддержки не будет?
          • 0
            Дигиум в своей рассылке написал:

            Skype for Asterisk will not be available for sale or activation after July 26, 2011.

            Skype for Asterisk was developed by Digium in cooperation with Skype. It includes proprietary software from Skype that allows Asterisk to join the Skype network as a native client. Skype has decided not to renew the agreement that permits us to package this proprietary software. Therefore Skype for Asterisk sales and activations will cease on July 26, 2011.

            This change should not affect any existing users of Skype for Asterisk. Representatives of Skype have assured us that they will continue to support and maintain the Skype for Asterisk software for a period of two years thereafter, as specified in the agreement with Digium. We expect that users of Skype for Asterisk will be able to continue using their Asterisk systems on the Skype network until at least July 26, 2013. Skype may extend this at their discretion.

            Skype for Asterisk remains for sale and activation until July 26, 2011. Please complete any purchases and activations before that date.

            Thank you for your business.

            То есть, продажи продажи завершаться в конце июля, поддержка — через два года. Работоспособность кликнта может продолжаться — все зависит от желения Скайп.
    • 0
      Еще два года будет поддерживаться. А еще FreeSWITCH работает через skype клиент. Архитектурно криво, но работает.
  • +1
    интересно было бы еще в обзор openSER (KAMAILIO) включить.
    • 0
      Производные SER не являются IP АТС. Я же не зря критерии привел.
      • 0
        а по какому критерию? отсутствию RTP proxy? ну sipxecs же рассматривали…
        • +1
          Конечно, OpenSER, будучи довольно нехилым конструктором, позволяет собрать какой-то PBX-образный функционал. Однако, среди модулей OpenSER, вы вряд ли найдете модуль для поддержки Music on hold.

          В свою очередь, SipX хоть и чисто сигнальный SIP-коммутатор, но, прежде всего, все-таки PBX.
          SipX конфигурируется через web-интерфейс, в котором все очень сильно «заточено» на PBX-функции: hunt-groups, call parking, music on hold и т.п.
          Что интересно, в отличие от медиа-ориентированных VoIP-серверов, в SipX сделана попытка реализовать все PBX-функции пользуясь только SIP-сигнализацией.
          Видимо, предполагается, что вы будете использовать достаточно умные IP-телефоны и шлюзы, которые поддерживают различные расширения SIP и IETF draft-ы.

          К слову, в SipX довольно много внимания уделяется управлению железками, чтобы всю сеть можно было настраивать из единого веб-интерфейса. Разумеется, это работает только с определенным оборудованием.
  • 0
    Оригинально статья написана (:
    спасибо, интересно было почитать: р
  • 0
    >Основным интерфейсом конфигурирования FreeSWITCH является текстовые файлы в формате XML, что >затрудняет администрирование этой системы, тогда как в Asterisk применяются хорошо читаемые и удобные .ini >файлы в формате секция / опция.
    У FreeSWITCH есть модуль mod_dialplan_asterisk, который позволяет создавать конфигурацию диалплана в стиле Asterisk.
    wiki.freeswitch.org/wiki/Mod_dialplan_asterisk
    • 0
      Все мои знакомые пользователи FS не используют его.
  • 0
    Вродебы, астериск вполне кластеризуется.
    • 0
      Из всех круче всех кластеризуется SipXecs.
      Asterisk'и да, тоже неплохо так кластеризуются через Real Time config.
      • 0
        хм… разве это единственный способ масштабирования?
  • +1
    Классный обзор. Читать было интересно, познавательно и еще и с перерывами на релакс )))
    Удачи автору!
    • 0
      Спасибо, очень приятно!
      И Вам удачи!
      Stay tuned!
  • 0
    > Протокол, а более правильно, стёк протоколов H.323,
    впервые вижу такое написание — если б не было специально выделено, подумал бы, что опечатка

    Если говорить о правильности, стек протоколов — это (конкретная) реализация, а некое множество взаимодействующих протоколов — семейство, suite по-английски.
    • 0
      А я бы поспорил. И как пример привел бы bit.ly/mPPxXc
      Стек — это иерархия. В H323 тоже можно выстроить иерархию, что выше, что ниже.
      Но стек — это никак не конкретная реализация.
      Хотя семейство — более подходящее слово, спасибо.
      • 0
        Тем не менее, разные реализации — это разные иерархии — разные стеки (т.к. содержат разные версии и подмножества протоколов). А всё множество разработанных протоколов (чаще всего) не получится выстроить в стройную иерархию, т.к., опять же, существуют разные версии, и использование одних протоколов может исключать другие.
        Стеком обычно называют некий «срез» — это будет реальная, планируемая или обобщённая реализация.
  • 0
    А что лучше использовать для конвертации кодеков?
    • 0
      Задам встречный вопрос — а что Вы хотите сделать? Кодеки автоматически конвертируются.
      • 0
        Что значит автоматически? У меня, например, есть g711 домен, локальная телефония. И есть допофисы, до которых я хочу кидать g729 и не хочу тратить dsp (или у меня их нет, например) на транскодинг. Что из описанного лучше использовать для подобного?
  • 0
    Из хорошего могу сказать, что я не нашел (или просто не в ту позу ставил?) ни одного бриджа Sip<=>H323 с поддержкой видео.
    Ни YATE, ни freeswitch, ни (тем более) asterisk с задачей не справились.
    • 0
      В свое время получалось настроить yate как прокси для астериска по рецепту с офсайта. Сейчас просто стало удобнее использовать еще один астериск 1.4 в виде умного прокси.
      • 0
        Это гоняет только звук. Видео идёт лесом :(
  • 0
    Смутное ощущение, что я уже читал эту статью на каком-то из астериск-ресурсов. Могло ли это быть?
    Много описано про реализацию SIP, но ничего про варианты реализации возможности IVR, а это как вы сами описали один из признаков PBX.
    Поддержка VoiceXML (стандарт индустрии)? В Астериске криво и за деньги через VXI*, а у остальных?
    Поддержка MRCP? Астериск и Фрисвитч через UniMRCP, а остальные?
    Графические инструменты для построения диалпланов? Для Астериска знаю несколько, работал с Safi, но в Рунете они как-то непопулярны. Почему? Вы предложите, например, спецам по Avaya отказаться от Dialog Designer или спецам по GVP от Genesys Studio, не поймут:) )
    • 0
      > Смутное ощущение, что я уже читал эту статью на каком-то из астериск-ресурсов. Могло ли это быть?
      Кстати да. Если это компиляция, то ссылки на используемые ресурсы были бы очень кстати.
      • 0
        > Смутное ощущение, что я уже читал эту статью на каком-то из астериск-ресурсов. Могло ли это быть?
        В этом материале каждое слово написано лично мной :-) Материал раньше был размещен на сайте pbxware.ru в разделе Публикации, но пользы от размещения там мало. Тут намного больше тех, кому это может быть интересно.
    • 0
      А подскажите что из конфигурялок есть, приличнее FreePBX?
      (FreePBX считаю неприличным, потомучто при всём разнообразии функций он люто насаждает свою «инфраструктуру» и ограничивает доступ к базовому функционалу, в наглую переписывает конфиги, и вообще на пхп написан)
      • 0
        >и вообще на пхп написан

        Да, это страшный грех!
  • +1
    Астериск
    Его архитерктура безумна, как улицы Р'льеха.
    Шизоидный бейсик-подобный конфиг с номерами строк, макросами и операторами навроде GoToIf и GoSub.
    Да-да! Конфиг с операторами GOTO!
    Чтобы лучше выразить масштабы этого кошмара, добавлю, что эти операторы GOTO умеют передавать управление сразу в двух измерениях.

    Наверное, кто-то мне скажет, что я отстал от жизни, и теперь в Астерике можно использовать Lua.
    «Купите селедку и крутите мозги ей», — отвечу я.
    Да, через 10 лет до разработчиков дошло, что программировать бизнес-логику на чудо-макросах и GOTO не очень удобно.
    А теперь пойдите и найдите хоть один хоть сколько-нибудь рабочий конфиг без этих самых GOTO.

    А еще, я точно знаю, что если заниматься Asterisk-ом больше года, то к этому адову кошмару можно привыкнуть. Так что потом будешь ходить и всем рассказывать, какой этот Asterisk замечательный.
    • 0
      Наверно Вас это удивит, но абсолютно все программы, которые вы когда-либо видели, чуть менее, чем полностью состоят из goto в разных вариациях (goto, gotoif, call, return).
      Ибо так устроены современные процессоры и такова фоннеймановская архитектура компьютеров вообще. Телефонные станции устроены аналогично.
      Астерисковый конфиг — это язык программирования низкого уровня, аналогичный асемблеру.
      • 0
        > Астерисковый конфиг — это язык программирования низкого уровня, аналогичный асемблеру.
        Именно.
        А почему? А нипочиму.
        Просто, как 1999 году понеслась п… да по кочкам начали делать ini-конфиг, да так и не смогли остановиться, подумать и сделать все правильно.

        Вот бы мы все «повеселились», если бы разработчики NCSA httpd вместо CGI начали бы городить «язык программирования аналогичный ассемблеру».
    • 0
      А Вам известны языки программирования АТС высокого уровня?
      • 0
        Коллега, Вы просто выразите свою мысль, если есть сказать что-то конструктивное.
  • 0
    FreeSwitch
    Заявка на правильную прямую архитектуру. Активно используются годами проверенные компоненты, например Apache APR.
    На практике (у нас в TipMeet) — полное фиаско в части согласования кодеков даже в режиме pass-through.
    Звучит странно, но так и есть — даже если медиа-трафик идет мимо FreeSwitch, он умудряется развалить согласование кодеков. Как? А вот так — уметь надо! И еще писать код, как кура лапой, смутно понимая, как устроен SDP (самая «вкусняшка» в SIP-стеке). А код там такой, что сам Anthony Minessale сказал что-то типа «ээ… мм… да… ну хрен его знает».

    Могу добавить, что разработчики FreeSwitch весьма странно реагируют на баг-репорты — типа, «хз, у нас все работает, никто не жаловался, это у вас кривые железо/софт/руки/фаза луны».
    А на прямой вопрос, сколько будет стоить пофиксить багу, называют цифры с четырьмя нулями, причем без особого энтузиазма.
    • 0
      >весьма странно реагируют на баг-репорты — типа, «хз, у нас все работает, никто не жаловался, это у вас кривые железо/софт/руки/фаза луны»

      Вот это точно!!!
  • 0
    Коллеги, позволю себе поднять тему.
    В свете выхода новой версии Yate поменялось ли соотношение сил?
    Все-таки, астериск новый выходит постоянно, разработчики фрисвич тоже могли стать более адекватными…

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.