@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
package/esm/simple/Phone.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,
|
|
@@ -13310,7 +13314,7 @@ SwitchboardCall.STATE = {
|
|
|
13310
13314
|
|
|
13311
13315
|
//
|
|
13312
13316
|
|
|
13313
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
13317
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
13314
13318
|
|
|
13315
13319
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
13316
13320
|
|
|
@@ -13324,6 +13328,7 @@ class Features {
|
|
|
13324
13328
|
|
|
13325
13329
|
|
|
13326
13330
|
|
|
13331
|
+
|
|
13327
13332
|
|
|
13328
13333
|
constructor() {
|
|
13329
13334
|
this._hasChat = true;
|
|
@@ -13332,6 +13337,7 @@ class Features {
|
|
|
13332
13337
|
this._hasFax = true;
|
|
13333
13338
|
this._hasMobileDoubleCall = true;
|
|
13334
13339
|
this._hasMobileGsm = true;
|
|
13340
|
+
this._hasMeeting = true;
|
|
13335
13341
|
}
|
|
13336
13342
|
|
|
13337
13343
|
async fetchAccess() {
|
|
@@ -13352,6 +13358,7 @@ class Features {
|
|
|
13352
13358
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
13353
13359
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
13354
13360
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
13361
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
13355
13362
|
}
|
|
13356
13363
|
|
|
13357
13364
|
hasChat() { return this._hasChat; }
|
|
@@ -13360,6 +13367,7 @@ class Features {
|
|
|
13360
13367
|
hasFax() { return this._hasFax; }
|
|
13361
13368
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
13362
13369
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
13370
|
+
hasMeeting() { return this._hasMeeting; }
|
|
13363
13371
|
|
|
13364
13372
|
_hasFeatures(scopes , featureName ) {
|
|
13365
13373
|
const scopeName = getScopeName(featureName);
|
package/esm/simple/index.js
CHANGED
|
@@ -7781,7 +7781,7 @@ class WebRTCClient extends Emitter {
|
|
|
7781
7781
|
|
|
7782
7782
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7783
7783
|
} else {
|
|
7784
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7784
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7785
7785
|
}
|
|
7786
7786
|
|
|
7787
7787
|
if (!videoSender) {
|
|
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
|
|
|
7822
7822
|
const videoTracks = localStream.getVideoTracks();
|
|
7823
7823
|
|
|
7824
7824
|
// Remove video senders
|
|
7825
|
-
pc.getSenders
|
|
7826
|
-
|
|
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
|
|
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
|
|
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,
|
|
@@ -13720,7 +13724,7 @@ SwitchboardCall.STATE = {
|
|
|
13720
13724
|
|
|
13721
13725
|
//
|
|
13722
13726
|
|
|
13723
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
13727
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
13724
13728
|
|
|
13725
13729
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
13726
13730
|
|
|
@@ -13734,6 +13738,7 @@ class Features {
|
|
|
13734
13738
|
|
|
13735
13739
|
|
|
13736
13740
|
|
|
13741
|
+
|
|
13737
13742
|
|
|
13738
13743
|
constructor() {
|
|
13739
13744
|
this._hasChat = true;
|
|
@@ -13742,6 +13747,7 @@ class Features {
|
|
|
13742
13747
|
this._hasFax = true;
|
|
13743
13748
|
this._hasMobileDoubleCall = true;
|
|
13744
13749
|
this._hasMobileGsm = true;
|
|
13750
|
+
this._hasMeeting = true;
|
|
13745
13751
|
}
|
|
13746
13752
|
|
|
13747
13753
|
async fetchAccess() {
|
|
@@ -13762,6 +13768,7 @@ class Features {
|
|
|
13762
13768
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
13763
13769
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
13764
13770
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
13771
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
13765
13772
|
}
|
|
13766
13773
|
|
|
13767
13774
|
hasChat() { return this._hasChat; }
|
|
@@ -13770,6 +13777,7 @@ class Features {
|
|
|
13770
13777
|
hasFax() { return this._hasFax; }
|
|
13771
13778
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
13772
13779
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
13780
|
+
hasMeeting() { return this._hasMeeting; }
|
|
13773
13781
|
|
|
13774
13782
|
_hasFeatures(scopes , featureName ) {
|
|
13775
13783
|
const scopeName = getScopeName(featureName);
|
|
@@ -7781,7 +7781,7 @@ class WebRTCClient extends Emitter {
|
|
|
7781
7781
|
|
|
7782
7782
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7783
7783
|
} else {
|
|
7784
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7784
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7785
7785
|
}
|
|
7786
7786
|
|
|
7787
7787
|
if (!videoSender) {
|
|
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
|
|
|
7822
7822
|
const videoTracks = localStream.getVideoTracks();
|
|
7823
7823
|
|
|
7824
7824
|
// Remove video senders
|
|
7825
|
-
pc.getSenders
|
|
7826
|
-
|
|
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
|
|
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
|
|
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,
|
|
@@ -12550,7 +12554,7 @@ SwitchboardCall.STATE = {
|
|
|
12550
12554
|
|
|
12551
12555
|
//
|
|
12552
12556
|
|
|
12553
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
12557
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
12554
12558
|
|
|
12555
12559
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
12556
12560
|
|
|
@@ -12564,6 +12568,7 @@ class Features {
|
|
|
12564
12568
|
|
|
12565
12569
|
|
|
12566
12570
|
|
|
12571
|
+
|
|
12567
12572
|
|
|
12568
12573
|
constructor() {
|
|
12569
12574
|
this._hasChat = true;
|
|
@@ -12572,6 +12577,7 @@ class Features {
|
|
|
12572
12577
|
this._hasFax = true;
|
|
12573
12578
|
this._hasMobileDoubleCall = true;
|
|
12574
12579
|
this._hasMobileGsm = true;
|
|
12580
|
+
this._hasMeeting = true;
|
|
12575
12581
|
}
|
|
12576
12582
|
|
|
12577
12583
|
async fetchAccess() {
|
|
@@ -12592,6 +12598,7 @@ class Features {
|
|
|
12592
12598
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
12593
12599
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
12594
12600
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
12601
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
12595
12602
|
}
|
|
12596
12603
|
|
|
12597
12604
|
hasChat() { return this._hasChat; }
|
|
@@ -12600,6 +12607,7 @@ class Features {
|
|
|
12600
12607
|
hasFax() { return this._hasFax; }
|
|
12601
12608
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
12602
12609
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
12610
|
+
hasMeeting() { return this._hasMeeting; }
|
|
12603
12611
|
|
|
12604
12612
|
_hasFeatures(scopes , featureName ) {
|
|
12605
12613
|
const scopeName = getScopeName(featureName);
|
|
@@ -7781,7 +7781,7 @@ class WebRTCClient extends Emitter {
|
|
|
7781
7781
|
|
|
7782
7782
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7783
7783
|
} else {
|
|
7784
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7784
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7785
7785
|
}
|
|
7786
7786
|
|
|
7787
7787
|
if (!videoSender) {
|
|
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
|
|
|
7822
7822
|
const videoTracks = localStream.getVideoTracks();
|
|
7823
7823
|
|
|
7824
7824
|
// Remove video senders
|
|
7825
|
-
pc.getSenders
|
|
7826
|
-
|
|
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
|
|
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
|
|
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,
|
|
@@ -12555,7 +12559,7 @@ SwitchboardCall.STATE = {
|
|
|
12555
12559
|
|
|
12556
12560
|
//
|
|
12557
12561
|
|
|
12558
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
12562
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
12559
12563
|
|
|
12560
12564
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
12561
12565
|
|
|
@@ -12569,6 +12573,7 @@ class Features {
|
|
|
12569
12573
|
|
|
12570
12574
|
|
|
12571
12575
|
|
|
12576
|
+
|
|
12572
12577
|
|
|
12573
12578
|
constructor() {
|
|
12574
12579
|
this._hasChat = true;
|
|
@@ -12577,6 +12582,7 @@ class Features {
|
|
|
12577
12582
|
this._hasFax = true;
|
|
12578
12583
|
this._hasMobileDoubleCall = true;
|
|
12579
12584
|
this._hasMobileGsm = true;
|
|
12585
|
+
this._hasMeeting = true;
|
|
12580
12586
|
}
|
|
12581
12587
|
|
|
12582
12588
|
async fetchAccess() {
|
|
@@ -12597,6 +12603,7 @@ class Features {
|
|
|
12597
12603
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
12598
12604
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
12599
12605
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
12606
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
12600
12607
|
}
|
|
12601
12608
|
|
|
12602
12609
|
hasChat() { return this._hasChat; }
|
|
@@ -12605,6 +12612,7 @@ class Features {
|
|
|
12605
12612
|
hasFax() { return this._hasFax; }
|
|
12606
12613
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
12607
12614
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
12615
|
+
hasMeeting() { return this._hasMeeting; }
|
|
12608
12616
|
|
|
12609
12617
|
_hasFeatures(scopes , featureName ) {
|
|
12610
12618
|
const scopeName = getScopeName(featureName);
|
|
@@ -7781,7 +7781,7 @@ class WebRTCClient extends Emitter {
|
|
|
7781
7781
|
|
|
7782
7782
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7783
7783
|
} else {
|
|
7784
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7784
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7785
7785
|
}
|
|
7786
7786
|
|
|
7787
7787
|
if (!videoSender) {
|
|
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
|
|
|
7822
7822
|
const videoTracks = localStream.getVideoTracks();
|
|
7823
7823
|
|
|
7824
7824
|
// Remove video senders
|
|
7825
|
-
pc.getSenders
|
|
7826
|
-
|
|
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
|
|
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
|
|
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,
|
|
@@ -12873,7 +12877,7 @@ SwitchboardCall.STATE = {
|
|
|
12873
12877
|
|
|
12874
12878
|
//
|
|
12875
12879
|
|
|
12876
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
12880
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
12877
12881
|
|
|
12878
12882
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
12879
12883
|
|
|
@@ -12887,6 +12891,7 @@ class Features {
|
|
|
12887
12891
|
|
|
12888
12892
|
|
|
12889
12893
|
|
|
12894
|
+
|
|
12890
12895
|
|
|
12891
12896
|
constructor() {
|
|
12892
12897
|
this._hasChat = true;
|
|
@@ -12895,6 +12900,7 @@ class Features {
|
|
|
12895
12900
|
this._hasFax = true;
|
|
12896
12901
|
this._hasMobileDoubleCall = true;
|
|
12897
12902
|
this._hasMobileGsm = true;
|
|
12903
|
+
this._hasMeeting = true;
|
|
12898
12904
|
}
|
|
12899
12905
|
|
|
12900
12906
|
async fetchAccess() {
|
|
@@ -12915,6 +12921,7 @@ class Features {
|
|
|
12915
12921
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
12916
12922
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
12917
12923
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
12924
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
12918
12925
|
}
|
|
12919
12926
|
|
|
12920
12927
|
hasChat() { return this._hasChat; }
|
|
@@ -12923,6 +12930,7 @@ class Features {
|
|
|
12923
12930
|
hasFax() { return this._hasFax; }
|
|
12924
12931
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
12925
12932
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
12933
|
+
hasMeeting() { return this._hasMeeting; }
|
|
12926
12934
|
|
|
12927
12935
|
_hasFeatures(scopes , featureName ) {
|
|
12928
12936
|
const scopeName = getScopeName(featureName);
|
package/esm/simple/room/Room.js
CHANGED
|
@@ -7781,7 +7781,7 @@ class WebRTCClient extends Emitter {
|
|
|
7781
7781
|
|
|
7782
7782
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
7783
7783
|
} else {
|
|
7784
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
7784
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
7785
7785
|
}
|
|
7786
7786
|
|
|
7787
7787
|
if (!videoSender) {
|
|
@@ -7822,9 +7822,11 @@ class WebRTCClient extends Emitter {
|
|
|
7822
7822
|
const videoTracks = localStream.getVideoTracks();
|
|
7823
7823
|
|
|
7824
7824
|
// Remove video senders
|
|
7825
|
-
pc.getSenders
|
|
7826
|
-
|
|
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
|
|
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
|
|
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,
|
|
@@ -12884,7 +12888,7 @@ SwitchboardCall.STATE = {
|
|
|
12884
12888
|
|
|
12885
12889
|
//
|
|
12886
12890
|
|
|
12887
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
12891
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
12888
12892
|
|
|
12889
12893
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
12890
12894
|
|
|
@@ -12898,6 +12902,7 @@ class Features {
|
|
|
12898
12902
|
|
|
12899
12903
|
|
|
12900
12904
|
|
|
12905
|
+
|
|
12901
12906
|
|
|
12902
12907
|
constructor() {
|
|
12903
12908
|
this._hasChat = true;
|
|
@@ -12906,6 +12911,7 @@ class Features {
|
|
|
12906
12911
|
this._hasFax = true;
|
|
12907
12912
|
this._hasMobileDoubleCall = true;
|
|
12908
12913
|
this._hasMobileGsm = true;
|
|
12914
|
+
this._hasMeeting = true;
|
|
12909
12915
|
}
|
|
12910
12916
|
|
|
12911
12917
|
async fetchAccess() {
|
|
@@ -12926,6 +12932,7 @@ class Features {
|
|
|
12926
12932
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
12927
12933
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
12928
12934
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
12935
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
12929
12936
|
}
|
|
12930
12937
|
|
|
12931
12938
|
hasChat() { return this._hasChat; }
|
|
@@ -12934,6 +12941,7 @@ class Features {
|
|
|
12934
12941
|
hasFax() { return this._hasFax; }
|
|
12935
12942
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
12936
12943
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
12944
|
+
hasMeeting() { return this._hasMeeting; }
|
|
12937
12945
|
|
|
12938
12946
|
_hasFeatures(scopes , featureName ) {
|
|
12939
12947
|
const scopeName = getScopeName(featureName);
|