Клиент SIPML 5 и SipServlets не работают с использованием WSS
У меня Tomcat работает по HTTPS. Я попытался развернуть приложение WebSocket SIPML5 в свой кот. Когда я попытался подключить Sip Servlets с помощью ws: ws://192.168.XY:5082
И Sip Servlets Config выглядит так:
<Connector port="5082"
ipAddress = "192.168.X.Y"
protocol="org.mobicents.servlet.sip.startup.SipProtocolHandler"
signalingTransport="ws"/>
Я получил сообщение об ошибке: SIPml-api.js:4 Смешанный контент: страница по адресу https://192.168.x1.x2:8443/CallCenterBK/CallCenterBK.jsp?sip=1'была загружена через HTTPS, но попытка подключения к небезопасной конечной точке WebSocket 'ws://192.168.XY:5082/'. Этот запрос был заблокирован; эта конечная точка должна быть доступна через WSS.
Когда я изменю свой клиент SIPML 5 на wss: wss://192.168.XY:5082
И мой конфиг sip сервлетов выглядит так:
<Connector port="5082"
ipAddress = "192.168.X.Y"
protocol="org.mobicents.servlet.sip.startup.SipProtocolHandler"
signalingTransport="wss"/>
Я получил другую ошибку: Сбой соединения WebSocket с 'wss://192.168.XY:5082 /': Ошибка при установлении соединения: net::ERR_CONNECTION_CLOSED
И когда я установил для клиента sipml 5: wss: //192.168.XY:5082 и конфиг изменился на:
<Connector port="5082"
ipAddress = "192.168.X.Y"
protocol="org.mobicents.servlet.sip.startup.SipProtocolHandler"
signalingTransport="ws"/>
Я получил ошибку: Соединение WebSocket с 'wss://192.168.1.3:5082/' не удалось: Ошибка в установлении соединения: net::ERR_TIMED_OUT
Что я сделал неправильно?
Любая идея будет оценена.
2 ответа
Вы настроили соединитель HTTP с информацией о сертификате, вам нужно сделать то же самое для соединителя WSS. К сожалению, конфигурация для этого находится на уровне стека SIP, поэтому вам нужно отредактировать ваш standalone/configuration/mss-sip-stack.properties и добавить
gov.nist.javax.sip.TLS_CLIENT_AUTH_TYPE=Disabled
javax.net.ssl.keyStore=$TRUSTSTORE_FILE
javax.net.ssl.keyStorePassword=$TRUSTSTORE_PASSWORD
javax.net.ssl.trustStorePassword=$TRUSTSTORE_PASSWORD
javax.net.ssl.trustStore=$TRUSTSTORE_FILE
javax.net.ssl.keyStoreType=JKS
SIPML5 точно работает с wss. Проблема на вашей стороне сервера.
- Убедитесь, что порт 5082 прослушивает (telnet)
- Убедитесь, что вы установили действительный сертификат SSL на ваш сервер
- Убедитесь, что 5082 является защищенным (wss) портом (на большинстве серверов ws незащищенные и wss secure прослушивают разные порты)