Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

PJSIP_WEBRTC_TLS_SOCKET_FAIL IP-Телефония и СКУД

Asterisk: Failed to create WebRTC TLS socket — исправление ошибки WSS

Обновлено: 24.08.2026 · Официальная документация ↗
  • В логе появляется предупреждение: WARNING[...]: res_pjsip_transport_management.c: Failed to create WebRTC TLS socket.
  • Демон Asterisk не слушает защищенный порт WebSocket (WSS, порт 8089).
  • Веб-клиенты возвращают ошибку WebSocket connection to 'wss://pbx.domain.com:8089/ws' failed при попытке регистрации.
  • При перезагрузке модуля pjsip транспорт WSS переходит в состояние UNAVAILABLE.

1. Проверка валидности и прав доступа к SSL/TLS сертификатам

Убедитесь, что пользователь asterisk имеет права на чтение файлов цепочки сертификата и приватного ключа:

chown -R asterisk:asterisk /etc/asterisk/keys/
chmod 600 /etc/asterisk/keys/*.key
chmod 644 /etc/asterisk/keys/*.crt
chmod 644 /etc/asterisk/keys/*.pem

2. Корректная настройка транспорта WSS в pjsip.conf

Отредактируйте файл /etc/asterisk/pjsip.conf:

[transport-wss]
type = transport
protocol = wss
bind = 0.0.0.0:8089
cert_file = /etc/asterisk/keys/fullchain.pem
priv_key_file = /etc/asterisk/keys/privkey.pem
method = tlsv1_2
require_client_cert = no
verify_client = no
verify_server = no

3. Проверка занятости порта 8089 сторонними сервисами

ss -tulpn | grep 8089
# Если порт занят другим приложением, освободите его или смените bind в pjsip.conf

4. Перезагрузка транспорта PJSIP

asterisk -rx "module reload res_pjsip.so"
asterisk -rx "pjsip show transports"

В выводе статус транспорта transport-wss должен быть активен (Active / OK).

💡 Практика специалистов: Если вы используете Nginx или HAProxy в качестве фронтенда, надежнее терминацию WSS-трафика производить на Nginx, а в сторону Asterisk проксировать чистый WS (порт 8088 / transport-ws), сняв нагрузку TLS с ядра PBX.

Частые вопросы (FAQ)

Можно ли использовать самоподписанные сертификаты для WebRTC WSS?

Технически Asterisk запустит сокет, но браузеры (Chrome, Firefox) заблокируют соединение WSS без доверенного CA сертификата, если пользователь предварительно не подтвердит исключение вручную.

Как объединить приватный ключ и цепочку Let's Encrypt для Asterisk?

В современных версиях PJSIP достаточно указать fullchain.pem в cert_file и privkey.pem в priv_key_file без необходимости объединения их в один .pem файл.

Почему сокет падает при обновлении сертификата Certbot?

Certbot сохраняет новые сертификаты с правами root. Добавьте post-renewal hook: chown -R asterisk:asterisk /etc/letsencrypt/live/ && asterisk -rx 'module reload res_pjsip.so'.

Какой протокол TLS рекомендуется указывать в pjsip.conf?

Рекомендуется указывать method = tlsv1_2 или method = default, так как устаревшие протоколы SSLv3 и TLSv1.0 блокируются большинством современных браузеров.

Полезные материалы
Рекомендуем