Архитектурные отличия PJSIP от chan_sip

Мы успешно освоили работу с конфигурационными файлами и научились интегрировать ручные правки в логику FreePBX. До этого момента мы рассматривали Asterisk через призму классического драйвера chan_sip. В 2026 году он официально признан устаревшим (legacy). Ему на смену пришел PJSIP — мощный, модульный и масштабируемый стек.

Переход на PJSIP — это не просто обновление модуля. Это смена архитектурного мышления: от линейных списков настроек к гибкой объектной модели.

Почему индустрия отказалась от chan_sip

Драйвер chan_sip создавался, когда задачи были простыми: один IP-аппарат — один номер. Со временем он превратился в «монолит», где в одной секции перемешаны сетевые параметры, авторизация и правила набора.

Основные проблемы старого стека:

  • Однопоточность: все SIP-сообщения обрабатываются в один поток. При высокой нагрузке это создает «бутылочное горлышко».
  • Сложность с NAT: механизмы обхода сетевых преград часто требовали «костылей».
  • Ограниченность: нельзя зарегистрировать несколько устройств на одну учетную запись без создания дополнительных внутренних номеров.

PJSIP (на базе библиотеки pjproject) решает эти проблемы за счет многопоточности и четкого разделения зон ответственности.

Объектная модель PJSIP

В chan_sip мы описывали сущность в файле sip.conf одним блоком. В PJSIP настройки разделены на логические компоненты. Это конструктор: вы создаете детали и соединяете их.

Основные объекты PJSIP:

  1. Endpoint (Конечная точка): ядро настроек. Определяет контекст диалплана, разрешенные кодеки и управление сессией. Это «личность» устройства.
  2. Auth (Аутентификация): хранит логин и пароль. Один объект Auth могут использовать разные эндпоинты.
  3. AoR (Address of Record): определяет, куда Asterisk отправляет пакеты, и хранит информацию о регистрациях.
  4. Transport (Транспорт): описывает сетевой уровень (UDP/TCP/TLS, IP-адрес и порт).
  5. Identify (Идентификация): по этому механизму Asterisk понимает, какой именно Endpoint должен обработать входящий запрос (например, по IP-адресу источника).

Взаимосвязь этих компонентов представлена на Схеме 1.

Преимущества для корпоративных сетей

Для администратора PJSIP открывает возможности, которые раньше были слишком сложными в реализации.

Множественная регистрация (Multi-AoR)

Сегодня норма, когда у сотрудника есть настольный телефон, софтфон на ноутбуке и мобильное приложение. В chan_sip пришлось бы создавать три номера и объединять их в группу вызова. В PJSIP мы разрешаем объекту AoR принимать до 5 регистраций одновременно. При звонке на номер зазвонят все устройства сразу 📟

Работа с NAT и TLS

PJSIP корректнее обрабатывает заголовки SIP при прохождении через роутеры. Поддержка TLS реализована нативно, что критично для безопасности корпоративной связи.

Сравнение стеков

Характеристикаchan_sip (Legacy)PJSIP (Modern)
СтруктураПлоская (одна секция на всё)Объектная (разделение функций)
ПроизводительностьОграничена одним ядром CPUМасштабируется на все ядра ⚡
Регистрации1 устройство на 1 аккаунтМножество устройств на 1 аккаунт
Поддержка WebRTCСложная настройкаПолная, «из коробки»
РазработкаЗамороженаАктивно развивается

PJSIP в интерфейсе FreePBX

FreePBX маскирует сложность PJSIP, объединяя параметры Endpoint, Auth и AoR в одну форму Extension.

Однако в «подвале» настроек (вкладка Advanced) вы найдете параметр Max Contacts. Это настройка объекта AoR, позволяющая реализовать множественную регистрацию.

Важно: понимание того, что за одним «номером» во FreePBX стоят пять разных объектов Asterisk, поможет вам диагностировать сложные проблемы. Например, когда регистрация активна, но вызовы не проходят из-за ошибок в объекте Identify или Transport.

Мы разобрали фундамент современных каналов связи. Теперь, когда вы знаете, из каких кирпичиков состоит транк PJSIP, мы готовы к практике.

В следующей теме мы настроим связь с оператором и разберем конфигурацию каждого объекта PJSIP для стабильной работы вашей АТС.

Понравился урок?

Сохраните прогресс и получите персональный курс по любой теме — без форм и паролей

Продолжить в Telegram