我正在浏览器中使用 sip.js 通过 WebSocket 连接到 SIP。
这是我正在遵循的指南:https://sipjs.com/guides/simple-user/
但是我的 SIP 服务器需要密码。该指南没有提供任何如何提供 SIP 密码的信息。
我已连接成功,但注册失败:
SIP/2.0 401 Unauthorized Via: SIP/2.0/WSS logger-factory.js:103 Tue Aug 22 2023 13:46:30 GMT+0200 (Central European Summer Time) | sip.user-agent-client | 401 apparently in authentication loop, cannot authenticate overrideMethod @ console.js:213 print @ logger-factory.js:103 genericLog @ logger-factory.js:73 genericLog @ logger.js:39 warn @ logger.js:27 authenticationGuard @ user-agent-client.js:198 receiveResponse @ user-agent-client.js:292 receiveResponse @ user-agent-client.js:373 receiveResponse @ non-invite-client-transaction.js:115 receiveResponseFromTransport @ user-agent-core.js:927 receiveIncomingResponseFromTransport @ user-agent-core.js:247 onTransportMessage @ user-agent.js:1042 transport.onMessage @ user-agent.js:908 onWebSocketMessage @ transport.js:503 eval @ transport.js:259 Show 1 more frame Show less logger-factory.js:103 Tue Aug 22 2023 13:46:30 GMT+0200 (Central European Summer Time) | sip.Registerer | Failed to register, status code 401
我遇到了同样的问题,阅读和猜测选项我找到了一种方法,希望这可以帮助你。尝试这样:
let server = "wss://sip.company.it";
let options = {
aor: "sip:[email protected]",
userAgentOptions: {
authorizationUsername: "9999",
authorizationPassword: "mysupersecretpassword"
},
media: {
remote: {
audio: document.getElementById("remoteAudio")
}
}
};
let sip = new SIP.Web.SimpleUser(server, options);
sip.connect();
sip.register();
我在
本手册找到了
userAgentOptions
参数
上面的例子是我让它在浏览器上使用的,如果你想在nodejs上使用我想过程是类似的。