@wazo/sdk 0.38.10 → 0.38.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/wazo-sdk.js +2 -2
  2. package/esm/__tests__/web-rtc-client.test.js +10 -6
  3. package/esm/checker/Checker.js +10 -6
  4. package/esm/checker/checks/index.js +10 -6
  5. package/esm/checker/checks/webrtc-transport.js +10 -6
  6. package/esm/checker/checks/webrtc.js +10 -6
  7. package/esm/domain/Phone/WebRTCPhone.js +2 -2
  8. package/esm/index.js +12 -8
  9. package/esm/simple/Auth.js +12 -8
  10. package/esm/simple/Configuration.js +12 -8
  11. package/esm/simple/Phone.js +12 -8
  12. package/esm/simple/index.js +12 -8
  13. package/esm/simple/room/LocalParticipant.js +12 -8
  14. package/esm/simple/room/Participant.js +12 -8
  15. package/esm/simple/room/RemoteParticipant.js +12 -8
  16. package/esm/simple/room/Room.js +12 -8
  17. package/esm/simple/room/SipRoom.js +12 -8
  18. package/esm/simple/room/Stream.js +12 -8
  19. package/esm/simple/room/__tests__/Participant.test.js +12 -8
  20. package/esm/simple/room/__tests__/RemoteParticipant.test.js +12 -8
  21. package/esm/simple/utils.js +12 -8
  22. package/esm/web-rtc-client.js +10 -6
  23. package/lib/__tests__/web-rtc-client.test.js +10 -6
  24. package/lib/checker/Checker.js +10 -6
  25. package/lib/checker/checks/index.js +10 -6
  26. package/lib/checker/checks/webrtc-transport.js +10 -6
  27. package/lib/checker/checks/webrtc.js +10 -6
  28. package/lib/domain/Phone/WebRTCPhone.js +2 -2
  29. package/lib/index.js +12 -8
  30. package/lib/simple/Auth.js +12 -8
  31. package/lib/simple/Configuration.js +12 -8
  32. package/lib/simple/Phone.js +12 -8
  33. package/lib/simple/index.js +12 -8
  34. package/lib/simple/room/LocalParticipant.js +12 -8
  35. package/lib/simple/room/Participant.js +12 -8
  36. package/lib/simple/room/RemoteParticipant.js +12 -8
  37. package/lib/simple/room/Room.js +12 -8
  38. package/lib/simple/room/SipRoom.js +12 -8
  39. package/lib/simple/room/Stream.js +12 -8
  40. package/lib/simple/room/__tests__/Participant.test.js +12 -8
  41. package/lib/simple/room/__tests__/RemoteParticipant.test.js +12 -8
  42. package/lib/simple/utils.js +12 -8
  43. package/lib/web-rtc-client.js +10 -6
  44. package/package.json +1 -1
  45. package/src/domain/Phone/WebRTCPhone.js +2 -2
  46. package/src/web-rtc-client.js +10 -6
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
7822
7822
  const videoTracks = localStream.getVideoTracks();
7823
7823
 
7824
7824
  // Remove video senders
7825
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7826
- videoSender.replaceTrack(null);
7827
- });
7825
+ if (pc.getSenders) {
7826
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7827
+ videoSender.replaceTrack(null);
7828
+ });
7829
+ }
7828
7830
 
