Я занимаюсь разработкой приложения webrtc для вызовов / видеозвонков на основе технологий Ionic / AngularJS.Приложение работает с sip.js для выполнения вызовов через сервер АТС.Для интеграции IOS с WebRtc приложение работает с cordova-plugin-iosrtc.Когда я пытаюсь подключиться к УАТС для вызова или принятого вызова, приложение выдает ошибки при двух возможных режимах использования cordova-plugin-iosrtc с sip.js
A) Когда я пытаюсь использовать работающую над cordova-plugin-iosrtcодноранговое соединение в режиме плагина iOS ....
telephoneService.js (Angular JS)
var pc = new cordova.plugins.iosrtc.RTCPeerConnection({
iceServers: []
});
cordova.plugins.iosrtc.getUserMedia(
// constraints
{ audio: true, video: true },
// success callback
function (stream) {
console.log('got local MediaStream: ', stream);
pc.addStream(stream);
},
// failure callback
function (error) {
console.error('getUserMedia failed: ', error);
}
);
var sessionDescriptionHandlerOptions = {
constraints: {
audio: audioId,
video: videoId
},
media: {
local: {
audio: document.getElementById('localAudio')
},
remote: {
audio: document.getElementById('remoteAudio')
}
},
extraHeaders: extraHeaders
}
}
userAgent.invite('sipusertocall', sessionDescriptionHandlerOptions);
получает следующую ошибку:
undefined is not a object evaluating 'environment.navigator.mediaDevices.getUserMedia' (sip.js lib)
B)
cordova.plugins.iosrtc.registerGlobals(); use iosrtc plugin with webrtc native api (navigator.mediaDevice.getUserMedia(), ....)
navigator.mediaDevices.getUserMedia(
function (stream) {
console.log('got local MediaStream: ', stream);
window.stream = stream;
},
// failure callback
function (error) {
console.error('getUserMedia failed: ', error);
}
)
var sessionDescriptionHandlerOptions = {
constraints: {
audio: audioId,
video: videoId
},
media: {
local: {
audio: document.getElementById('localAudio')
},
remote: {
audio: document.getElementById('remoteAudio')
}
},
extraHeaders: extraHeaders
}
userAgent.invite('sipusertocall', sessionDescriptionHandlerOptions);
App receive from sip.js next error from PBX: Failed:WebRTC Error
Клиент показывает следующую ошибку одновременно:
setLocalDescription () должен вызываться с экземпляром RTCSessionDescription в качестве первого аргумента