@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
@@ -6409,9 +6409,11 @@ class WebRTCClient extends Emitter {
6409
6409
  const videoTracks = localStream.getVideoTracks();
6410
6410
 
6411
6411
  // Remove video senders
6412
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6413
- videoSender.replaceTrack(null);
6414
- });
6412
+ if (pc.getSenders) {
6413
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6414
+ videoSender.replaceTrack(null);
6415
+ });
6416
+ }
6415
6417
 
6416
6418
  videoTracks.forEach(videoTrack => {
6417
6419
  videoTrack.enabled = false;
@@ -6644,7 +6646,8 @@ class WebRTCClient extends Emitter {
6644
6646
  const constraints = { audio: { deviceId: { exact: deviceId } } };
6645
6647
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
6646
6648
  const audioTrack = stream.getAudioTracks()[0];
6647
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6649
+ const sender = pc && pc.getSenders
6650
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6648
6651
 
6649
6652
  if (sender) {
6650
6653
  if (sender.track) {
@@ -6707,10 +6710,11 @@ class WebRTCClient extends Emitter {
6707
6710
  // $FlowFixMe
6708
6711
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
6709
6712
  const videoTrack = stream.getVideoTracks()[0];
6710
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6713
+ let sender = pc && pc.getSenders
6714
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6711
6715
  let wasTrackEnabled = false;
6712
6716
  if (!sender) {
6713
- sender = pc && pc.getSenders().find(s => !s.track);
6717
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
6714
6718
  }
6715
6719
 
6716
6720
  if (sender) {
@@ -6996,9 +6996,11 @@ class WebRTCClient extends Emitter {
6996
6996
  const videoTracks = localStream.getVideoTracks();
6997
6997
 
6998
6998
  // Remove video senders
6999
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7000
- videoSender.replaceTrack(null);
7001
- });
6999
+ if (pc.getSenders) {
7000
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7001
+ videoSender.replaceTrack(null);
7002
+ });
7003
+ }
7002
7004
 
7003
7005
  videoTracks.forEach(videoTrack => {
7004
7006
  videoTrack.enabled = false;
@@ -7231,7 +7233,8 @@ class WebRTCClient extends Emitter {
7231
7233
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7232
7234
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7233
7235
  const audioTrack = stream.getAudioTracks()[0];
7234
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7236
+ const sender = pc && pc.getSenders
7237
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7235
7238
 
7236
7239
  if (sender) {
7237
7240
  if (sender.track) {
@@ -7294,10 +7297,11 @@ class WebRTCClient extends Emitter {
7294
7297
  // $FlowFixMe
7295
7298
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7296
7299
  const videoTrack = stream.getVideoTracks()[0];
7297
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7300
+ let sender = pc && pc.getSenders
7301
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7298
7302
  let wasTrackEnabled = false;
7299
7303
  if (!sender) {
7300
- sender = pc && pc.getSenders().find(s => !s.track);
7304
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7301
7305
  }
7302
7306
 
7303
7307
  if (sender) {
@@ -6996,9 +6996,11 @@ class WebRTCClient extends Emitter {
6996
6996
  const videoTracks = localStream.getVideoTracks();
6997
6997
 
6998
6998
  // Remove video senders
6999
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7000
- videoSender.replaceTrack(null);
7001
- });
6999
+ if (pc.getSenders) {
7000
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7001
+ videoSender.replaceTrack(null);
7002
+ });
7003
+ }
7002
7004
 
7003
7005
  videoTracks.forEach(videoTrack => {
7004
7006
  videoTrack.enabled = false;
@@ -7231,7 +7233,8 @@ class WebRTCClient extends Emitter {
7231
7233
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7232
7234
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7233
7235
  const audioTrack = stream.getAudioTracks()[0];
7234
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7236
+ const sender = pc && pc.getSenders
7237
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7235
7238
 
7236
7239
  if (sender) {
7237
7240
  if (sender.track) {
@@ -7294,10 +7297,11 @@ class WebRTCClient extends Emitter {
7294
7297
  // $FlowFixMe
7295
7298
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7296
7299
  const videoTrack = stream.getVideoTracks()[0];
7297
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7300
+ let sender = pc && pc.getSenders
7301
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7298
7302
  let wasTrackEnabled = false;
7299
7303
  if (!sender) {
7300
- sender = pc && pc.getSenders().find(s => !s.track);
7304
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7301
7305
  }
7302
7306
 
7303
7307
  if (sender) {
@@ -6409,9 +6409,11 @@ class WebRTCClient extends Emitter {
6409
6409
  const videoTracks = localStream.getVideoTracks();
6410
6410
 
6411
6411
  // Remove video senders
6412
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6413
- videoSender.replaceTrack(null);
6414
- });
6412
+ if (pc.getSenders) {
6413
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6414
+ videoSender.replaceTrack(null);
6415
+ });
6416
+ }
6415
6417
 
6416
6418
  videoTracks.forEach(videoTrack => {
6417
6419
  videoTrack.enabled = false;
@@ -6644,7 +6646,8 @@ class WebRTCClient extends Emitter {
6644
6646
  const constraints = { audio: { deviceId: { exact: deviceId } } };
6645
6647
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
6646
6648
  const audioTrack = stream.getAudioTracks()[0];
6647
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6649
+ const sender = pc && pc.getSenders
6650
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6648
6651
 
6649
6652
  if (sender) {
6650
6653
  if (sender.track) {
@@ -6707,10 +6710,11 @@ class WebRTCClient extends Emitter {
6707
6710
  // $FlowFixMe
6708
6711
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
6709
6712
  const videoTrack = stream.getVideoTracks()[0];
6710
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6713
+ let sender = pc && pc.getSenders
6714
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6711
6715
  let wasTrackEnabled = false;
6712
6716
  if (!sender) {
6713
- sender = pc && pc.getSenders().find(s => !s.track);
6717
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
6714
6718
  }
6715
6719
 
6716
6720
  if (sender) {
@@ -6409,9 +6409,11 @@ class WebRTCClient extends Emitter {
6409
6409
  const videoTracks = localStream.getVideoTracks();
6410
6410
 
6411
6411
  // Remove video senders
6412
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6413
- videoSender.replaceTrack(null);
6414
- });
6412
+ if (pc.getSenders) {
6413
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
6414
+ videoSender.replaceTrack(null);
6415
+ });
6416
+ }
6415
6417
 
6416
6418
  videoTracks.forEach(videoTrack => {
6417
6419
  videoTrack.enabled = false;
@@ -6644,7 +6646,8 @@ class WebRTCClient extends Emitter {
6644
6646
  const constraints = { audio: { deviceId: { exact: deviceId } } };
6645
6647
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
6646
6648
  const audioTrack = stream.getAudioTracks()[0];
6647
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6649
+ const sender = pc && pc.getSenders
6650
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
6648
6651
 
6649
6652
  if (sender) {
6650
6653
  if (sender.track) {
@@ -6707,10 +6710,11 @@ class WebRTCClient extends Emitter {
6707
6710
  // $FlowFixMe
6708
6711
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
6709
6712
  const videoTrack = stream.getVideoTracks()[0];
6710
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6713
+ let sender = pc && pc.getSenders
6714
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
6711
6715
  let wasTrackEnabled = false;
6712
6716
  if (!sender) {
6713
- sender = pc && pc.getSenders().find(s => !s.track);
6717
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
6714
6718
  }
6715
6719
 
6716
6720
  if (sender) {
@@ -1396,7 +1396,7 @@ class WebRTCPhone extends Emitter {
1396
1396
  const screenTrack = screenShareStream.getVideoTracks()[0];
1397
1397
  const sipSession = this.currentSipSession;
1398
1398
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
1399
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1399
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1400
1400
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
1401
1401
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
1402
1402
  const hadVideo = !!videoTrack;
@@ -1478,7 +1478,7 @@ class WebRTCPhone extends Emitter {
1478
1478
  const screenTrack = screenStream.getVideoTracks()[0];
1479
1479
  const sipSessionId = this.getSipSessionId(sipSession);
1480
1480
  const pc = this.client.getPeerConnection(sipSessionId);
1481
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1481
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
1482
1482
 
1483
1483
  logger.info('WebRTC phone - on screensharing', {
1484
1484
  hadVideo,
package/esm/index.js CHANGED
@@ -7313,9 +7313,11 @@ class WebRTCClient extends Emitter {
7313
7313
  const videoTracks = localStream.getVideoTracks();
7314
7314
 
7315
7315
  // Remove video senders
7316
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7317
- videoSender.replaceTrack(null);
7318
- });
7316
+ if (pc.getSenders) {
7317
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7318
+ videoSender.replaceTrack(null);
7319
+ });
7320
+ }
7319
7321
 
7320
7322
  videoTracks.forEach(videoTrack => {
7321
7323
  videoTrack.enabled = false;
@@ -7548,7 +7550,8 @@ class WebRTCClient extends Emitter {
7548
7550
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7549
7551
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7550
7552
  const audioTrack = stream.getAudioTracks()[0];
7551
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7553
+ const sender = pc && pc.getSenders
7554
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7552
7555
 
7553
7556
  if (sender) {
7554
7557
  if (sender.track) {
@@ -7611,10 +7614,11 @@ class WebRTCClient extends Emitter {
7611
7614
  // $FlowFixMe
7612
7615
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7613
7616
  const videoTrack = stream.getVideoTracks()[0];
7614
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7617
+ let sender = pc && pc.getSenders
7618
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7615
7619
  let wasTrackEnabled = false;
7616
7620
  if (!sender) {
7617
- sender = pc && pc.getSenders().find(s => !s.track);
7621
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7618
7622
  }
7619
7623
 
7620
7624
  if (sender) {
@@ -10052,7 +10056,7 @@ class WebRTCPhone extends Emitter {
10052
10056
  const screenTrack = screenShareStream.getVideoTracks()[0];
10053
10057
  const sipSession = this.currentSipSession;
10054
10058
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
10055
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10059
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10056
10060
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
10057
10061
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
10058
10062
  const hadVideo = !!videoTrack;
@@ -10134,7 +10138,7 @@ class WebRTCPhone extends Emitter {
10134
10138
  const screenTrack = screenStream.getVideoTracks()[0];
10135
10139
  const sipSessionId = this.getSipSessionId(sipSession);
10136
10140
  const pc = this.client.getPeerConnection(sipSessionId);
10137
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10141
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
10138
10142
 
10139
10143
  logger$7.info('WebRTC phone - on screensharing', {
10140
10144
  hadVideo,
@@ -7491,9 +7491,11 @@ class WebRTCClient extends Emitter {
7491
7491
  const videoTracks = localStream.getVideoTracks();
7492
7492
 
7493
7493
  // Remove video senders
7494
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7495
- videoSender.replaceTrack(null);
7496
- });
7494
+ if (pc.getSenders) {
7495
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7496
+ videoSender.replaceTrack(null);
7497
+ });
7498
+ }
7497
7499
 
7498
7500
  videoTracks.forEach(videoTrack => {
7499
7501
  videoTrack.enabled = false;
@@ -7726,7 +7728,8 @@ class WebRTCClient extends Emitter {
7726
7728
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7727
7729
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7728
7730
  const audioTrack = stream.getAudioTracks()[0];
7729
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7731
+ const sender = pc && pc.getSenders
7732
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7730
7733
 
7731
7734
  if (sender) {
7732
7735
  if (sender.track) {
@@ -7789,10 +7792,11 @@ class WebRTCClient extends Emitter {
7789
7792
  // $FlowFixMe
7790
7793
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7791
7794
  const videoTrack = stream.getVideoTracks()[0];
7792
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7795
+ let sender = pc && pc.getSenders
7796
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7793
7797
  let wasTrackEnabled = false;
7794
7798
  if (!sender) {
7795
- sender = pc && pc.getSenders().find(s => !s.track);
7799
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7796
7800
  }
7797
7801
 
7798
7802
  if (sender) {
@@ -9326,7 +9330,7 @@ class WebRTCPhone extends Emitter {
9326
9330
  const screenTrack = screenShareStream.getVideoTracks()[0];
9327
9331
  const sipSession = this.currentSipSession;
9328
9332
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9329
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9333
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9330
9334
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9331
9335
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9332
9336
  const hadVideo = !!videoTrack;
@@ -9408,7 +9412,7 @@ class WebRTCPhone extends Emitter {
9408
9412
  const screenTrack = screenStream.getVideoTracks()[0];
9409
9413
  const sipSessionId = this.getSipSessionId(sipSession);
9410
9414
  const pc = this.client.getPeerConnection(sipSessionId);
9411
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9415
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9412
9416
 
9413
9417
  logger$8.info('WebRTC phone - on screensharing', {
9414
9418
  hadVideo,
@@ -7491,9 +7491,11 @@ class WebRTCClient extends Emitter {
7491
7491
  const videoTracks = localStream.getVideoTracks();
7492
7492
 
7493
7493
  // Remove video senders
7494
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7495
- videoSender.replaceTrack(null);
7496
- });
7494
+ if (pc.getSenders) {
7495
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7496
+ videoSender.replaceTrack(null);
7497
+ });
7498
+ }
7497
7499
 
7498
7500
  videoTracks.forEach(videoTrack => {
7499
7501
  videoTrack.enabled = false;
@@ -7726,7 +7728,8 @@ class WebRTCClient extends Emitter {
7726
7728
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7727
7729
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7728
7730
  const audioTrack = stream.getAudioTracks()[0];
7729
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7731
+ const sender = pc && pc.getSenders
7732
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7730
7733
 
7731
7734
  if (sender) {
7732
7735
  if (sender.track) {
@@ -7789,10 +7792,11 @@ class WebRTCClient extends Emitter {
7789
7792
  // $FlowFixMe
7790
7793
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7791
7794
  const videoTrack = stream.getVideoTracks()[0];
7792
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7795
+ let sender = pc && pc.getSenders
7796
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7793
7797
  let wasTrackEnabled = false;
7794
7798
  if (!sender) {
7795
- sender = pc && pc.getSenders().find(s => !s.track);
7799
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7796
7800
  }
7797
7801
 
7798
7802
  if (sender) {
@@ -9326,7 +9330,7 @@ class WebRTCPhone extends Emitter {
9326
9330
  const screenTrack = screenShareStream.getVideoTracks()[0];
9327
9331
  const sipSession = this.currentSipSession;
9328
9332
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9329
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9333
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9330
9334
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9331
9335
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9332
9336
  const hadVideo = !!videoTrack;
@@ -9408,7 +9412,7 @@ class WebRTCPhone extends Emitter {
9408
9412
  const screenTrack = screenStream.getVideoTracks()[0];
9409
9413
  const sipSessionId = this.getSipSessionId(sipSession);
9410
9414
  const pc = this.client.getPeerConnection(sipSessionId);
9411
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9415
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9412
9416
 
9413
9417
  logger$8.info('WebRTC phone - on screensharing', {
9414
9418
  hadVideo,
@@ -7491,9 +7491,11 @@ class WebRTCClient extends Emitter {
7491
7491
  const videoTracks = localStream.getVideoTracks();
7492
7492
 
7493
7493
  // Remove video senders
7494
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7495
- videoSender.replaceTrack(null);
7496
- });
7494
+ if (pc.getSenders) {
7495
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7496
+ videoSender.replaceTrack(null);
7497
+ });
7498
+ }
7497
7499
 
7498
7500
  videoTracks.forEach(videoTrack => {
7499
7501
  videoTrack.enabled = false;
@@ -7726,7 +7728,8 @@ class WebRTCClient extends Emitter {
7726
7728
  const constraints = { audio: { deviceId: { exact: deviceId } } };
7727
7729
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
7728
7730
  const audioTrack = stream.getAudioTracks()[0];
7729
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7731
+ const sender = pc && pc.getSenders
7732
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7730
7733
 
7731
7734
  if (sender) {
7732
7735
  if (sender.track) {
@@ -7789,10 +7792,11 @@ class WebRTCClient extends Emitter {
7789
7792
  // $FlowFixMe
7790
7793
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
7791
7794
  const videoTrack = stream.getVideoTracks()[0];
7792
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7795
+ let sender = pc && pc.getSenders
7796
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
7793
7797
  let wasTrackEnabled = false;
7794
7798
  if (!sender) {
7795
- sender = pc && pc.getSenders().find(s => !s.track);
7799
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
7796
7800
  }
7797
7801
 
7798
7802
  if (sender) {
@@ -9326,7 +9330,7 @@ class WebRTCPhone extends Emitter {
9326
9330
  const screenTrack = screenShareStream.getVideoTracks()[0];
9327
9331
  const sipSession = this.currentSipSession;
9328
9332
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9329
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9333
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9330
9334
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9331
9335
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9332
9336
  const hadVideo = !!videoTrack;
@@ -9408,7 +9412,7 @@ class WebRTCPhone extends Emitter {
9408
9412
  const screenTrack = screenStream.getVideoTracks()[0];
9409
9413
  const sipSessionId = this.getSipSessionId(sipSession);
9410
9414
  const pc = this.client.getPeerConnection(sipSessionId);
9411
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9415
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9412
9416
 
9413
9417
  logger$8.info('WebRTC phone - on screensharing', {
9414
9418
  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,