@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
@@ -1405,7 +1405,7 @@ class WebRTCPhone extends Emitter {
1405
1405
  const screenTrack = screenShareStream.getVideoTracks()[0];
1406
1406
  const sipSession = this.currentSipSession;
1407
1407
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
1408
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1408
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1409
1409
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
1410
1410
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
1411
1411
  const hadVideo = !!videoTrack;
@@ -1487,7 +1487,7 @@ class WebRTCPhone extends Emitter {
1487
1487
  const screenTrack = screenStream.getVideoTracks()[0];
1488
1488
  const sipSessionId = this.getSipSessionId(sipSession);
1489
1489
  const pc = this.client.getPeerConnection(sipSessionId);
1490
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1490
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1491
1491
 
1492
1492
  logger.info('WebRTC phone - on screensharing', {
1493
1493
  hadVideo,
package/lib/index.js CHANGED
@@ -7324,9 +7324,11 @@ class WebRTCClient extends Emitter {
7324
7324
  const videoTracks = localStream.getVideoTracks();
7325
7325
 
7326
7326
  // Remove video senders
7327
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7328
- videoSender.replaceTrack(null);
7329
- });
7327
+ if (pc.getSenders) {
7328
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7329
+ videoSender.replaceTrack(null);
7330
+ });
7331
+ }
7330
7332
 
7331
7333
  videoTracks.forEach(videoTrack => {
7332
7334
  videoTrack.enabled = false;
@@ -7559,7 +7561,8 @@ class WebRTCClient extends Emitter {
7559
7561
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7560
7562
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7561
7563
  const audioTrack = stream.getAudioTracks()[0];
7562
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7564
+ const sender = pc && pc.getSenders
7565
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7563
7566
 
7564
7567
  if (sender) {
7565
7568
  if (sender.track) {
@@ -7622,10 +7625,11 @@ class WebRTCClient extends Emitter {
7622
7625
  // $FlowFixMe
7623
7626
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7624
7627
  const videoTrack = stream.getVideoTracks()[0];
7625
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7628
+ let sender = pc && pc.getSenders
7629
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7626
7630
  let wasTrackEnabled = false;
7627
7631
  if (!sender) {
7628
- sender = pc && pc.getSenders().find(s => !s.track);
7632
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7629
7633
  }
7630
7634
 
7631
7635
  if (sender) {
@@ -10063,7 +10067,7 @@ class WebRTCPhone extends Emitter {
10063
10067
  const screenTrack = screenShareStream.getVideoTracks()[0];
10064
10068
  const sipSession = this.currentSipSession;
10065
10069
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
10066
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10070
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10067
10071
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
10068
10072
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
10069
10073
  const hadVideo = !!videoTrack;
@@ -10145,7 +10149,7 @@ class WebRTCPhone extends Emitter {
10145
10149
  const screenTrack = screenStream.getVideoTracks()[0];
10146
10150
  const sipSessionId = this.getSipSessionId(sipSession);
10147
10151
  const pc = this.client.getPeerConnection(sipSessionId);
10148
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10152
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10149
10153
 
10150
10154
  logger$7.info('WebRTC phone - on screensharing', {
10151
10155
  hadVideo,
@@ -7503,9 +7503,11 @@ class WebRTCClient extends Emitter {
7503
7503
  const videoTracks = localStream.getVideoTracks();
7504
7504
 
7505
7505
  // Remove video senders
7506
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7507
- videoSender.replaceTrack(null);
7508
- });
7506
+ if (pc.getSenders) {
7507
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7508
+ videoSender.replaceTrack(null);
7509
+ });
7510
+ }
7509
7511
 
7510
7512
  videoTracks.forEach(videoTrack => {
7511
7513
  videoTrack.enabled = false;
@@ -7738,7 +7740,8 @@ class WebRTCClient extends Emitter {
7738
7740
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7739
7741
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7740
7742
  const audioTrack = stream.getAudioTracks()[0];
7741
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7743
+ const sender = pc && pc.getSenders
7744
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7742
7745
 
7743
7746
  if (sender) {
7744
7747
  if (sender.track) {
@@ -7801,10 +7804,11 @@ class WebRTCClient extends Emitter {
7801
7804
  // $FlowFixMe
7802
7805
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7803
7806
  const videoTrack = stream.getVideoTracks()[0];
7804
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7807
+ let sender = pc && pc.getSenders
7808
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7805
7809
  let wasTrackEnabled = false;
7806
7810
  if (!sender) {
7807
- sender = pc && pc.getSenders().find(s => !s.track);
7811
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7808
7812
  }
7809
7813
 
7810
7814
  if (sender) {
@@ -9338,7 +9342,7 @@ class WebRTCPhone extends Emitter {
9338
9342
  const screenTrack = screenShareStream.getVideoTracks()[0];
9339
9343
  const sipSession = this.currentSipSession;
9340
9344
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9341
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9345
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9342
9346
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9343
9347
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9344
9348
  const hadVideo = !!videoTrack;
@@ -9420,7 +9424,7 @@ class WebRTCPhone extends Emitter {
9420
9424
  const screenTrack = screenStream.getVideoTracks()[0];
9421
9425
  const sipSessionId = this.getSipSessionId(sipSession);
9422
9426
  const pc = this.client.getPeerConnection(sipSessionId);
9423
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9427
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9424
9428
 
9425
9429
  logger$8.info('WebRTC phone - on screensharing', {
9426
9430
  hadVideo,
@@ -7501,9 +7501,11 @@ class WebRTCClient extends Emitter {
7501
7501
  const videoTracks = localStream.getVideoTracks();
7502
7502
 
7503
7503
  // Remove video senders
7504
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7505
- videoSender.replaceTrack(null);
7506
- });
7504
+ if (pc.getSenders) {
7505
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7506
+ videoSender.replaceTrack(null);
7507
+ });
7508
+ }
7507
7509
 
7508
7510
  videoTracks.forEach(videoTrack => {
7509
7511
  videoTrack.enabled = false;
@@ -7736,7 +7738,8 @@ class WebRTCClient extends Emitter {
7736
7738
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7737
7739
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7738
7740
  const audioTrack = stream.getAudioTracks()[0];
7739
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7741
+ const sender = pc && pc.getSenders
7742
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7740
7743
 
7741
7744
  if (sender) {
7742
7745
  if (sender.track) {
@@ -7799,10 +7802,11 @@ class WebRTCClient extends Emitter {
7799
7802
  // $FlowFixMe
7800
7803
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7801
7804
  const videoTrack = stream.getVideoTracks()[0];
7802
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7805
+ let sender = pc && pc.getSenders
7806
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7803
7807
  let wasTrackEnabled = false;
7804
7808
  if (!sender) {
7805
- sender = pc && pc.getSenders().find(s => !s.track);
7809
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7806
7810
  }
7807
7811
 
7808
7812
  if (sender) {
@@ -9336,7 +9340,7 @@ class WebRTCPhone extends Emitter {
9336
9340
  const screenTrack = screenShareStream.getVideoTracks()[0];
9337
9341
  const sipSession = this.currentSipSession;
9338
9342
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9339
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9343
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9340
9344
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9341
9345
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9342
9346
  const hadVideo = !!videoTrack;
@@ -9418,7 +9422,7 @@ class WebRTCPhone extends Emitter {
9418
9422
  const screenTrack = screenStream.getVideoTracks()[0];
9419
9423
  const sipSessionId = this.getSipSessionId(sipSession);
9420
9424
  const pc = this.client.getPeerConnection(sipSessionId);
9421
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9425
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9422
9426
 
9423
9427
  logger$8.info('WebRTC phone - on screensharing', {
9424
9428
  hadVideo,
@@ -7501,9 +7501,11 @@ class WebRTCClient extends Emitter {
7501
7501
  const videoTracks = localStream.getVideoTracks();
7502
7502
 
7503
7503
  // Remove video senders
7504
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7505
- videoSender.replaceTrack(null);
7506
- });
7504
+ if (pc.getSenders) {
7505
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7506
+ videoSender.replaceTrack(null);
7507
+ });
7508
+ }
7507
7509
 
7508
7510
  videoTracks.forEach(videoTrack => {
7509
7511
  videoTrack.enabled = false;
@@ -7736,7 +7738,8 @@ class WebRTCClient extends Emitter {
7736
7738
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7737
7739
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7738
7740
  const audioTrack = stream.getAudioTracks()[0];
7739
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7741
+ const sender = pc && pc.getSenders
7742
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7740
7743
 
7741
7744
  if (sender) {
7742
7745
  if (sender.track) {
@@ -7799,10 +7802,11 @@ class WebRTCClient extends Emitter {
7799
7802
  // $FlowFixMe
7800
7803
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7801
7804
  const videoTrack = stream.getVideoTracks()[0];
7802
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7805
+ let sender = pc && pc.getSenders
7806
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7803
7807
  let wasTrackEnabled = false;
7804
7808
  if (!sender) {
7805
- sender = pc && pc.getSenders().find(s => !s.track);
7809
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7806
7810
  }
7807
7811
 
7808
7812
  if (sender) {
@@ -9336,7 +9340,7 @@ class WebRTCPhone extends Emitter {
9336
9340
  const screenTrack = screenShareStream.getVideoTracks()[0];
9337
9341
  const sipSession = this.currentSipSession;
9338
9342
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9339
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9343
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9340
9344
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9341
9345
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9342
9346
  const hadVideo = !!videoTrack;
@@ -9418,7 +9422,7 @@ class WebRTCPhone extends Emitter {
9418
9422
  const screenTrack = screenStream.getVideoTracks()[0];
9419
9423
  const sipSessionId = this.getSipSessionId(sipSession);
9420
9424
  const pc = this.client.getPeerConnection(sipSessionId);
9421
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9425
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9422
9426
 
9423
9427
  logger$8.info('WebRTC phone - on screensharing', {
9424
9428
  hadVideo,
@@ -7832,9 +7832,11 @@ class WebRTCClient extends Emitter {
7832
7832
  const videoTracks = localStream.getVideoTracks();
7833
7833
 
7834
7834
  // Remove video senders
7835
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7836
- videoSender.replaceTrack(null);
7837
- });
7835
+ if (pc.getSenders) {
7836
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7837
+ videoSender.replaceTrack(null);
7838
+ });
7839
+ }
7838
7840
 
7839
7841
  videoTracks.forEach(videoTrack => {
7840
7842
  videoTrack.enabled = false;
@@ -8067,7 +8069,8 @@ class WebRTCClient extends Emitter {
8067
8069
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8068
8070
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8069
8071
  const audioTrack = stream.getAudioTracks()[0];
8070
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8072
+ const sender = pc && pc.getSenders
8073
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8071
8074
 
8072
8075
  if (sender) {
8073
8076
  if (sender.track) {
@@ -8130,10 +8133,11 @@ class WebRTCClient extends Emitter {
8130
8133
  // $FlowFixMe
8131
8134
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8132
8135
  const videoTrack = stream.getVideoTracks()[0];
8133
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8136
+ let sender = pc && pc.getSenders
8137
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8134
8138
  let wasTrackEnabled = false;
8135
8139
  if (!sender) {
8136
- sender = pc && pc.getSenders().find(s => !s.track);
8140
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8137
8141
  }
8138
8142
 
8139
8143
  if (sender) {
@@ -9667,7 +9671,7 @@ class WebRTCPhone extends Emitter {
9667
9671
  const screenTrack = screenShareStream.getVideoTracks()[0];
9668
9672
  const sipSession = this.currentSipSession;
9669
9673
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9670
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9674
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9671
9675
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9672
9676
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9673
9677
  const hadVideo = !!videoTrack;
@@ -9749,7 +9753,7 @@ class WebRTCPhone extends Emitter {
9749
9753
  const screenTrack = screenStream.getVideoTracks()[0];
9750
9754
  const sipSessionId = this.getSipSessionId(sipSession);
9751
9755
  const pc = this.client.getPeerConnection(sipSessionId);
9752
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9756
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9753
9757
 
9754
9758
  logger$7.info('WebRTC phone - on screensharing', {
9755
9759
  hadVideo,
@@ -7832,9 +7832,11 @@ class WebRTCClient extends Emitter {
7832
7832
  const videoTracks = localStream.getVideoTracks();
7833
7833
 
7834
7834
  // Remove video senders
7835
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7836
- videoSender.replaceTrack(null);
7837
- });
7835
+ if (pc.getSenders) {
7836
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7837
+ videoSender.replaceTrack(null);
7838
+ });
7839
+ }
7838
7840
 
7839
7841
  videoTracks.forEach(videoTrack => {
7840
7842
  videoTrack.enabled = false;
@@ -8067,7 +8069,8 @@ class WebRTCClient extends Emitter {
8067
8069
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8068
8070
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8069
8071
  const audioTrack = stream.getAudioTracks()[0];
8070
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8072
+ const sender = pc && pc.getSenders
8073
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8071
8074
 
8072
8075
  if (sender) {
8073
8076
  if (sender.track) {
@@ -8130,10 +8133,11 @@ class WebRTCClient extends Emitter {
8130
8133
  // $FlowFixMe
8131
8134
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8132
8135
  const videoTrack = stream.getVideoTracks()[0];
8133
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8136
+ let sender = pc && pc.getSenders
8137
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8134
8138
  let wasTrackEnabled = false;
8135
8139
  if (!sender) {
8136
- sender = pc && pc.getSenders().find(s => !s.track);
8140
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8137
8141
  }
8138
8142
 
8139
8143
  if (sender) {
@@ -9667,7 +9671,7 @@ class WebRTCPhone extends Emitter {
9667
9671
  const screenTrack = screenShareStream.getVideoTracks()[0];
9668
9672
  const sipSession = this.currentSipSession;
9669
9673
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9670
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9674
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9671
9675
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9672
9676
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9673
9677
  const hadVideo = !!videoTrack;
@@ -9749,7 +9753,7 @@ class WebRTCPhone extends Emitter {
9749
9753
  const screenTrack = screenStream.getVideoTracks()[0];
9750
9754
  const sipSessionId = this.getSipSessionId(sipSession);
9751
9755
  const pc = this.client.getPeerConnection(sipSessionId);
9752
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9756
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9753
9757
 
9754
9758
  logger$7.info('WebRTC phone - on screensharing', {
9755
9759
  hadVideo,
@@ -7832,9 +7832,11 @@ class WebRTCClient extends Emitter {
7832
7832
  const videoTracks = localStream.getVideoTracks();
7833
7833
 
7834
7834
  // Remove video senders
7835
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7836
- videoSender.replaceTrack(null);
7837
- });
7835
+ if (pc.getSenders) {
7836
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7837
+ videoSender.replaceTrack(null);
7838
+ });
7839
+ }
7838
7840
 
7839
7841
  videoTracks.forEach(videoTrack => {
7840
7842
  videoTrack.enabled = false;
@@ -8067,7 +8069,8 @@ class WebRTCClient extends Emitter {
8067
8069
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8068
8070
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8069
8071
  const audioTrack = stream.getAudioTracks()[0];
8070
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8072
+ const sender = pc && pc.getSenders
8073
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8071
8074
 
8072
8075
  if (sender) {
8073
8076
  if (sender.track) {
@@ -8130,10 +8133,11 @@ class WebRTCClient extends Emitter {
8130
8133
  // $FlowFixMe
8131
8134
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8132
8135
  const videoTrack = stream.getVideoTracks()[0];
8133
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8136
+ let sender = pc && pc.getSenders
8137
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8134
8138
  let wasTrackEnabled = false;
8135
8139
  if (!sender) {
8136
- sender = pc && pc.getSenders().find(s => !s.track);
8140
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8137
8141
  }
8138
8142
 
8139
8143
  if (sender) {
@@ -9667,7 +9671,7 @@ class WebRTCPhone extends Emitter {
9667
9671
  const screenTrack = screenShareStream.getVideoTracks()[0];
9668
9672
  const sipSession = this.currentSipSession;
9669
9673
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9670
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9674
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9671
9675
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9672
9676
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9673
9677
  const hadVideo = !!videoTrack;
@@ -9749,7 +9753,7 @@ class WebRTCPhone extends Emitter {
9749
9753
  const screenTrack = screenStream.getVideoTracks()[0];
9750
9754
  const sipSessionId = this.getSipSessionId(sipSession);
9751
9755
  const pc = this.client.getPeerConnection(sipSessionId);
9752
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9756
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9753
9757
 
9754
9758
  logger$7.info('WebRTC phone - on screensharing', {
9755
9759
  hadVideo,
@@ -7832,9 +7832,11 @@ class WebRTCClient extends Emitter {
7832
7832
  const videoTracks = localStream.getVideoTracks();
7833
7833
 
7834
7834
  // Remove video senders
7835
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7836
- videoSender.replaceTrack(null);
7837
- });
7835
+ if (pc.getSenders) {
7836
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7837
+ videoSender.replaceTrack(null);
7838
+ });
7839
+ }
7838
7840
 
7839
7841
  videoTracks.forEach(videoTrack => {
7840
7842
  videoTrack.enabled = false;
@@ -8067,7 +8069,8 @@ class WebRTCClient extends Emitter {
8067
8069
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8068
8070
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8069
8071
  const audioTrack = stream.getAudioTracks()[0];
8070
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8072
+ const sender = pc && pc.getSenders
8073
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8071
8074
 
8072
8075
  if (sender) {
8073
8076
  if (sender.track) {
@@ -8130,10 +8133,11 @@ class WebRTCClient extends Emitter {
8130
8133
  // $FlowFixMe
8131
8134
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8132
8135
  const videoTrack = stream.getVideoTracks()[0];
8133
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8136
+ let sender = pc && pc.getSenders
8137
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8134
8138
  let wasTrackEnabled = false;
8135
8139
  if (!sender) {
8136
- sender = pc && pc.getSenders().find(s => !s.track);
8140
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8137
8141
  }
8138
8142
 
8139
8143
  if (sender) {
@@ -9667,7 +9671,7 @@ class WebRTCPhone extends Emitter {
9667
9671
  const screenTrack = screenShareStream.getVideoTracks()[0];
9668
9672
  const sipSession = this.currentSipSession;
9669
9673
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9670
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9674
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9671
9675
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9672
9676
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9673
9677
  const hadVideo = !!videoTrack;
@@ -9749,7 +9753,7 @@ class WebRTCPhone extends Emitter {
9749
9753
  const screenTrack = screenStream.getVideoTracks()[0];
9750
9754
  const sipSessionId = this.getSipSessionId(sipSession);
9751
9755
  const pc = this.client.getPeerConnection(sipSessionId);
9752
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9756
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9753
9757
 
9754
9758
  logger$7.info('WebRTC phone - on screensharing', {
9755
9759
  hadVideo,
@@ -7834,9 +7834,11 @@ class WebRTCClient extends Emitter {
7834
7834
  const videoTracks = localStream.getVideoTracks();
7835
7835
 
7836
7836
  // Remove video senders
7837
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7838
- videoSender.replaceTrack(null);
7839
- });
7837
+ if (pc.getSenders) {
7838
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7839
+ videoSender.replaceTrack(null);
7840
+ });
7841
+ }
7840
7842
 
7841
7843
  videoTracks.forEach(videoTrack => {
7842
7844
  videoTrack.enabled = false;
@@ -8069,7 +8071,8 @@ class WebRTCClient extends Emitter {
8069
8071
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8070
8072
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8071
8073
  const audioTrack = stream.getAudioTracks()[0];
8072
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8074
+ const sender = pc && pc.getSenders
8075
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8073
8076
 
8074
8077
  if (sender) {
8075
8078
  if (sender.track) {
@@ -8132,10 +8135,11 @@ class WebRTCClient extends Emitter {
8132
8135
  // $FlowFixMe
8133
8136
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8134
8137
  const videoTrack = stream.getVideoTracks()[0];
8135
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8138
+ let sender = pc && pc.getSenders
8139
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8136
8140
  let wasTrackEnabled = false;
8137
8141
  if (!sender) {
8138
- sender = pc && pc.getSenders().find(s => !s.track);
8142
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8139
8143
  }
8140
8144
 
8141
8145
  if (sender) {
@@ -9669,7 +9673,7 @@ class WebRTCPhone extends Emitter {
9669
9673
  const screenTrack = screenShareStream.getVideoTracks()[0];
9670
9674
  const sipSession = this.currentSipSession;
9671
9675
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9672
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9676
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9673
9677
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9674
9678
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9675
9679
  const hadVideo = !!videoTrack;
@@ -9751,7 +9755,7 @@ class WebRTCPhone extends Emitter {
9751
9755
  const screenTrack = screenStream.getVideoTracks()[0];
9752
9756
  const sipSessionId = this.getSipSessionId(sipSession);
9753
9757
  const pc = this.client.getPeerConnection(sipSessionId);
9754
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9758
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9755
9759
 
9756
9760
  logger$7.info('WebRTC phone - on screensharing', {
9757
9761
  hadVideo,
@@ -7832,9 +7832,11 @@ class WebRTCClient extends Emitter {
7832
7832
  const videoTracks = localStream.getVideoTracks();
7833
7833
 
7834
7834
  // Remove video senders
7835
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7836
- videoSender.replaceTrack(null);
7837
- });
7835
+ if (pc.getSenders) {
7836
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7837
+ videoSender.replaceTrack(null);
7838
+ });
7839
+ }
7838
7840
 
7839
7841
  videoTracks.forEach(videoTrack => {
7840
7842
  videoTrack.enabled = false;
@@ -8067,7 +8069,8 @@ class WebRTCClient extends Emitter {
8067
8069
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8068
8070
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8069
8071
  const audioTrack = stream.getAudioTracks()[0];
8070
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8072
+ const sender = pc && pc.getSenders
8073
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8071
8074
 
8072
8075
  if (sender) {
8073
8076
  if (sender.track) {
@@ -8130,10 +8133,11 @@ class WebRTCClient extends Emitter {
8130
8133
  // $FlowFixMe
8131
8134
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8132
8135
  const videoTrack = stream.getVideoTracks()[0];
8133
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8136
+ let sender = pc && pc.getSenders
8137
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8134
8138
  let wasTrackEnabled = false;
8135
8139
  if (!sender) {
8136
- sender = pc && pc.getSenders().find(s => !s.track);
8140
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8137
8141
  }
8138
8142
 
8139
8143
  if (sender) {
@@ -9667,7 +9671,7 @@ class WebRTCPhone extends Emitter {
9667
9671
  const screenTrack = screenShareStream.getVideoTracks()[0];
9668
9672
  const sipSession = this.currentSipSession;
9669
9673
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9670
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9674
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9671
9675
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9672
9676
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9673
9677
  const hadVideo = !!videoTrack;
@@ -9749,7 +9753,7 @@ class WebRTCPhone extends Emitter {
9749
9753
  const screenTrack = screenStream.getVideoTracks()[0];
9750
9754
  const sipSessionId = this.getSipSessionId(sipSession);
9751
9755
  const pc = this.client.getPeerConnection(sipSessionId);
9752
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9756
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9753
9757
 
9754
9758
  logger$7.info('WebRTC phone - on screensharing', {
9755
9759
  hadVideo,