我正在从sipjs 0.7x迁移到sipjs 0.11 阅读完Git问题https://github.com/onsip/SIP.js/pull/426#issuecomment-312065734之后 和 https://sipjs.com/api/0.8.0/sessionDescriptionHandler/
我发现冰选项(转弯,转弯,眩晕)不再在用户代理中, 但问题是我不太了解应该在哪里使用 setDescription(sessionDescription,选项,修饰符)
我已经看到,使用 options.peerConnectionOptions.rtcConfiguration.iceServers
下面是我尝试过的
session.on('trackAdded', function () {
// We need to check the peer connection to determine which track was added
var modifierArray = [
SIP.WebRTC.Modifiers.stripTcpCandidates,
SIP.WebRTC.Modifiers.stripG722,
SIP.WebRTC.Modifiers.stripTelephoneEvent
];
var options = {
peerConnectionOptions:{
rtcConfiguration:{
iceServers : {
[{urls: 'turn:35.227.67.199:3478',
username: 'leon',
credential: 'leon_pass'}]
}
}
}
}
session.setDescription('trackAdded', options,modifierArray);
var pc = session.sessionDescriptionHandler.peerConnection;
// Gets remote tracks
var remoteStream = new MediaStream();
pc.getReceivers().forEach(function (receiver) {
remoteStream.addTrack(receiver.track);
});
remoteAudio.srcObject = remoteStream;
remoteAudio.play();
// Gets local tracks
// var localStream = new MediaStream();
// pc.getSenders().forEach(function(sender) {
// localStream.addTrack(sender.track);
// });
// localVideo.srcObject = localStream;
// localVideo.play();
});
}
我已经尝试过了,看来流量并没有流向Coturn服务器。 我已经使用Trickle Ice“ https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/”进行了测试,这很好,但是我发现没有流量通过coturn服务器。您也可以使用这个,我不介意。
甚至在官方网站上也没有演示来展示我们如何使用setDescription(sessionDescription,选项,修饰符)。在这种情况下,请问一些建议吗?
答案 0 :(得分:1)
在传递给新 UserAgent 的参数中配置 STUN/TURN 服务器。 这是示例,它似乎适用于 v0.17.1:
const userAgentOptions = {
...
sessionDescriptionHandlerFactoryOptions: {
peerConnectionConfiguration: {
iceServers: [{
urls: "stun:stun.l.google.com:19302"
}, {
urls: "turn:TURN_SERVER_HOST:PORT",
username: "USERNAME",
credential: "PASSWORD"
}]
},
},
...
};
const userAgent = new SIP.UserAgent(userAgentOptions);
使用 SimpleUser 时 - 在 SimpleUserOptions 中传递它:
const simpleUser = new Web.SimpleUser(url, { userAgentOptions })
答案 1 :(得分:0)
我找到了解决方案,它既不应位于session.invite中,也不应位于session.on.trackAdded中。