7829
7831
  videoTracks.forEach(videoTrack => {
7830
7832
  videoTrack.enabled = false;
@@ -8057,7 +8059,8 @@ class WebRTCClient extends Emitter {
8057
8059
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8058
8060
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8059
8061
  const audioTrack = stream.getAudioTracks()[0];
8060
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8062
+ const sender = pc && pc.getSenders
8063
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8061
8064
 
8062
8065
  if (sender) {
8063
8066
  if (sender.track) {
@@ -8120,10 +8123,11 @@ class WebRTCClient extends Emitter {
8120
8123
  // $FlowFixMe
8121
8124
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8122
8125
  const videoTrack = stream.getVideoTracks()[0];
8123
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8126
+ let sender = pc && pc.getSenders
8127
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8124
8128
  let wasTrackEnabled = false;
8125
8129
  if (!sender) {
8126
- sender = pc && pc.getSenders().find(s => !s.track);
8130
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8127
8131
  }
8128
8132
 
8129
8133
  if (sender) {
@@ -9657,7 +9661,7 @@ class WebRTCPhone extends Emitter {
9657
9661
  const screenTrack = screenShareStream.getVideoTracks()[0];
9658
9662
  const sipSession = this.currentSipSession;
9659
9663
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9660
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9664
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9661
9665
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9662
9666
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9663
9667
  const hadVideo = !!videoTrack;
@@ -9739,7 +9743,7 @@ class WebRTCPhone extends Emitter {
9739
9743
  const screenTrack = screenStream.getVideoTracks()[0];
9740
9744
  const sipSessionId = this.getSipSessionId(sipSession);
9741
9745
  const pc = this.client.getPeerConnection(sipSessionId);
9742
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9746
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9743
9747
 
9744
9748
  logger$7.info('WebRTC phone - on screensharing', {
9745
9749
  hadVideo,
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
7822
7822
  const videoTracks = localStream.getVideoTracks();
7823
7823
 
7824
7824
  // Remove video senders
7825
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7826
- videoSender.replaceTrack(null);
7827
- });
7825
+ if (pc.getSenders) {
7826
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7827
+ videoSender.replaceTrack(null);
7828
+ });
7829
+ }
7828
7830
 
7829
7831
  videoTracks.forEach(videoTrack => {
7830
7832
  videoTrack.enabled = false;
@@ -8057,7 +8059,8 @@ class WebRTCClient extends Emitter {
8057
8059
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8058
8060
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8059
8061
  const audioTrack = stream.getAudioTracks()[0];
8060
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8062
+ const sender = pc && pc.getSenders
8063
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8061
8064
 
8062
8065
  if (sender) {
8063
8066
  if (sender.track) {
@@ -8120,10 +8123,11 @@ class WebRTCClient extends Emitter {
8120
8123
  // $FlowFixMe
8121
8124
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8122
8125
  const videoTrack = stream.getVideoTracks()[0];
8123
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8126
+ let sender = pc && pc.getSenders
8127
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8124
8128
  let wasTrackEnabled = false;
8125
8129
  if (!sender) {
8126
- sender = pc && pc.getSenders().find(s => !s.track);
8130
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8127
8131
  }
8128
8132
 
8129
8133
  if (sender) {
@@ -9657,7 +9661,7 @@ class WebRTCPhone extends Emitter {
9657
9661
  const screenTrack = screenShareStream.getVideoTracks()[0];
9658
9662
  const sipSession = this.currentSipSession;
9659
9663
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9660
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9664
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9661
9665
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9662
9666
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9663
9667
  const hadVideo = !!videoTrack;
@@ -9739,7 +9743,7 @@ class WebRTCPhone extends Emitter {
9739
9743
  const screenTrack = screenStream.getVideoTracks()[0];
9740
9744
  const sipSessionId = this.getSipSessionId(sipSession);
9741
9745
  const pc = this.client.getPeerConnection(sipSessionId);
9742
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9746
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9743
9747
 
9744
9748
  logger$7.info('WebRTC phone - on screensharing', {
9745
9749
  hadVideo,
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
7822
7822
  const videoTracks = localStream.getVideoTracks();
7823
7823
 
7824
7824
  // Remove video senders
7825
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7826
- videoSender.replaceTrack(null);
7827
- });
7825
+ if (pc.getSenders) {
7826
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7827
+ videoSender.replaceTrack(null);
7828
+ });
7829
+ }
7828
7830
 
7829
7831
  videoTracks.forEach(videoTrack => {
7830
7832
  videoTrack.enabled = false;
@@ -8057,7 +8059,8 @@ class WebRTCClient extends Emitter {
8057
8059
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8058
8060
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8059
8061
  const audioTrack = stream.getAudioTracks()[0];
8060
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8062
+ const sender = pc && pc.getSenders
8063
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8061
8064
 
8062
8065
  if (sender) {
8063
8066
  if (sender.track) {
@@ -8120,10 +8123,11 @@ class WebRTCClient extends Emitter {
8120
8123
  // $FlowFixMe
8121
8124
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8122
8125
  const videoTrack = stream.getVideoTracks()[0];
8123
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8126
+ let sender = pc && pc.getSenders
8127
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8124
8128
  let wasTrackEnabled = false;
8125
8129
  if (!sender) {
8126
- sender = pc && pc.getSenders().find(s => !s.track);
8130
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8127
8131
  }
8128
8132
 
8129
8133
  if (sender) {
@@ -9657,7 +9661,7 @@ class WebRTCPhone extends Emitter {
9657
9661
  const screenTrack = screenShareStream.getVideoTracks()[0];
9658
9662
  const sipSession = this.currentSipSession;
9659
9663
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9660
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9664
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9661
9665
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9662
9666
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9663
9667
  const hadVideo = !!videoTrack;
@@ -9739,7 +9743,7 @@ class WebRTCPhone extends Emitter {
9739
9743
  const screenTrack = screenStream.getVideoTracks()[0];
9740
9744
  const sipSessionId = this.getSipSessionId(sipSession);
9741
9745
  const pc = this.client.getPeerConnection(sipSessionId);
9742
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9746
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9743
9747
 
9744
9748
  logger$7.info('WebRTC phone - on screensharing', {
9745
9749
  hadVideo,
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
7822
7822
  const videoTracks = localStream.getVideoTracks();
7823
7823
 
7824
7824
  // Remove video senders
7825
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7826
- videoSender.replaceTrack(null);
7827
- });
7825
+ if (pc.getSenders) {
7826
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7827
+ videoSender.replaceTrack(null);
7828
+ });
7829
+ }
7828
7830
 
7829
7831
  videoTracks.forEach(videoTrack => {
7830
7832
  videoTrack.enabled = false;
@@ -8057,7 +8059,8 @@ class WebRTCClient extends Emitter {
8057
8059
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8058
8060
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8059
8061
  const audioTrack = stream.getAudioTracks()[0];
8060
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8062
+ const sender = pc && pc.getSenders
8063
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8061
8064
 
8062
8065
  if (sender) {
8063
8066
  if (sender.track) {
@@ -8120,10 +8123,11 @@ class WebRTCClient extends Emitter {
8120
8123
  // $FlowFixMe
8121
8124
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8122
8125
  const videoTrack = stream.getVideoTracks()[0];
8123
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8126
+ let sender = pc && pc.getSenders
8127
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8124
8128
  let wasTrackEnabled = false;
8125
8129
  if (!sender) {
8126
- sender = pc && pc.getSenders().find(s => !s.track);
8130
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8127
8131
  }
8128
8132
 
8129
8133
  if (sender) {
@@ -9657,7 +9661,7 @@ class WebRTCPhone extends Emitter {
9657
9661
  const screenTrack = screenShareStream.getVideoTracks()[0];
9658
9662
  const sipSession = this.currentSipSession;
9659
9663
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9660
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9664
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9661
9665
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9662
9666
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9663
9667
  const hadVideo = !!videoTrack;
@@ -9739,7 +9743,7 @@ class WebRTCPhone extends Emitter {
9739
9743
  const screenTrack = screenStream.getVideoTracks()[0];
9740
9744
  const sipSessionId = this.getSipSessionId(sipSession);
9741
9745
  const pc = this.client.getPeerConnection(sipSessionId);
9742
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9746
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9743
9747
 
9744
9748
  logger$7.info('WebRTC phone - on screensharing', {
9745
9749
  hadVideo,
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
7822
7822
  const videoTracks = localStream.getVideoTracks();
7823
7823
 
7824
7824
  // Remove video senders
7825
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7826
- videoSender.replaceTrack(null);
7827
- });
7825
+ if (pc.getSenders) {
7826
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7827
+ videoSender.replaceTrack(null);
7828
+ });
7829
+ }
7828
7830
 
7829
7831
  videoTracks.forEach(videoTrack => {
7830
7832
  videoTrack.enabled = false;
@@ -8057,7 +8059,8 @@ class WebRTCClient extends Emitter {
8057
8059
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8058
8060
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8059
8061
  const audioTrack = stream.getAudioTracks()[0];
8060
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8062
+ const sender = pc && pc.getSenders
8063
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8061
8064
 
8062
8065
  if (sender) {
8063
8066
  if (sender.track) {
@@ -8120,10 +8123,11 @@ class WebRTCClient extends Emitter {
8120
8123
  // $FlowFixMe
8121
8124
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8122
8125
  const videoTrack = stream.getVideoTracks()[0];
8123
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8126
+ let sender = pc && pc.getSenders
8127
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8124
8128
  let wasTrackEnabled = false;
8125
8129
  if (!sender) {
8126
- sender = pc && pc.getSenders().find(s => !s.track);
8130
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8127
8131
  }
8128
8132
 
8129
8133
  if (sender) {
@@ -9657,7 +9661,7 @@ class WebRTCPhone extends Emitter {
9657
9661
  const screenTrack = screenShareStream.getVideoTracks()[0];
9658
9662
  const sipSession = this.currentSipSession;
9659
9663
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9660
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9664
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9661
9665
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9662
9666
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9663
9667
  const hadVideo = !!videoTrack;
@@ -9739,7 +9743,7 @@ class WebRTCPhone extends Emitter {
9739
9743
  const screenTrack = screenStream.getVideoTracks()[0];
9740
9744
  const sipSessionId = this.getSipSessionId(sipSession);
9741
9745
  const pc = this.client.getPeerConnection(sipSessionId);
9742
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9746
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9743
9747
 
9744
9748
  logger$7.info('WebRTC phone - on screensharing', {
9745
9749
  hadVideo,
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
7822
7822
  const videoTracks = localStream.getVideoTracks();
7823
7823
 
7824
7824
  // Remove video senders
7825
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7826
- videoSender.replaceTrack(null);
7827
- });
7825
+ if (pc.getSenders) {
7826
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7827
+ videoSender.replaceTrack(null);
7828
+ });
7829
+ }
7828
7830
 
7829
7831
  videoTracks.forEach(videoTrack => {
7830
7832
  videoTrack.enabled = false;
@@ -8057,7 +8059,8 @@ class WebRTCClient extends Emitter {
8057
8059
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8058
8060
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8059
8061
  const audioTrack = stream.getAudioTracks()[0];
8060
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8062
+ const sender = pc && pc.getSenders
8063
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8061
8064
 
8062
8065
  if (sender) {
8063
8066
  if (sender.track) {
@@ -8120,10 +8123,11 @@ class WebRTCClient extends Emitter {
8120
8123
  // $FlowFixMe
8121
8124
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8122
8125
  const videoTrack = stream.getVideoTracks()[0];
8123
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8126
+ let sender = pc && pc.getSenders
8127
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8124
8128
  let wasTrackEnabled = false;
8125
8129
  if (!sender) {
8126
- sender = pc && pc.getSenders().find(s => !s.track);
8130
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8127
8131
  }
8128
8132
 
8129
8133
  if (sender) {
@@ -9657,7 +9661,7 @@ class WebRTCPhone extends Emitter {
9657
9661
  const screenTrack = screenShareStream.getVideoTracks()[0];
9658
9662
  const sipSession = this.currentSipSession;
9659
9663
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9660
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9664
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9661
9665
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9662
9666
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9663
9667
  const hadVideo = !!videoTrack;
@@ -9739,7 +9743,7 @@ class WebRTCPhone extends Emitter {
9739
9743
  const screenTrack = screenStream.getVideoTracks()[0];
9740
9744
  const sipSessionId = this.getSipSessionId(sipSession);
9741
9745
  const pc = this.client.getPeerConnection(sipSessionId);
9742
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9746
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9743
9747
 
9744
9748
  logger$7.info('WebRTC phone - on screensharing', {
9745
9749
  hadVideo,
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
7822
7822
  const videoTracks = localStream.getVideoTracks();
7823
7823
 
7824
7824
  // Remove video senders
7825
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7826
- videoSender.replaceTrack(null);
7827
- });
7825
+ if (pc.getSenders) {
7826
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7827
+ videoSender.replaceTrack(null);
7828
+ });
7829
+ }
7828
7830
 
7829
7831
  videoTracks.forEach(videoTrack => {
7830
7832
  videoTrack.enabled = false;
@@ -8057,7 +8059,8 @@ class WebRTCClient extends Emitter {
8057
8059
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8058
8060
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8059
8061
  const audioTrack = stream.getAudioTracks()[0];
8060
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8062
+ const sender = pc && pc.getSenders
8063
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8061
8064
 
8062
8065
  if (sender) {
8063
8066
  if (sender.track) {
@@ -8120,10 +8123,11 @@ class WebRTCClient extends Emitter {
8120
8123
  // $FlowFixMe
8121
8124
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8122
8125
  const videoTrack = stream.getVideoTracks()[0];
8123
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8126
+ let sender = pc && pc.getSenders
8127
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8124
8128
  let wasTrackEnabled = false;
8125
8129
  if (!sender) {
8126
- sender = pc && pc.getSenders().find(s => !s.track);
8130
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8127
8131
  }
8128
8132
 
8129
8133
  if (sender) {
@@ -9657,7 +9661,7 @@ class WebRTCPhone extends Emitter {
9657
9661
  const screenTrack = screenShareStream.getVideoTracks()[0];
9658
9662
  const sipSession = this.currentSipSession;
9659
9663
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9660
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9664
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9661
9665
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9662
9666
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9663
9667
  const hadVideo = !!videoTrack;
@@ -9739,7 +9743,7 @@ class WebRTCPhone extends Emitter {
9739
9743
  const screenTrack = screenStream.getVideoTracks()[0];
9740
9744
  const sipSessionId = this.getSipSessionId(sipSession);
9741
9745
  const pc = this.client.getPeerConnection(sipSessionId);
9742
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9746
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9743
9747
 
9744
9748
  logger$7.info('WebRTC phone - on screensharing', {
9745
9749
  hadVideo,
@@ -6412,9 +6412,11 @@ class WebRTCClient extends Emitter {
6412
6412
  const videoTracks = localStream.getVideoTracks();
6413
6413
 
6414
6414
  // Remove video senders
6415
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6416
- videoSender.replaceTrack(null);
6417
- });
6415
+ if (pc.getSenders) {
6416
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6417
+ videoSender.replaceTrack(null);
6418
+ });
6419
+ }
6418
6420
 
6419
6421
  videoTracks.forEach(videoTrack => {
6420
6422
  videoTrack.enabled = false;
@@ -6647,7 +6649,8 @@ class WebRTCClient extends Emitter {
6647
6649
  const constraints = { audio: { deviceId: { exact: deviceId } } };
6648
6650
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
6649
6651
  const audioTrack = stream.getAudioTracks()[0];
6650
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6652
+ const sender = pc && pc.getSenders
6653
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6651
6654
 
6652
6655
  if (sender) {
6653
6656
  if (sender.track) {
@@ -6710,10 +6713,11 @@ class WebRTCClient extends Emitter {
6710
6713
  // $FlowFixMe
6711
6714
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
6712
6715
  const videoTrack = stream.getVideoTracks()[0];
6713
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6716
+ let sender = pc && pc.getSenders
6717
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6714
6718
  let wasTrackEnabled = false;
6715
6719
  if (!sender) {
6716
- sender = pc && pc.getSenders().find(s => !s.track);
6720
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
6717
6721
  }
6718
6722
 
6719
6723
  if (sender) {
@@ -6418,9 +6418,11 @@ class WebRTCClient extends Emitter {
6418
6418
  const videoTracks = localStream.getVideoTracks();
6419
6419
 
6420
6420
  // Remove video senders
6421
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6422
- videoSender.replaceTrack(null);
6423
- });
6421
+ if (pc.getSenders) {
6422
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6423
+ videoSender.replaceTrack(null);
6424
+ });
6425
+ }
6424
6426
 
6425
6427
  videoTracks.forEach(videoTrack => {
6426
6428
  videoTrack.enabled = false;
@@ -6653,7 +6655,8 @@ class WebRTCClient extends Emitter {
6653
6655
  const constraints = { audio: { deviceId: { exact: deviceId } } };
6654
6656
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
6655
6657
  const audioTrack = stream.getAudioTracks()[0];
6656
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6658
+ const sender = pc && pc.getSenders
6659
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6657
6660
 
6658
6661
  if (sender) {
6659
6662
  if (sender.track) {
@@ -6716,10 +6719,11 @@ class WebRTCClient extends Emitter {
6716
6719
  // $FlowFixMe
6717
6720
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
6718
6721
  const videoTrack = stream.getVideoTracks()[0];
6719
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6722
+ let sender = pc && pc.getSenders
6723
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6720
6724
  let wasTrackEnabled = false;
6721
6725
  if (!sender) {
6722
- sender = pc && pc.getSenders().find(s => !s.track);
6726
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
6723
6727
  }
6724
6728
 
6725
6729
  if (sender) {
@@ -7006,9 +7006,11 @@ class WebRTCClient extends Emitter {
7006
7006
  const videoTracks = localStream.getVideoTracks();
7007
7007
 
7008
7008
  // Remove video senders
7009
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7010
- videoSender.replaceTrack(null);
7011
- });
7009
+ if (pc.getSenders) {
7010
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7011
+ videoSender.replaceTrack(null);
7012
+ });
7013
+ }
7012
7014
 
7013
7015
  videoTracks.forEach(videoTrack => {
7014
7016
  videoTrack.enabled = false;
@@ -7241,7 +7243,8 @@ class WebRTCClient extends Emitter {
7241
7243
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7242
7244
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7243
7245
  const audioTrack = stream.getAudioTracks()[0];
7244
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7246
+ const sender = pc && pc.getSenders
7247
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7245
7248
 
7246
7249
  if (sender) {
7247
7250
  if (sender.track) {
@@ -7304,10 +7307,11 @@ class WebRTCClient extends Emitter {
7304
7307
  // $FlowFixMe
7305
7308
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7306
7309
  const videoTrack = stream.getVideoTracks()[0];
7307
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7310
+ let sender = pc && pc.getSenders
7311
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7308
7312
  let wasTrackEnabled = false;
7309
7313
  if (!sender) {
7310
- sender = pc && pc.getSenders().find(s => !s.track);
7314
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7311
7315
  }
7312
7316
 
7313
7317
  if (sender) {
@@ -7006,9 +7006,11 @@ class WebRTCClient extends Emitter {
7006
7006
  const videoTracks = localStream.getVideoTracks();
7007
7007
 
7008
7008
  // Remove video senders
7009
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7010
- videoSender.replaceTrack(null);
7011
- });
7009
+ if (pc.getSenders) {
7010
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7011
+ videoSender.replaceTrack(null);
7012
+ });
7013
+ }
7012
7014
 
7013
7015
  videoTracks.forEach(videoTrack => {
7014
7016
  videoTrack.enabled = false;
@@ -7241,7 +7243,8 @@ class WebRTCClient extends Emitter {
7241
7243
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7242
7244
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7243
7245
  const audioTrack = stream.getAudioTracks()[0];
7244
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7246
+ const sender = pc && pc.getSenders
7247
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7245
7248
 
7246
7249
  if (sender) {
7247
7250
  if (sender.track) {
@@ -7304,10 +7307,11 @@ class WebRTCClient extends Emitter {
7304
7307
  // $FlowFixMe
7305
7308
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7306
7309
  const videoTrack = stream.getVideoTracks()[0];
7307
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7310
+ let sender = pc && pc.getSenders
7311
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7308
7312
  let wasTrackEnabled = false;
7309
7313
  if (!sender) {
7310
- sender = pc && pc.getSenders().find(s => !s.track);
7314
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7311
7315
  }
7312
7316
 
7313
7317
  if (sender) {
@@ -6418,9 +6418,11 @@ class WebRTCClient extends Emitter {
6418
6418
  const videoTracks = localStream.getVideoTracks();
6419
6419
 
6420
6420
  // Remove video senders
6421
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6422
- videoSender.replaceTrack(null);
6423
- });
6421
+ if (pc.getSenders) {
6422
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6423
+ videoSender.replaceTrack(null);
6424
+ });
6425
+ }
6424
6426
 
6425
6427
  videoTracks.forEach(videoTrack => {
6426
6428
  videoTrack.enabled = false;
@@ -6653,7 +6655,8 @@ class WebRTCClient extends Emitter {
6653
6655
  const constraints = { audio: { deviceId: { exact: deviceId } } };
6654
6656
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
6655
6657
  const audioTrack = stream.getAudioTracks()[0];
6656
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6658
+ const sender = pc && pc.getSenders
6659
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6657
6660
 
6658
6661
  if (sender) {
6659
6662
  if (sender.track) {
@@ -6716,10 +6719,11 @@ class WebRTCClient extends Emitter {
6716
6719
  // $FlowFixMe
6717
6720
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
6718
6721
  const videoTrack = stream.getVideoTracks()[0];
6719
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6722
+ let sender = pc && pc.getSenders
6723
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6720
6724
  let wasTrackEnabled = false;
6721
6725
  if (!sender) {
6722
- sender = pc && pc.getSenders().find(s => !s.track);
6726
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
6723
6727
  }
6724
6728
 
6725
6729
  if (sender) {
@@ -6418,9 +6418,11 @@ class WebRTCClient extends Emitter {
6418
6418
  const videoTracks = localStream.getVideoTracks();
6419
6419
 
6420
6420
  // Remove video senders
6421
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6422
- videoSender.replaceTrack(null);
6423
- });
6421
+ if (pc.getSenders) {
6422
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6423
+ videoSender.replaceTrack(null);
6424
+ });
6425
+ }
6424
6426
 
6425
6427
  videoTracks.forEach(videoTrack => {
6426
6428
  videoTrack.enabled = false;
@@ -6653,7 +6655,8 @@ class WebRTCClient extends Emitter {
6653
6655
  const constraints = { audio: { deviceId: { exact: deviceId } } };
6654
6656
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
6655
6657
  const audioTrack = stream.getAudioTracks()[0];
6656
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6658
+ const sender = pc && pc.getSenders
6659
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6657
6660
 
6658
6661
  if (sender) {
6659
6662
  if (sender.track) {
@@ -6716,10 +6719,11 @@ class WebRTCClient extends Emitter {
6716
6719
  // $FlowFixMe
6717
6720
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
6718
6721
  const videoTrack = stream.getVideoTracks()[0];
6719
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6722
+ let sender = pc && pc.getSenders
6723
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6720
6724
  let wasTrackEnabled = false;
6721
6725
  if (!sender) {
6722
- sender = pc && pc.getSenders().find(s => !s.track);
6726
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
6723
6727
  }
6724
6728
 
6725
6729
  if (sender) {