Я занимаюсь разработкой веб-приложения для телефонных звонков, используя sip.js для сигнализации и webrtc для управления мультимедиа. С браузерами все работает отлично. Сейчас мы пытаемся разработать его для настольных компьютеров, использующих Electron (Chromium), и для мобильных устройств, использующих ionic / cordova. Для IOS cordova-plugin-iosrtc иметь webrtc и для андроида родной webrtc. Обе мобильные среды прекрасно работают с sip 0.7, но с идентичной или более поздней версией sip 0.8 ни одно из них не может получить локальные медиа-устройства.
Например, в электроне :
session.on ('trackAdded', function () {
var pc = session.sessionDescriptionHandler.peerConnection;
// Gets remote tracks
var remoteStream = new MediaStream ();
pc.getReceivers (). forEach (function (receiver) {
remoteStream.addTrack (receiver.track);
});
remoteVideo.srcObject = remoteStream;
remoteVideo.play ();
// Gets local tracks
alert (pc.getSenders ())
var localStream = new MediaStream ();
pc.getSenders (). forEach (function (sender) {
localStream.addTrack (sender.track);
});
localVideo.srcObject = localStream;
localVideo.play ();
});
ошибка
Tue Nov 06 2018 16:17:33 GMT+0100 (CET) |
sip.invitecontext.sessionDescriptionHandler | unable to acquire streams
LoggerFactory.print @ sip.js:516
LoggerFactory.(anonymous function) @ sip.js:530
Logger.(anonymous function) @ sip.js:525
(anonymous) @ sip.js:8816
sip.js:516 TypeError: pc.getSenders is not a function
at InviteClientContext.<anonymous> (telephoneservice.js:796)
at InviteClientContext.EventEmitter.emit (sip.js:662)
at SessionDescriptionHandlerObserver.trackAdded (sip.js:8963)
at SessionDescriptionHandler.<anonymous> (sip.js:8797)
at <anonymous>
Нечто подобное происходит с IOS ...
Доброе утро