Asterisk IP-PBX (IP-АТС) — свободное решение компьютерной телефонии

Asterisk IP-PBX (IP-АТС) — свободное решение компьютерной телефонии от компании Digium (Sangoma).

Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает VoIP протоколы и предоставляет богатые функции управления звонками:

  • голосовую почта,
  • конференции,
  • центр обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы),
  • Подробная запись о вызове (CDR)
  • Архив аудио записей разговоров

Возможности Asterisk 1.8.0:

  • Поддержка шифрования RTP-потоков;
  • Поддержка IPv6 в канальном драйвере SIP;
  • Поддержка расширения "Connected Party Identification", позволяющего обеспечить идентификацию присоединенного абонента, т.е. гарантировать звонящему абоненту, что на другом конце линии именно тот кого он вызывал (например, звонок может быть перенаправлен кому-то другому);
  • Поддержка интеграции с календарями-планировщиками, для управления представлен специальный "Calendaring API". Календарь поддерживает задание событий, приоритетов, категорий, обмен информацией с популярными календарными сервисами. Поддерживаются форматы Exchange/Outlook, CalDAV и iCal. Новый API позволяет организовать запись в календарь информации о звонках (история звонков будет доступна через стандартный интерфейс календаря, при этом звонки легко ассоциировать с пересекающимися во времени событиями) или принимать решение о перенаправлении звонков на основании данных в календаре ( например, определив занятость абонента при наличии записи о срочном деле).
  • Добавлена альтернативная система ведения лога звонков - Channel Event Logging (CEL), позволяющая детально отследить все связанные со звонком события (перенаправления звонков, выбор в голосовом меню и т.п.) и просмотреть данные о всех участвовавших при обработке звонка подсистемах;
  • Возможность распределенного обмена данными о состоянии устройств через Jabber/XMPP расширение PubSub (отправка уведомлений по подписке);
  • Поддержка добавочных сервисов завершения вызова (H.450.9, Call Completion Supplementary Services), например, позволяющих звонящему пользователю A определить свободность абонента B без попытки совершения нового звонка, когда первый звонок остается незавершенным из-за занятости линии абонента B или когда он не отвечает;
  • Поддержка GTalk и Google Voice с возможностью осуществления прямых исходящих звонков;
  • Поддержка AoC (Advice of Charge), дополнительного GSM-сервиса, позволяющего оператору передать абоненту данные о стоимости звонка.
 Назначение              Количество  Рекомендуемые
                         каналов     минимальные параметры
                                     400 МГц ×86, 256 Mб
 Любительская система    Не более 5
                                     оперативной памяти
                                     1 ГГц ×86, 512 Mб
 SOHO-система            От 5 до 10
 (малый офис и дом –                 оперативной памяти
 менее трех линий и пяти
 телефонных аппаратов)
                                     3 ГГц ×86, 1 Гб оперативной памяти
 Малая бизнес-система    До 25
 Средняя или большая     Более 25    Два ЦП, возможно также
 система                             несколько серверов
                                     в распределенной архитектуре

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

Чем мощнее FPU, тем больше одновременных задач по ЦОС (DSP) сможет выполнять Asterisk. Это основной принцип. При выборе процессора исходная тактовая частота – только часть уравнения. То, насколько хорошо он справляется с операциями с плавающей точкой, будет основным определяющим фактором, поскольку операции по ЦОС в Asterisk будут предъявлять высокие требования именно к этому процессу.

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

Блоки питания для компьютеров Выбранный для системы блок питания будет играть жизненно важную роль в стабильности всей платформы. Asterisk не является особенно энергоемким приложением, но все, что связано с мультимедийными системами (будь то телефония, профессиональная аудио-, видеоаппаратура и т.п.), обычно чрезвычайно чувствительно к качеству электропитания. Этот часто упускаемый из виду компонент может превратить высококачественную систему в груду хлама. Справедливо и то, что с первоклассным блоком питания дешевый ПК может стать настоящим чемпионом. Получаемая мощность должна не только удовлетворять потребности системы в энергии, необходимой для выполнения ее задач, но также обеспечивать стабильные и четкие сигнальные линии для всех уровней напряжений, ожидаемых системой.

