Моя цель, т.к. я все свои наработки переношу на Asterisk 22 и задумки, то хочу для себя проверить, а действительно ли Asterisk 22 теперь с поддержкой pjsip и что sip больше нет.

Asterisk 22 установлен на текущую систему Ubuntu 24.04 Server LTS опираясь на заметку: "Поднимаем дома Asterisk 22 на Ubuntu 24.04 Server"

Когда я пользовался телефонией на базе Asterisk ранее то драйвер канала SIP был chan_sip теперь же нужно переобучаться на его новую версию канала SIP chan_pjsip.

Как показало мое изучение документации по части, что умеет драйвер канала chan_sip & chan_pjsip, вот небольшая справка:

chan_pjsip — это драйвер канала в системе IP-телефонии Asterisk, который используется для работы с протоколом Session Initiation Protocol (SIP). Он отвечает за обработку SIP-соединений: регистрацию устройств, установку и завершение звонков.

Он управляет:

  • регистрацией SIP-устройств
  • установкой и завершением звонков
  • аутентификацией пользователей
  • обработкой NAT
  • согласованием медиа (RTP)

Через него Asterisk взаимодействует с:

  • IP-телефонами
  • софтфонами
  • SIP-провайдерами (SIP-транками)
  • VoIP-шлюзами

chan_sip — это старый драйвер канала SIP в системе IP-телефонии Asterisk, который используется для обработки звонков по протоколу Session Initiation Protocol (SIP).

chan_sip отвечает за:

  • регистрацию SIP-устройств
  • установку и завершение звонков
  • аутентификацию пользователей
  • работу с SIP-транками
  • передачу медиа через RTP

Через него Asterisk может работать с:

  • IP-телефонами
  • софтфонами
  • SIP-провайдерами
  • VoIP-шлюзами

По сути все то же самое, но есть расширенные нововведения, вдаваться в подробности мне нет смысла, кто хочет сам найдет их, мне же важно применение под нужды.

Шаг №1: Произвожу поиск модуля pjsip.so в системе:

ekzorchik@srv-s2404a:~$ sudo find / -name *pjsip.so

/usr/lib/asterisk/modules/res_pjsip.so

/usr/lib/asterisk/modules/chan_pjsip.so

/usr/lib/asterisk/modules/res_hep_pjsip.so

/usr/src/asterisk-22.8.2/res/res_pjsip.so

/usr/src/asterisk-22.8.2/res/res_hep_pjsip.so

/usr/src/asterisk-22.8.2/channels/chan_pjsip.so

ekzorchik@srv-s2404a:~$

  • res_pjsip.so — это основной модуль SIP-стека в системе Asterisk, который реализует поддержку протокола Session Initiation Protocol (SIP) на базе библиотеки PJSIP.
  • res_pjsip.so — это базовый ресурсный модуль, который:

реализует SIP-стек

  • обрабатывает SIP-сообщения (INVITE, REGISTER, BYE и др.)
  • управляет транспортом (UDP, TCP, TLS)
  • взаимодействует с другими PJSIP-модулями
  • Фактически это ядро SIP-функциональности для chan_pjsip.

В Asterisk PJSIP состоит из некоторого количества базовых модулей:

  • res_pjsip.so -> основной SIP-стек
  • chan_pjsip.so -> канал для обработки звонков
  • res_pjsip_endpoint_identified_ip.so -> определение endpoint по IP
  • res_pjsip_authenticator_digest.so -> аутентификация
  • res_pjsip_registrator.so -> регистрация устройств
  • res_pjsip_outbound_registration.so -> регистрация у провайдера

Шаг №2: Если в системе из вывода выше все же найден модуль chan_pjsip.so, то следует проверить в конфигурационном файле modules.conf (справку по описанию всех модулей я себе сделал оформив как заметка: "Конфигурационные файлы Asterisk 22")

ekzorchik@srv-s2404a:~$ sudo nano /etc/asterisk/modules.conf

[modules]

autoload=yes

noload = res_hep.so

noload = res_hep_pjsip.so

noload = res_hep_rtcp.so

noload = app_voicemail_imap.so

noload = app_voicemail_odbc.so

вот параметр autoload говорит, что подгружать в Asterisk все модули, а место расположение модулей: /usr/lib/asterisk/modules/, просмотрев список всех модулей, убедился что устаревшего в плане использования модуля chan_sip нет. Отлично.

Но можно знаю, проверить подгружен ли модуль в Asterisk через CLI подключение:

ekzorchik@srv-s2404a:~$ sudo asterisk -rx "module show like chan_pjsip"

Module                         Description                              Use Count  Status      Support Level

