@wazo/sdk 0.38.10 → 0.38.13
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.
- package/dist/wazo-sdk.js +2 -2
- package/esm/__tests__/web-rtc-client.test.js +11 -7
- package/esm/checker/Checker.js +11 -7
- package/esm/checker/checks/index.js +11 -7
- package/esm/checker/checks/webrtc-transport.js +11 -7
- package/esm/checker/checks/webrtc.js +11 -7
- package/esm/domain/Features.js +5 -1
- package/esm/domain/Phone/WebRTCPhone.js +2 -2
- package/esm/index.js +18 -10
- package/esm/simple/Auth.js +18 -10
- package/esm/simple/Configuration.js +18 -10
- package/esm/simple/Phone.js +18 -10
- package/esm/simple/index.js +18 -10
- package/esm/simple/room/LocalParticipant.js +18 -10
- package/esm/simple/room/Participant.js +18 -10
- package/esm/simple/room/RemoteParticipant.js +18 -10
- package/esm/simple/room/Room.js +18 -10
- package/esm/simple/room/SipRoom.js +18 -10
- package/esm/simple/room/Stream.js +18 -10
- package/esm/simple/room/__tests__/Participant.test.js +18 -10
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +18 -10
- package/esm/simple/utils.js +18 -10
- package/esm/web-rtc-client.js +11 -7
- package/lib/__tests__/web-rtc-client.test.js +11 -7
- package/lib/checker/Checker.js +11 -7
- package/lib/checker/checks/index.js +11 -7
- package/lib/checker/checks/webrtc-transport.js +11 -7
- package/lib/checker/checks/webrtc.js +11 -7
- package/lib/domain/Features.js +5 -1
- package/lib/domain/Phone/WebRTCPhone.js +2 -2
- package/lib/index.js +18 -10
- package/lib/simple/Auth.js +18 -10
- package/lib/simple/Configuration.js +18 -10
- package/lib/simple/Phone.js +18 -10
- package/lib/simple/index.js +18 -10
- package/lib/simple/room/LocalParticipant.js +18 -10
- package/lib/simple/room/Participant.js +18 -10
- package/lib/simple/room/RemoteParticipant.js +18 -10
- package/lib/simple/room/Room.js +18 -10
- package/lib/simple/room/SipRoom.js +18 -10
- package/lib/simple/room/Stream.js +18 -10
- package/lib/simple/room/__tests__/Participant.test.js +18 -10
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +18 -10
- package/lib/simple/utils.js +18 -10
- package/lib/web-rtc-client.js +11 -7
- package/package.json +1 -1
- package/src/domain/Features.js +5 -1
- package/src/domain/Phone/WebRTCPhone.js +2 -2
- package/src/web-rtc-client.js +11 -7
|
@@ -6368,7 +6368,7 @@ class WebRTCClient extends Emitter {
|
|
|
6368
6368
|
|
|
6369
6369
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6370
6370
|
} else {
|
|
6371
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
6371
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
6372
6372
|
}
|
|
6373
6373
|
|
|
6374
6374
|
if (!videoSender) {
|
|
@@ -6409,9 +6409,11 @@ class WebRTCClient extends Emitter {
|
|
|
6409
6409
|
const videoTracks = localStream.getVideoTracks();
|
|
6410
6410
|
|
|
6411
6411
|
// Remove video senders
|
|
6412
|
-
pc.getSenders
|
|
6413
|
-
|
|
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
|
|
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
|
|
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) {
|
package/esm/checker/Checker.js
CHANGED
|
@@ -6955,7 +6955,7 @@ class WebRTCClient extends Emitter {
|
|
|
6955
6955
|
|
|
6956
6956
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6957
6957
|
} else {
|
|
6958
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
6958
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
6959
6959
|
}
|
|
6960
6960
|
|
|
6961
6961
|
if (!videoSender) {
|
|
@@ -6996,9 +6996,11 @@ class WebRTCClient extends Emitter {
|
|
|
6996
6996
|
const videoTracks = localStream.getVideoTracks();
|
|
6997
6997
|
|
|
6998
6998
|
// Remove video senders
|
|
6999
|
-
pc.getSenders
|
|
7000
|
-
|
|
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
|
|
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
|
|
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) {
|
|
@@ -6955,7 +6955,7 @@ class WebRTCClient extends Emitter {
|
|
|
6955
6955
|
|
|
6956
6956
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6957
6957
|
} else {
|
|
6958
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
6958
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
6959
6959
|
}
|
|
6960
6960
|
|
|
6961
6961
|
if (!videoSender) {
|
|
@@ -6996,9 +6996,11 @@ class WebRTCClient extends Emitter {
|
|
|
6996
6996
|
const videoTracks = localStream.getVideoTracks();
|
|
6997
6997
|
|
|
6998
6998
|
// Remove video senders
|
|
6999
|
-
pc.getSenders
|
|
7000
|
-
|
|
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
|
|
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
|
|
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) {
|
|
@@ -6368,7 +6368,7 @@ class WebRTCClient extends Emitter {
|
|
|
6368
6368
|
|
|
6369
6369
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6370
6370
|
} else {
|
|
6371
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
6371
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
6372
6372
|
}
|
|
6373
6373
|
|
|
6374
6374
|
if (!videoSender) {
|
|
@@ -6409,9 +6409,11 @@ class WebRTCClient extends Emitter {
|
|
|
6409
6409
|
const videoTracks = localStream.getVideoTracks();
|
|
6410
6410
|
|
|
6411
6411
|
// Remove video senders
|
|
6412
|
-
pc.getSenders
|
|
6413
|
-
|
|
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
|
|
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
|
|
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) {
|
|
@@ -6368,7 +6368,7 @@ class WebRTCClient extends Emitter {
|
|
|
6368
6368
|
|
|
6369
6369
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6370
6370
|
} else {
|
|
6371
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
6371
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
6372
6372
|
}
|
|
6373
6373
|
|
|
6374
6374
|
if (!videoSender) {
|
|
@@ -6409,9 +6409,11 @@ class WebRTCClient extends Emitter {
|
|
|
6409
6409
|
const videoTracks = localStream.getVideoTracks();
|
|
6410
6410
|
|
|
6411
6411
|
// Remove video senders
|
|
6412
|
-
pc.getSenders
|
|
6413
|
-
|
|
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
|
|
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
|
|
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) {
|
package/esm/domain/Features.js
CHANGED
|
@@ -4943,7 +4943,7 @@ var getApiClient = (forServer = null) => {
|
|
|
4943
4943
|
|
|
4944
4944
|
//
|
|
4945
4945
|
|
|
4946
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
4946
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
4947
4947
|
|
|
4948
4948
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
4949
4949
|
|
|
@@ -4957,6 +4957,7 @@ class Features {
|
|
|
4957
4957
|
|
|
4958
4958
|
|
|
4959
4959
|
|
|
4960
|
+
|
|
4960
4961
|
|
|
4961
4962
|
constructor() {
|
|
4962
4963
|
this._hasChat = true;
|
|
@@ -4965,6 +4966,7 @@ class Features {
|
|
|
4965
4966
|
this._hasFax = true;
|
|
4966
4967
|
this._hasMobileDoubleCall = true;
|
|
4967
4968
|
this._hasMobileGsm = true;
|
|
4969
|
+
this._hasMeeting = true;
|
|
4968
4970
|
}
|
|
4969
4971
|
|
|
4970
4972
|
async fetchAccess() {
|
|
@@ -4985,6 +4987,7 @@ class Features {
|
|
|
4985
4987
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
4986
4988
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
4987
4989
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
4990
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
4988
4991
|
}
|
|
4989
4992
|
|
|
4990
4993
|
hasChat() { return this._hasChat; }
|
|
@@ -4993,6 +4996,7 @@ class Features {
|
|
|
4993
4996
|
hasFax() { return this._hasFax; }
|
|
4994
4997
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
4995
4998
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
4999
|
+
hasMeeting() { return this._hasMeeting; }
|
|
4996
5000
|
|
|
4997
5001
|
_hasFeatures(scopes , featureName ) {
|
|
4998
5002
|
const scopeName = getScopeName(featureName);
|
|
@@ -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
|
@@ -7272,7 +7272,7 @@ class WebRTCClient extends Emitter {
|
|
|
7272
7272
|
|
|
7273
7273
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7274
7274
|
} else {
|
|
7275
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7275
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7276
7276
|
}
|
|
7277
7277
|
|
|
7278
7278
|
if (!videoSender) {
|
|
@@ -7313,9 +7313,11 @@ class WebRTCClient extends Emitter {
|
|
|
7313
7313
|
const videoTracks = localStream.getVideoTracks();
|
|
7314
7314
|
|
|
7315
7315
|
// Remove video senders
|
|
7316
|
-
pc.getSenders
|
|
7317
|
-
|
|
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
|
|
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
|
|
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) {
|
|
@@ -9215,7 +9219,7 @@ var COUNTRIES = {
|
|
|
9215
9219
|
|
|
9216
9220
|
//
|
|
9217
9221
|
|
|
9218
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
9222
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
9219
9223
|
|
|
9220
9224
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
9221
9225
|
|
|
@@ -9229,6 +9233,7 @@ class Features {
|
|
|
9229
9233
|
|
|
9230
9234
|
|
|
9231
9235
|
|
|
9236
|
+
|
|
9232
9237
|
|
|
9233
9238
|
constructor() {
|
|
9234
9239
|
this._hasChat = true;
|
|
@@ -9237,6 +9242,7 @@ class Features {
|
|
|
9237
9242
|
this._hasFax = true;
|
|
9238
9243
|
this._hasMobileDoubleCall = true;
|
|
9239
9244
|
this._hasMobileGsm = true;
|
|
9245
|
+
this._hasMeeting = true;
|
|
9240
9246
|
}
|
|
9241
9247
|
|
|
9242
9248
|
async fetchAccess() {
|
|
@@ -9257,6 +9263,7 @@ class Features {
|
|
|
9257
9263
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
9258
9264
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
9259
9265
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
9266
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
9260
9267
|
}
|
|
9261
9268
|
|
|
9262
9269
|
hasChat() { return this._hasChat; }
|
|
@@ -9265,6 +9272,7 @@ class Features {
|
|
|
9265
9272
|
hasFax() { return this._hasFax; }
|
|
9266
9273
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
9267
9274
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
9275
|
+
hasMeeting() { return this._hasMeeting; }
|
|
9268
9276
|
|
|
9269
9277
|
_hasFeatures(scopes , featureName ) {
|
|
9270
9278
|
const scopeName = getScopeName(featureName);
|
|
@@ -10052,7 +10060,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10052
10060
|
const screenTrack = screenShareStream.getVideoTracks()[0];
|
|
10053
10061
|
const sipSession = this.currentSipSession;
|
|
10054
10062
|
const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
|
|
10055
|
-
const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
|
|
10063
|
+
const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
|
|
10056
10064
|
const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
|
|
10057
10065
|
const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
|
|
10058
10066
|
const hadVideo = !!videoTrack;
|
|
@@ -10134,7 +10142,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10134
10142
|
const screenTrack = screenStream.getVideoTracks()[0];
|
|
10135
10143
|
const sipSessionId = this.getSipSessionId(sipSession);
|
|
10136
10144
|
const pc = this.client.getPeerConnection(sipSessionId);
|
|
10137
|
-
const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
|
|
10145
|
+
const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
|
|
10138
10146
|
|
|
10139
10147
|
logger$7.info('WebRTC phone - on screensharing', {
|
|
10140
10148
|
hadVideo,
|
package/esm/simple/Auth.js
CHANGED
|
@@ -7450,7 +7450,7 @@ class WebRTCClient extends Emitter {
|
|
|
7450
7450
|
|
|
7451
7451
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7452
7452
|
} else {
|
|
7453
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7453
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7454
7454
|
}
|
|
7455
7455
|
|
|
7456
7456
|
if (!videoSender) {
|
|
@@ -7491,9 +7491,11 @@ class WebRTCClient extends Emitter {
|
|
|
7491
7491
|
const videoTracks = localStream.getVideoTracks();
|
|
7492
7492
|
|
|
7493
7493
|
// Remove video senders
|
|
7494
|
-
pc.getSenders
|
|
7495
|
-
|
|
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
|
|
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
|
|
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,
|
|
@@ -13389,7 +13393,7 @@ SwitchboardCall.STATE = {
|
|
|
13389
13393
|
|
|
13390
13394
|
//
|
|
13391
13395
|
|
|
13392
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
13396
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
13393
13397
|
|
|
13394
13398
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
13395
13399
|
|
|
@@ -13403,6 +13407,7 @@ class Features {
|
|
|
13403
13407
|
|
|
13404
13408
|
|
|
13405
13409
|
|
|
13410
|
+
|
|
13406
13411
|
|
|
13407
13412
|
constructor() {
|
|
13408
13413
|
this._hasChat = true;
|
|
@@ -13411,6 +13416,7 @@ class Features {
|
|
|
13411
13416
|
this._hasFax = true;
|
|
13412
13417
|
this._hasMobileDoubleCall = true;
|
|
13413
13418
|
this._hasMobileGsm = true;
|
|
13419
|
+
this._hasMeeting = true;
|
|
13414
13420
|
}
|
|
13415
13421
|
|
|
13416
13422
|
async fetchAccess() {
|
|
@@ -13431,6 +13437,7 @@ class Features {
|
|
|
13431
13437
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
13432
13438
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
13433
13439
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
13440
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
13434
13441
|
}
|
|
13435
13442
|
|
|
13436
13443
|
hasChat() { return this._hasChat; }
|
|
@@ -13439,6 +13446,7 @@ class Features {
|
|
|
13439
13446
|
hasFax() { return this._hasFax; }
|
|
13440
13447
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
13441
13448
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
13449
|
+
hasMeeting() { return this._hasMeeting; }
|
|
13442
13450
|
|
|
13443
13451
|
_hasFeatures(scopes , featureName ) {
|
|
13444
13452
|
const scopeName = getScopeName(featureName);
|
|
@@ -7450,7 +7450,7 @@ class WebRTCClient extends Emitter {
|
|
|
7450
7450
|
|
|
7451
7451
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7452
7452
|
} else {
|
|
7453
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7453
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7454
7454
|
}
|
|
7455
7455
|
|
|
7456
7456
|
if (!videoSender) {
|
|
@@ -7491,9 +7491,11 @@ class WebRTCClient extends Emitter {
|
|
|
7491
7491
|
const videoTracks = localStream.getVideoTracks();
|
|
7492
7492
|
|
|
7493
7493
|
// Remove video senders
|
|
7494
|
-
pc.getSenders
|
|
7495
|
-
|
|
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
|
|
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
|
|
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,
|
|
@@ -13372,7 +13376,7 @@ SwitchboardCall.STATE = {
|
|
|
13372
13376
|
|
|
13373
13377
|
//
|
|
13374
13378
|
|
|
13375
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
13379
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
13376
13380
|
|
|
13377
13381
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
13378
13382
|
|
|
@@ -13386,6 +13390,7 @@ class Features {
|
|
|
13386
13390
|
|
|
13387
13391
|
|
|
13388
13392
|
|
|
13393
|
+
|
|
13389
13394
|
|
|
13390
13395
|
constructor() {
|
|
13391
13396
|
this._hasChat = true;
|
|
@@ -13394,6 +13399,7 @@ class Features {
|
|
|
13394
13399
|
this._hasFax = true;
|
|
13395
13400
|
this._hasMobileDoubleCall = true;
|
|
13396
13401
|
this._hasMobileGsm = true;
|
|
13402
|
+
this._hasMeeting = true;
|
|
13397
13403
|
}
|
|
13398
13404
|
|
|
13399
13405
|
async fetchAccess() {
|
|
@@ -13414,6 +13420,7 @@ class Features {
|
|
|
13414
13420
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
13415
13421
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
13416
13422
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
13423
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
13417
13424
|
}
|
|
13418
13425
|
|
|
13419
13426
|
hasChat() { return this._hasChat; }
|
|
@@ -13422,6 +13429,7 @@ class Features {
|
|
|
13422
13429
|
hasFax() { return this._hasFax; }
|
|
13423
13430
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
13424
13431
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
13432
|
+
hasMeeting() { return this._hasMeeting; }
|
|
13425
13433
|
|
|
13426
13434
|
_hasFeatures(scopes , featureName ) {
|
|
13427
13435
|
const scopeName = getScopeName(featureName);
|