Где должно быть место для катания или установки льда для sipjs 0.11.0?
Я перехожу с sipjs 0.7x на sipjs 0.11 После прочтения проблемы Git https://github.com/onsip/SIP.js/pull/426 и https://sipjs.com/api/0.8.0/sessionDescriptionHandler/
Я обнаружил, что опции ice (coturn, turn, stun) больше не находятся в User Agent, но проблема в том, что я не совсем понимаю, где я должен использовать setDescription (sessionDescription, options, modifiers)
Я видел, что лед устанавливается в настройках, используя 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, опции, модификаторы). В этом случае я могу спросить некоторые рекомендации?
2 ответа
Настройте серверы STUN/TURN в параметрах, переданных новому UserAgent. Вот пример, похоже, он работает на версии 0.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 })
Я нашел решение, оно не должно быть ни в session.invite, ни в session.on.trackAdded.