CallWeaver (CallWeaver)

Перейти к навигации Перейти к поиску
CallWeaver
Тип сервер IP-телефонии
Разработчик сообщество
Операционная система UNIX-подобные
Последняя версия 1.2.0.1 (27 мая 2008 года)
Тестовая версия 1.2.1-rc1 (31 марта 2009 года)
Лицензия GNU GPL
Сайт callweaver.org

CallWeaver (ранее известный как OpenPBX.org) — это проект с открытым исходным кодом, предназначенный для создания решений IP-телефонии. Приложение работает на операционных системах Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X и Solaris.

CallWeaver является форком аналогичного по назначению проекта Asterisk и основан на коде версии 1.2. Основными причинами создания проекта явилось желание создать проект, не зависящий от влияния какой-либо компании, преследующей свои интересы, а также необходимость создать проект без применения двойного лицензирования.

В данный момент проект мёртв и практически невозможно получить исходный код и/или двоичные коды приложения. Большинство изменений интегрировано в Asterisk версии 1.8+

Сравнение с Asterisk

[править | править код]

Сходства:

  • Это также публичный проект, основанный на исходных кодах Asterisk.
  • Фактически идентичные конфигурационные файлы

Отличия:

  • Чистка проекта от «родовых болезней» Asterisk, которые были связаны с историей развития проекта, но не могли быть исправлены в рамках Asterisk.
  • Возможность работы без драйвера Zaptel.
  • Невозможна поддержка перекодирования в кодеки, защищённые патентами (G.729, G.723, AMR и пр.)

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

Манифест основателей проекта

[править | править код]
  • Нам нужен полный контроль над проектом со стороны его участников. Ни один человек не должен иметь возможность затормозить его развитие.
  • Мы не должны быть привязаны к старому программному коду только потому, что он уже есть — мы должны использовать всё самое прогрессивное, что придумало человечество и заменять своё старое на чужое новое, если оно лучше решает данную задачу.
  • Мы не должны тратить время и силы на изобретение колеса.
  • Мы не должны иметь проблемы с развитием проекта из-за системы двойных лицензий.
  • Мы не должны позволять ограничивать развитие проекта из-за тех или иных деловых или маркетинговых соображений компании — владельца проекта.
  • Любой квалифицированный специалист может подключиться к проекту не нарушая авторских прав.
  • Мы не хотим соревноваться с нашими пользователями — мы уверены что их квалификация не хуже нашей.

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

[править | править код]
  • Встроенная поддержка протокола STUN.
  • В случаях, когда требуется анализ звукового потока (анализ DTMF или факсимильных сигналов), используется независимая библиотека SpanDSP, что даёт возможность значительно повысить качество звука и обработки факсов.
  • В качестве внутренней базы данных используется Sqlite. Это даёт возможность одновременно использовать базу данных другим приложениям, например системам конфигурирования и управления IP-АТС, что значительно упрощает их работу и повышает надёжность системы.
  • Реализован независимый от типа канала джиттер-буфер, что повышает качество передаваемого голоса.
  • Использует таймер POSIX, который присутствует в любой UNIX-совместимой системе.
  • CallWeaver работает значительно быстрее за счёт компиляции кода, управляющего процессом обработки вызова (dialplan), во внутренний двоичный код. Это решение значительно повышает надёжность системы за счёт раннего обнаружения ошибок в этом коде на этапе компиляции.
  • CallWeaver анализирует корректность и связность конфигурации до её загрузки в систему.
  • Работает в среде виртуальной машины — под Xen или VMware.
  • Модули RxFax/TxFax (виртуальный факс) поддерживают факсимильный режим c коррекцией ошибок ECM (Error Correct Mode) и протокол T.38.
  • Так же, как и в Asterisk, существует поддержка протокола T.38 в прозрачном режиме пропускания трафика.
  • Является программным T.38-шлюзом, что позволяет при передаче факса через IP-PBX запускать 2 независимых канала с протоколом T.38 — от передающего шлюза к IP-PBX и от IP-PBX к принимающему шлюзу. Это даёт гарантированную работоспособность T.38 в случае, когда один из шлюзов находится за NAT или когда шлюзы не могут работать напрямую в силу различий реализации протокола T.38.
  • CallWeaver может работать как шлюз передачи факсов между IP-сетью и PSTN. Это важно, так как в настоящее время появилось большое количество шлюзов, поддерживающих этот протокол (например: Linksys, Grandstream, Welltech).