使用 SIP.js 时重新启动 ICE 的正确程序是什么?(v0.20.0)
这就是我正在尝试的:
oniceconnectionstatechange: (event) => {
const newState = sdh.peerConnection.iceConnectionState;
if (newState == 'failed') {
sdh.peerConnection.restartIce();
sdh.peerConnection.createOffer({'iceRestart': true})
.then(function(offer) {
return sdh.peerConnection.setLocalDescription(offer);
});
}
}
它似乎执行没有错误,但也没有结果。FireFox 调试工具“about:webrtc”显示“ICE 重新启动:0”,所以我猜它甚至没有开始重新启动。
ps:失败状态是通过重新启动 RTP 引擎(Kamailio 设置)引起的。在 RTP 引擎重新启动后,音频仍然会持续大约 20 秒,并且仅当 ICE 状态更改为“失败”时音频才会停止。