IP-АТС, IP-PBX CallWeaver

IP АТС CallWeaver

CallWeaver - Это публичный проект, основанный на исходных кодах Asterisk.

CallWeaver появился как результат недовольства большой группы независимых разработчиков проекта Asterisk политикой компании Digum – хозяина проекта Asterisk.

Целью этой группы было очистить Asterisk от «родовых болезней», которые были связаны с историей развития проекта и с политикой Digium, навязывающей свой путь развития этого программного обеспечения, что в ряде случаев не совпадало с мнением многих авторитетных независимых участников проекта.

Так например Asterisk не может полноценно работать при отсутствии так называемого Zaptel – драйвера интерфейсных карт, которые выпускает Digium и ряд других производителей, необходимого для стыковки IP-АТС с аналоговыми и цифровыми телефонными линиями.

В Asterisk этот драйвер требуется, даже если таких интерфейсных карт в системе нет, поскольку Zaptel используется как источник временной синхронизации, необходимой для корректного воспроизведения в IP-АТС фоновой музыки и речевых приглашений.

В тоже время Zaptel – основной источник проблем совместимости в разных операционных системах, что затрудняет использование Asterisk в нестандартных конфигурациях и понижает надежность системы в целом.

В CallWeaver эту зависимость убрали, переделав механизм временной синхронизации так, чтобы он работал в ЛЮБОЙ unix-системе.

Манифест основателей проекта CallWeaver созвучен идеям Линуса Торвальдса – создателя проекта Linux.

Нам нужен полный контроль над проектом со стороны его участников. Ни один человек не должен иметь возможность затормозить его развитие.

Мы не должны быть привязаны к старому программному коду только потому, что он уже есть – мы должны использовать все самое прогрессивное, что придумало человечество, заменив свое старое на чужое новое, если оно лучше решает данную задачу.

Мы не должны тратить время и силы на изобретение колеса.

Мы не должны иметь проблемы с развитием проекта из-за системы двойных лицензий (на самом деле Asterisk существует в двух ипостасях – есть бесплатная версия под лицензией GNU и есть платная, которая в настоящий момент делается на основе тех же кодов. Это создает опасения, что в один прекрасный момент компания Digium может заморозить бесплатную версию и полностью переключить силы своих разработчиков на платную.

Мы не должны позволять ограничивать развитие проекта из-за тех или иных деловых или маркетинговых соображений компании – владельца проекта.

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

Мы не хотим соревноваться с нашими пользователями – мы уверены, что их квалификация не хуже нашей.

Проект CallWeaver конечно значительно менее известен, чем Asterisk, однако он очень быстро развивается. Этот программный продукт, несмотря на очень серьезные внутреннее отличия, сделанные для повышения его надежности и добавления новых функций, практически на 100% совместим с Asterisk. Для переноса конфигурационных файлов из Asterisk в CallWeaver есть специальная программа, которая делает этот процесс практически безболезненным.

Некоторые из новых возможностей CallWeaver.

Встроенная поддержка протокола STUN, который значительно облегчает жизнь, когда ваша IP-АТС установлена за NAT, т.е. не имеет прямого («белого») адреса Интернет.

Во всех случаях, когда в IP-АТС требуется анализ звукового потока (анализ DTMF – тонального донабора, или факсимильных сигналов) CallWeaver вместо собственного кода использует независимую библиотеку SpanDSP, что дает возможность значительно повысить качество звука и обработку факсов.

В качестве внутренней базы данных CallWeaver использует независимую библиотеку Sqlite вместо устаревшего кода Berkeley DB, используемого в Asterisk, который уже давно не поддерживается и не развивается. Использование Sqlite также дает возможность одновременно использовать эту базу данных другим приложениям, например системам конфигурирования и управления IP-АТС, что значительно упрощает их работу и повышает надежность системы в целом.

В CallWeaver используется независимый от типа канала jitterbuffer, что также повышает качество голоса.

CallWeaver основан на таймере POSIX, который присутствует в любой UNIX-совместимой системе – соответственно отпала необходимость в наличии драйвера Zaptel.

CallWeaver работает значительно быстрее за счет компиляции кода, управляющего процессом обработки вызова (dialplan) во внутренний двоичный код – в Asterisk все эти команды хранятся в памяти системы в исходном текстовом виде и система вынуждена постоянно разбирать их синтаксис в процесс работы. Более того, это решение значительно повышает надежность системы за счет раннего обнаружения ошибок в этом коде на этапе компиляции – в Asterisk этой компиляции в принципе нет.

CallWeaver анализирует корректность и связность конфигурации ДО ее загрузки в систему – это также значительно повышает надежность системы в целом.

Как следствие «отвязки» от драйвера Zaptel система CallWeaver прекрасно работает в среде виртуальной машины – под Xen или VmWare.

Одним из главных разработчиков проекта CallWeaver является Steve Underwood (www.soft-switch.org) – автор библиотеки SpanDSP, используемой в Asterisk, CallWeaver и множестве других проектов ip телефонии для обработки факсимильных сигналов и протоколов. В результате все компоненты CallWeaver, связанные с обработкой факсов, имеют значительно больше возможностей, чем аналогичные компоненты Asterisk – в частности модуль RxFax/TxFax (виртуальный факс – шлюз факс-email) поддерживает факсимильный режим ECM (коррекция ошибок) и протокол T38.

Что касается протокола Т38, который является единственным решением, обеспечивающим стабильное прохождение факсов через ip телефонию, то он реализован в CallWeaver максимально полно в отличие от Asterisk, в котором он возможен только в режиме ReINVITE – когда IP-АТС заставляет шлюзы работать друг с другом напрямую, что далеко не всегда технически осуществимо.

CallWeaver сам является программным T38 шлюзом, что позволяет при передаче факса через IP-АТС запускать 2 независимых канала с протоколом T38 – от передающего шлюза к IP-АТС и от IP-АТС к принимающему шлюзу. Это дает гарантированную работоспособность T38 в случае, когда один из шлюзов находится за NAT, или когда шлюзы в принципе не могут работать напрямую в силу различий реализации протокола T38.

Более того, CallWeaver может работать как шлюз между T38 и PSTN (традиционными телефонными цифровыми или аналоговыми каналами), что позволяет организовать надежную передачу факсов при отсутствии у вас дорогостоящих аппаратных шлюзов VOIP PSTN с поддержкой T38. Это очень важно, поскольку в настоящее время появилось много бюджетных шлюзов, поддерживающих этот протокол (Linksys, Grandstream, Welltech).