我正在尝试使用 sipjs 向服务器注册。它可以与 ws 一起使用,但是当我使用 wss 时,出现了一些错误。我使用了自签名证书 wss.pem 来代替旧证书
自由切换错误
tport.c:2777 tport_wakeup_pri() tport_wakeup_pri(0x7fe5c800be90): events IN
tport.c:867 tport_alloc_secondary() tport_alloc_secondary(0x7fe5c800be90): new secondary tport 0x7fe5c8018990
tport.c:2103 tport_close() tport_close(0x7fe5c8018990): (null)/(null):(null)
tport_type_ws.c:641 tport_ws_next_timer() tport_ws_next_timer(0x7fe5c8018990): Error establishing SSL to (null)/(null):(null)
tport.c:2278 tport_set_secondary_timer() tport(0x7fe5c8018990): set timer at 0 ms because zap
tport.c:2103 tport_close() tport_close(0x7fe5c8018990): (null)/(null):(null)
tport_type_ws.c:535 tport_ws_deinit_secondary() 0x7fe5c8018990 destroy wss transport 0x7fe5c8018b80.
sip.js
const transportOptions = {
server: "wss://10.16.127.26:7443"//fs
};
//ua
// const userAgent = new UserAgent({transportOptions});
// userAgent.start();
const fake_uri='sip:'+extName+'@10.16.127.26'
const uri = UserAgent.makeURI(fake_uri);
const targeturi=UserAgent.makeURI(target);
if (!uri) {
throw new Error("Failed to create URi");
}
const userAgentOptions = {
authorizationPassword: '1234',
authorizationUsername: '1001',
transportOptions,
// hackWssInTransport: true,
uri,
};
const userAgent = new UserAgent(userAgentOptions);
connect.addEventListener('click',e=>{
// console.log('ok');
const registerer = new Registerer(userAgent);
userAgent.start().then(() => {
registerer.register()
console.log('11');
});
// console.log( registerer.register());
})
你提到有一个自签名证书,你的浏览器是否有可能没有完全建立 TLS 连接并在看到不受信任的证书时断开连接?您通常可以通过颁发有效证书或在浏览器中作为页面访问 freeswitch 实例并单击证书验证失败来解决此问题。
对您来说,这意味着在浏览器中转到 https://10.16.127.26:7443 并单击证书警告。完成后返回 sipjs 页面并重试。
这只是一个猜测,您可能还有其他问题。浏览器的控制台或 freeswitch 日志中的其他地方可能有更多信息。