На сервере с Asterisk нельзя ставить X (kde, Ubuntu GNOME настройка для повседневной работы и т.п.) может привести к конфликту обработки аудио, как следствие падает качество голоса (шум, эхо).

Конфигурационные файлы Asterisk: После изменения конфигурационных файлов в большинстве случаев достаточно в CLI выполнить команду reload, если изменения затронули только файл sip -достаточно команды sip reload. Однако изменение методов обмена сигналами требует перезагрузки системы (команда restart).

Файлы Asterisk Кратко Примечания
Настройка Asterisk extensions.conf Создание диалпланов После изменений файла выполнить dialplan reload
sip.conf Настройка SIP-протокол RFC 3261.txt изучить для понимания команды sip debug из консоли Asterisk
iax.conf конфигурация входных и выходных IAX-каналов -
features.confparkedcalls - это внутренний контекст Asterisk -
rtp.confдиапазон RTP-портов (по умолчанию rtpstart=5000 and rtpend=31000)можно сузить
Настройка файлов журналов Asterisk для дебаганастройка ведения логов -
ooh323.confooh323c (chan_ooh323) (поставщик Objective Systems)H.323 для Asterisk

Для удобства инсталляции и использования существуют несколько готовых дистрибутивов, содержащих операционную систему, скомпилированый Астериск, необходимые модули и стандартную конфигурацию.

#найти все модули содержащие pbx
*CLI> module show like pbx
# выгрузить модуль pbx_ael.so не перезапуская Asterisk
*CLI> module unload pbx_ael.so
# nano /etc/asterisk/modules.conf
[modules]
autoload=yes
...
;запретить автоматическую загрузку модуля pbx_ael.so
noload => pbx_ael.so
noload => chan_jingle.so
noload => chan_gtalk.so
noload => func_odbc.so
noload => cdr_odbc.so
noload => cdr_adaptive_odbc.so
noload => res_agi.so
noload => app_speech_utils.so
noload => res_config_ldap.so
noload => res_smdi.so
noload => res_odbc.so
noload => chan_skinny.so
noload => res_ais.so
...
 
[global]
  • res_ais.so - SAForum AIS. Модуль написан для целей передачи событий между Asterisk серверами в кластере. Модуль использует SAForum AIS CLM и EVT сервисы (управление кластером и события) для выполнения этой задачи. Модуль в данный момент поддерживает распределение Voicemail MWI (Message Waiting Indication) and device state событий между серверами. Протестирована работа с openais, хотя существуют и другие реализации стандарта.
  • chan_skinny.so - SCCP Skinny Client Control Protocol (Skinny), корпоративный (проприетарный) протокол, разработан Selsius Corporation, в настоящее время принадлежит Cisco Systems. По протоколу Skinny взаимодействуют Cisco CallManager и Skinny-клиенты, в числе которых IP-телефоны Cisco 7900, сотфон Cisco IP Communicator, беспроводной телефон Cisco 7920 и сервер голосовой почты Cisco Unity. Не путать с SCCP (Signaling Connection and Control Part) протокол сетевого уровня, обеспечивающий контроль передачи (flow control), сегментацию пакетов, коррекцию ошибок и соединения в стеке протоколов SS7
  • pbx_ael - Asterisk Extension Language Compiler
  • app_fastsms Система доставки SMS сообщений, без использования ресурсов интерфейса PRI.
  • Asterisk Manager API - Интерфейс управления сервером Asterisk (далее Manager API) позволяет клиентским программам соединяться с серверным приложением Asterisk, отправлять ему команды и/или считывать события, происходящие в АТС, используя TCP/IP протокол. Подробнее здесь.
  • PyAstre - поддержка языка Синтаксис Python в плане набора.
  • py-Asterisk - Клиент на языке Python, использующий Manager API.
    • Предоставляет интерфейс OO для Asterisk из пакета pure-Python.
PQ VPS сервера в 28+ странах.