Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
asterisk [2025/07/06 12:38] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Asterisk IP-PBX (IP-АТС) — свободное решение компьютерной телефонии ======
 +[[https://www.asterisk.org|Asterisk IP-PBX (IP-АТС)]] — свободное решение компьютерной телефонии от компании Digium (Sangoma).
 +
 +===== Возможности Asterisk =====
 +
 +Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает VoIP протоколы и предоставляет богатые функции управления звонками:
 +
 +  * голосовую почта,
 +  * конференции,
 +  * [[IVR]],
 +  * центр обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы),
 +  * Подробная запись о вызове (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-сервиса, позволяющего оператору передать абоненту данные о стоимости звонка.
 +
 +===== Технические требования Asterisk =====
 +
 +<code>
 + Назначение              Количество  Рекомендуемые
 +                         каналов     минимальные параметры
 +                                     400 МГц ×86, 256 Mб
 + Любительская система    Не более 5
 +                                     оперативной памяти
 +                                     1 ГГц ×86, 512 Mб
 + SOHO-система            От 5 до 10
 + (малый офис и дом –                 оперативной памяти
 + менее трех линий и пяти
 + телефонных аппаратов)
 +                                     3 ГГц ×86, 1 Гб оперативной памяти
 + Малая бизнес-система    До 25
 + Средняя или большая     Более 25    Два ЦП, возможно также
 + система                             несколько серверов
 +                                     в распределенной архитектуре</code>
 +Недостаточная производительность операционного окружения Asterisk будет вызывать проблемы с качеством аудиосигнала, получаемого пользователем, часто в виде эха, помех и т.п.
 +
 +
 +Чем мощнее [[FPU]], тем больше одновременных задач по ЦОС (DSP) сможет выполнять Asterisk. Это основной принцип. При выборе процессора исходная тактовая частота – только часть уравнения. То, насколько хорошо он справляется с операциями с плавающей точкой, будет основным определяющим фактором, поскольку операции по ЦОС в Asterisk будут предъявлять высокие требования именно к этому процессу.
 +
 +
 +Есть свидетельство тому, что объединение двух совершенно независимых однопроцессорных систем может обеспечить намного больше преимуществ, чем использование двух процессоров в одном компьютере. В этом случае не только удваивается мощность процессора, но также достигается намного лучший уровень избыточного резервирования по цене, равной стоимости компьютера с одним системным блоком и двумя процессорами. Однако нельзя забывать, что спроектировать решение Asterisk с двумя серверами намного сложнее, чем с одним компьютером.
 +
 +**Блоки питания для компьютеров**
 +Выбранный для системы блок питания будет играть жизненно важную роль в стабильности всей платформы. Asterisk не является особенно энергоемким приложением, но все, что связано с мультимедийными системами (будь то телефония, профессиональная аудио-, видеоаппаратура и т.п.), обычно чрезвычайно чувствительно к качеству электропитания. Этот часто упускаемый из виду компонент может превратить высококачественную систему в груду хлама. Справедливо и то, что с первоклассным блоком питания дешевый ПК может стать настоящим чемпионом.
 +Получаемая мощность должна не только удовлетворять потребности системы в энергии, необходимой для выполнения ее задач, но также обеспечивать стабильные и четкие сигнальные линии для всех уровней напряжений, ожидаемых системой.
 +
 +
 +===== Общие замечания по установке Asterisk =====
 +
 +На сервере с Asterisk нельзя ставить X ([[KDE]], [[GNOME]] и т.п.) может привести к конфликту обработки аудио, как следствие падает качество голоса (шум, эхо).
 +
 +  * [[AsteriskNow]]
 +  * Управление [[CLI (command-line interface) Asterisk]]
 +  * [[Asterisk codecs]]: [[G.729]], G.723.1
 +  * [[H.323 для Asterisk]]
 +  * AsteriskNow + D-Link [[DVG-6004S]] (4 FXO VoIP шлюз)
 +  * [[SNgrep]]
 +
 +**Конфигурационные файлы Asterisk**: 
 +После изменения конфигурационных файлов в большинстве случаев достаточно в CLI выполнить команду reload, если изменения затронули только файл sip -достаточно команды sip reload. Однако изменение методов обмена сигналами требует перезагрузки системы (команда restart).
 +
 +
 +| Файлы Asterisk   ^Кратко   ^Примечания ^
 +^ [[extensions.conf]]    |Создание диалпланов | После изменений файла выполнить dialplan reload |
 +^ [[extensions.conf#opredelenie_sip-ustrojstva_v_asterisk|sip.conf]]| Настройка SIP-протокол  | [[http://www.ietf.org/rfc/rfc3261.txt|RFC 3261.txt]] изучить для понимания команды sip debug из консоли Asterisk |
 +^ iax.conf| конфигурация входных и выходных IAX-каналов  | -|
 +^ features.conf|parkedcalls - это внутренний контекст Asterisk| -|
 +^ rtp.conf|диапазон RTP-портов (по умолчанию rtpstart=5000 and rtpend=31000)|можно сузить|
 +^ [[logger.conf]]|настройка ведения логов| -|
 +^ [[H.323 для Asterisk|ooh323.conf]]|ooh323c (chan_ooh323) (поставщик Objective Systems)|[[H.323 для Asterisk]]|
 +
 +===== Специализированные дистрибутивы Asterisk =====
 +
 +Для удобства инсталляции и использования существуют несколько готовых дистрибутивов, содержащих операционную систему, скомпилированый Астериск, необходимые модули и стандартную конфигурацию.
 +
 +    * [[AsteriskNow]]
 +    * Trixbox (ранее назывался Asterisk@Home)
 +    * [[https://www.freepbx.org/downloads/freepbx-distro/|FreePBX Distro]]
 +
 +===== Программные модули Asterisk =====
 +
 +<code bash>
 +#найти все модули содержащие pbx
 +*CLI> module show like pbx
 +# выгрузить модуль pbx_ael.so не перезапуская Asterisk
 +*CLI> module unload pbx_ael.so
 +</code>
 +<code bash>
 +# 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]
 +</code>
 +
 +===== Модули =====
 +  * **res_ais.so** - SAForum AIS. Модуль написан для целей передачи событий между Asterisk серверами **в кластере**. Модуль использует SAForum AIS CLM и EVT сервисы (управление кластером и события) для выполнения этой задачи. Модуль в данный момент поддерживает распределение Voicemail MWI (Message Waiting Indication) and device state событий между серверами. Протестирована работа с openais, хотя существуют и другие реализации стандарта. 
 +  * **chan_skinny.so** - [[http://ru.wikipedia.org/wiki/SCCP|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.
 +    * Домашняя страница: http://www.bayhamsystems.com/asterisk.html
 +  * **Asterisk Manager API** - Интерфейс управления сервером Asterisk (далее Manager API) позволяет клиентским программам соединяться с серверным приложением Asterisk, отправлять ему команды и/или считывать события, происходящие в АТС, используя TCP/IP протокол. [[http://asterisk.ru/knowledgebase/Asterisk+manager+API|Подробнее здесь]].
 +  * **PyAstre** - поддержка языка [[python]] в плане набора.
 +  * **py-Asterisk** - Клиент на языке Python, использующий Manager API.
 +    * Предоставляет интерфейс OO для Asterisk из пакета pure-Python.
 +
 +
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!