chan_pjsip.so                  PJSIP Channel Driver                     1          Running              core

1 modules loaded

ekzorchik@srv-s2404a:~$

ekzorchik@srv-s2404a:~$ sudo asterisk -rx "module show like res_pjsip"

Module                         Description                              Use Count  Status      Support Level

res_pjsip.so                   Basic SIP resource                       49         Running              core

res_pjsip_acl.so               PJSIP ACL Resource                       0          Running              core

res_pjsip_aoc.so               PJSIP AOC Support                        0          Running          extended

res_pjsip_authenticator_digest.so PJSIP authentication resource            0          Running              core

res_pjsip_caller_id.so         PJSIP Caller ID Support                  1          Running              core

res_pjsip_config_wizard.so     PJSIP Config Wizard                      1          Running              core

res_pjsip_dialog_info_body_generator.so PJSIP Extension State Dialog Info+XML Pr 0          Running              core

res_pjsip_diversion.so         PJSIP Add Diversion Header Support       1          Running              core

res_pjsip_dlg_options.so       SIP OPTIONS in dialog handler            0          Running              core

res_pjsip_dtmf_info.so         PJSIP DTMF INFO Support                  0          Running              core

res_pjsip_empty_info.so        PJSIP Empty INFO Support                 0          Running              core

res_pjsip_endpoint_identifier_anonymous.so PJSIP Anonymous endpoint identifier      0          Running              core

res_pjsip_endpoint_identifier_ip.so PJSIP IP endpoint identifier             0          Running              core

res_pjsip_endpoint_identifier_user.so PJSIP username endpoint identifier       0          Running              core

res_pjsip_exten_state.so       PJSIP Extension State Notifications      0          Running              core

res_pjsip_geolocation.so       res_pjsip_geolocation Module for Asteris 0          Running              core

res_pjsip_header_funcs.so      PJSIP Header Functions                   0          Running              core

res_pjsip_history.so           PJSIP History                            0          Running          extended

res_pjsip_logger.so            PJSIP Packet Logger                      0          Running              core

res_pjsip_messaging.so         PJSIP Messaging Support                  0          Running              core

res_pjsip_mwi.so               PJSIP MWI resource                       0          Running              core

res_pjsip_mwi_body_generator.so PJSIP MWI resource                       0          Running              core

res_pjsip_nat.so               PJSIP NAT Support                        0          Running              core

res_pjsip_notify.so            CLI/AMI PJSIP NOTIFY Support             0          Running              core

res_pjsip_one_touch_record_info.so PJSIP INFO One Touch Recording Support   0          Running              core

res_pjsip_outbound_authenticator_digest.so PJSIP authentication resource            0          Running              core

res_pjsip_outbound_publish.so  PJSIP Outbound Publish Support           2          Running              core

res_pjsip_outbound_registration.so PJSIP Outbound Registration Support      1          Running              core

res_pjsip_path.so              PJSIP Path Header Support                0          Running              core

res_pjsip_phoneprov_provider.so PJSIP Phoneprov Provider                 0          Running          extended

res_pjsip_pidf_body_generator.so PJSIP Extension State PIDF Provider      0          Running              core

res_pjsip_pidf_digium_body_supplement.so PJSIP PIDF Sangoma presence supplement   0          Running              core

res_pjsip_pidf_eyebeam_body_supplement.so PJSIP PIDF Eyebeam supplement            0          Running              core

res_pjsip_publish_asterisk.so  PJSIP Asterisk Event PUBLISH Support     0          Running              core

res_pjsip_pubsub.so            PJSIP event resource                     12         Running              core

res_pjsip_refer.so             PJSIP Blind and Attended Transfer Suppor 1          Running              core

res_pjsip_registrar.so         PJSIP Registrar Support                  0          Running              core

res_pjsip_rfc3326.so           PJSIP RFC3326 Support                    0          Running              core

res_pjsip_rfc3329.so           PJSIP RFC3329 Support (partial)          0          Running              core

res_pjsip_sdp_rtp.so           PJSIP SDP RTP/AVP stream handler         0          Running              core

res_pjsip_send_to_voicemail.so PJSIP REFER Send to Voicemail Support    0          Running              core

res_pjsip_session.so           PJSIP Session resource                   19         Running              core

res_pjsip_sips_contact.so      UAC SIPS Contact support                 0          Running              core

res_pjsip_t38.so               PJSIP T.38 UDPTL Support                 0          Running              core

res_pjsip_transport_websocket.so PJSIP WebSocket Transport Support        0          Running              core

res_pjsip_xpidf_body_generator.so PJSIP Extension State PIDF Provider      0          Running              core

46 modules loaded

ekzorchik@srv-s2404a:~$

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