@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
|
@@ -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,
|
|
@@ -13581,7 +13585,7 @@ SwitchboardCall.STATE = {
|
|
|
13581
13585
|
|
|
13582
13586
|
//
|
|
13583
13587
|
|
|
13584
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
13588
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
13585
13589
|
|
|
13586
13590
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
13587
13591
|
|
|
@@ -13595,6 +13599,7 @@ class Features {
|
|
|
13595
13599
|
|
|
13596
13600
|
|
|
13597
13601
|
|
|
13602
|
+
|
|
13598
13603
|
|
|
13599
13604
|
constructor() {
|
|
13600
13605
|
this._hasChat = true;
|
|
@@ -13603,6 +13608,7 @@ class Features {
|
|
|
13603
13608
|
this._hasFax = true;
|
|
13604
13609
|
this._hasMobileDoubleCall = true;
|
|
13605
13610
|
this._hasMobileGsm = true;
|
|
13611
|
+
this._hasMeeting = true;
|
|
13606
13612
|
}
|
|
13607
13613
|
|
|
13608
13614
|
async fetchAccess() {
|
|
@@ -13623,6 +13629,7 @@ class Features {
|
|
|
13623
13629
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
13624
13630
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
13625
13631
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
13632
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
13626
13633
|
}
|
|
13627
13634
|
|
|
13628
13635
|
hasChat() { return this._hasChat; }
|
|
@@ -13631,6 +13638,7 @@ class Features {
|
|
|
13631
13638
|
hasFax() { return this._hasFax; }
|
|
13632
13639
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
13633
13640
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
13641
|
+
hasMeeting() { return this._hasMeeting; }
|
|
13634
13642
|
|
|
13635
13643
|
_hasFeatures(scopes , featureName ) {
|
|
13636
13644
|
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,
|
|
@@ -13662,7 +13666,7 @@ SwitchboardCall.STATE = {
|
|
|
13662
13666
|
|
|
13663
13667
|
//
|
|
13664
13668
|
|
|
13665
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
13669
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
13666
13670
|
|
|
13667
13671
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
13668
13672
|
|
|
@@ -13676,6 +13680,7 @@ class Features {
|
|
|
13676
13680
|
|
|
13677
13681
|
|
|
13678
13682
|
|
|
13683
|
+
|
|
13679
13684
|
|
|
13680
13685
|
constructor() {
|
|
13681
13686
|
this._hasChat = true;
|
|
@@ -13684,6 +13689,7 @@ class Features {
|
|
|
13684
13689
|
this._hasFax = true;
|
|
13685
13690
|
this._hasMobileDoubleCall = true;
|
|
13686
13691
|
this._hasMobileGsm = true;
|
|
13692
|
+
this._hasMeeting = true;
|
|
13687
13693
|
}
|
|
13688
13694
|
|
|
13689
13695
|
async fetchAccess() {
|
|
@@ -13704,6 +13710,7 @@ class Features {
|
|
|
13704
13710
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
13705
13711
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
13706
13712
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
13713
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
13707
13714
|
}
|
|
13708
13715
|
|
|
13709
13716
|
hasChat() { return this._hasChat; }
|
|
@@ -13712,6 +13719,7 @@ class Features {
|
|
|
13712
13719
|
hasFax() { return this._hasFax; }
|
|
13713
13720
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
13714
13721
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
13722
|
+
hasMeeting() { return this._hasMeeting; }
|
|
13715
13723
|
|
|
13716
13724
|
_hasFeatures(scopes , featureName ) {
|
|
13717
13725
|
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,
|
|
@@ -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,
|
|
@@ -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);
|
package/esm/simple/utils.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,
|
|
@@ -13704,7 +13708,7 @@ SwitchboardCall.STATE = {
|
|
|
13704
13708
|
|
|
13705
13709
|
//
|
|
13706
13710
|
|
|
13707
|
-
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm'];
|
|
13711
|
+
const FEATURES = ['chat', 'video', 'call_recording', 'fax', 'mobile_double_call', 'mobile_gsm', 'meeting'];
|
|
13708
13712
|
|
|
13709
13713
|
const getScopeName = (featureName ) => `enterprise.app.${featureName}`;
|
|
13710
13714
|
|
|
@@ -13718,6 +13722,7 @@ class Features {
|
|
|
13718
13722
|
|
|
13719
13723
|
|
|
13720
13724
|
|
|
13725
|
+
|
|
13721
13726
|
|
|
13722
13727
|
constructor() {
|
|
13723
13728
|
this._hasChat = true;
|
|
@@ -13726,6 +13731,7 @@ class Features {
|
|
|
13726
13731
|
this._hasFax = true;
|
|
13727
13732
|
this._hasMobileDoubleCall = true;
|
|
13728
13733
|
this._hasMobileGsm = true;
|
|
13734
|
+
this._hasMeeting = true;
|
|
13729
13735
|
}
|
|
13730
13736
|
|
|
13731
13737
|
async fetchAccess() {
|
|
@@ -13746,6 +13752,7 @@ class Features {
|
|
|
13746
13752
|
this._hasFax = this._hasFeatures(scopes, 'fax');
|
|
13747
13753
|
this._hasMobileDoubleCall = this._hasFeatures(scopes, 'mobile_double_call');
|
|
13748
13754
|
this._hasMobileGsm = this._hasFeatures(scopes, 'mobile_gsm');
|
|
13755
|
+
this._hasMeeting = this._hasFeatures(scopes, 'meeting');
|
|
13749
13756
|
}
|
|
13750
13757
|
|
|
13751
13758
|
hasChat() { return this._hasChat; }
|
|
@@ -13754,6 +13761,7 @@ class Features {
|
|
|
13754
13761
|
hasFax() { return this._hasFax; }
|
|
13755
13762
|
hasMobileDoubleCall() { return this._hasMobileDoubleCall; }
|
|
13756
13763
|
hasMobileGsm() { return this._hasMobileGsm; }
|
|
13764
|
+
hasMeeting() { return this._hasMeeting; }
|
|
13757
13765
|
|
|
13758
13766
|
_hasFeatures(scopes , featureName ) {
|
|
13759
13767
|
const scopeName = getScopeName(featureName);
|
package/esm/web-rtc-client.js
CHANGED
|
@@ -6371,7 +6371,7 @@ class WebRTCClient extends Emitter {
|
|
|
6371
6371
|
|
|
6372
6372
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6373
6373
|
} else {
|
|
6374
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
6374
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
6375
6375
|
}
|
|
6376
6376
|
|
|
6377
6377
|
if (!videoSender) {
|
|
@@ -6412,9 +6412,11 @@ class WebRTCClient extends Emitter {
|
|
|
6412
6412
|
const videoTracks = localStream.getVideoTracks();
|
|
6413
6413
|
|
|
6414
6414
|
// Remove video senders
|
|
6415
|
-
pc.getSenders
|
|
6416
|
-
|
|
6417
|
-
|
|
6415
|
+
if (pc.getSenders) {
|
|
6416
|
+
pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
|
|
6417
|
+
videoSender.replaceTrack(null);
|
|
6418
|
+
});
|
|
6419
|
+
}
|
|
6418
6420
|
|
|
6419
6421
|
videoTracks.forEach(videoTrack => {
|
|
6420
6422
|
videoTrack.enabled = false;
|
|
@@ -6647,7 +6649,8 @@ class WebRTCClient extends Emitter {
|
|
|
6647
6649
|
const constraints = { audio: { deviceId: { exact: deviceId } } };
|
|
6648
6650
|
const stream = await navigator.mediaDevices.getUserMedia(constraints);
|
|
6649
6651
|
const audioTrack = stream.getAudioTracks()[0];
|
|
6650
|
-
const sender = pc && pc.getSenders
|
|
6652
|
+
const sender = pc && pc.getSenders
|
|
6653
|
+
&& pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
|
|
6651
6654
|
|
|
6652
6655
|
if (sender) {
|
|
6653
6656
|
if (sender.track) {
|
|
@@ -6710,10 +6713,11 @@ class WebRTCClient extends Emitter {
|
|
|
6710
6713
|
// $FlowFixMe
|
|
6711
6714
|
return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
|
|
6712
6715
|
const videoTrack = stream.getVideoTracks()[0];
|
|
6713
|
-
let sender = pc && pc.getSenders
|
|
6716
|
+
let sender = pc && pc.getSenders
|
|
6717
|
+
&& pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
|
|
6714
6718
|
let wasTrackEnabled = false;
|
|
6715
6719
|
if (!sender) {
|
|
6716
|
-
sender = pc && pc.getSenders().find(s => !s.track);
|
|
6720
|
+
sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
|
|
6717
6721
|
}
|
|
6718
6722
|
|
|
6719
6723
|
if (sender) {
|
|
@@ -6377,7 +6377,7 @@ class WebRTCClient extends Emitter {
|
|
|
6377
6377
|
|
|
6378
6378
|
videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
|
|
6379
6379
|
} else {
|
|
6380
|
-
videoSender = pc.getSenders().find(sender => sender.track === null);
|
|
6380
|
+
videoSender = pc && pc.getSenders && pc.getSenders().find(sender => sender.track === null);
|
|
6381
6381
|
}
|
|
6382
6382
|
|
|
6383
6383
|
if (!videoSender) {
|
|
@@ -6418,9 +6418,11 @@ class WebRTCClient extends Emitter {
|
|
|
6418
6418
|
const videoTracks = localStream.getVideoTracks();
|
|
6419
6419
|
|
|
6420
6420
|
// Remove video senders
|
|
6421
|
-
pc.getSenders
|
|
6422
|
-
|
|
6423
|
-
|
|
6421
|
+
if (pc.getSenders) {
|
|
6422
|
+
pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
|
|
6423
|
+
videoSender.replaceTrack(null);
|
|
6424
|
+
});
|
|
6425
|
+
}
|
|
6424
6426
|
|
|
6425
6427
|
videoTracks.forEach(videoTrack => {
|
|
6426
6428
|
videoTrack.enabled = false;
|
|
@@ -6653,7 +6655,8 @@ class WebRTCClient extends Emitter {
|
|
|
6653
6655
|
const constraints = { audio: { deviceId: { exact: deviceId } } };
|
|
6654
6656
|
const stream = await navigator.mediaDevices.getUserMedia(constraints);
|
|
6655
6657
|
const audioTrack = stream.getAudioTracks()[0];
|
|
6656
|
-
const sender = pc && pc.getSenders
|
|
6658
|
+
const sender = pc && pc.getSenders
|
|
6659
|
+
&& pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
|
|
6657
6660
|
|
|
6658
6661
|
if (sender) {
|
|
6659
6662
|
if (sender.track) {
|
|
@@ -6716,10 +6719,11 @@ class WebRTCClient extends Emitter {
|
|
|
6716
6719
|
// $FlowFixMe
|
|
6717
6720
|
return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
|
|
6718
6721
|
const videoTrack = stream.getVideoTracks()[0];
|
|
6719
|
-
let sender = pc && pc.getSenders
|
|
6722
|
+
let sender = pc && pc.getSenders
|
|
6723
|
+
&& pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
|
|
6720
6724
|
let wasTrackEnabled = false;
|
|
6721
6725
|
if (!sender) {
|
|
6722
|
-
sender = pc && pc.getSenders().find(s => !s.track);
|
|
6726
|
+
sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
|
|
6723
6727
|
}
|
|
6724
6728
|
|
|
6725
6729
|
if (sender) {
|