Я использую sip.js (version 0.13.7)
для голосового вызова.
Я получаю поток мультимедиа и подключаю его следующим образом:
let mediaStream
getMedia() {
if (navigator.getUserMedia) {
navigator.getUserMedia(
{ audio: true, video: false },
function(stream) {
mediaStream = stream
},
function(err) {
console.log('error in getUserMedia: ' + err.name)
}
)
} else {
console.log('getUserMedia not supported')
}
}
handleInvite(session) {
handleMedia(session)
session.accept(mediaStream)
}
handleMedia(session) {
session.on('trackAdded', function() {
var remoteStream = new MediaStream()
var pc = session.sessionDescriptionHandler.peerConnection
pc.getReceivers().forEach(receiver => {
remoteStream.addTrack(receiver.track)
})
incomingAudioEl.srcObject = remoteStream
incomingAudioEl.play()
})
}
Это работает хорошо для одного вызова, но яя не могу сделать несколько одновременных вызовов, событие, если я пытаюсь позвонить handleInvite()
с новым сеансом, нет звука и слышен только первый звонок.
Нет хорошей документации о том, как это сделать наВеб-сайт sip.js и многие решения, доступные в Интернете, являются предыдущими несовместимыми версиями.
Когда я ищу в Google «несколько вызовов sip.js», первый результат - https://sipjs.com/guides/reuse-mediastreams/,, который не существует..
Примечание: Мне удалось сделать два одновременно, используя более старую версию SIP, т.е. 0,7.0, но не с самой последней.