Моя цель, т.к. я все свои наработки переношу на 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 по IPres_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.