@wazo/sdk 0.37.31 → 0.37.32
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__/api-client.test.js +30 -0
- package/esm/__tests__/web-rtc-client.test.js +56 -5
- package/esm/api/calld.js +30 -0
- package/esm/api-client.js +30 -0
- package/esm/checker/Checker.js +56 -5
- package/esm/checker/checks/aor.js +30 -0
- package/esm/checker/checks/api.js +30 -0
- package/esm/checker/checks/index.js +56 -5
- package/esm/checker/checks/webrtc-transport.js +56 -5
- package/esm/checker/checks/webrtc.js +56 -5
- package/esm/domain/AdHocAPIConference.js +30 -0
- package/esm/domain/Features.js +30 -0
- package/esm/domain/MeetingStatus.js +29 -0
- package/esm/domain/Phone/CTIPhone.js +30 -0
- package/esm/domain/Phone/WebRTCPhone.js +2 -2
- package/esm/index.js +58 -7
- package/esm/service/CallApi.js +30 -0
- package/esm/service/getApiClient.js +30 -0
- package/esm/simple/Auth.js +58 -7
- package/esm/simple/Configuration.js +58 -7
- package/esm/simple/Directory.js +30 -0
- package/esm/simple/Phone.js +58 -7
- package/esm/simple/index.js +58 -7
- package/esm/simple/room/LocalParticipant.js +58 -7
- package/esm/simple/room/Participant.js +58 -7
- package/esm/simple/room/RemoteParticipant.js +58 -7
- package/esm/simple/room/Room.js +58 -7
- package/esm/simple/room/SipRoom.js +58 -7
- package/esm/simple/room/Stream.js +58 -7
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +58 -7
- package/esm/simple/utils.js +58 -7
- package/esm/web-rtc-client.js +56 -5
- package/lib/__tests__/api-client.test.js +30 -0
- package/lib/__tests__/web-rtc-client.test.js +56 -5
- package/lib/api/calld.js +30 -0
- package/lib/api-client.js +30 -0
- package/lib/checker/Checker.js +56 -5
- package/lib/checker/checks/aor.js +30 -0
- package/lib/checker/checks/api.js +30 -0
- package/lib/checker/checks/index.js +56 -5
- package/lib/checker/checks/webrtc-transport.js +56 -5
- package/lib/checker/checks/webrtc.js +56 -5
- package/lib/domain/AdHocAPIConference.js +30 -0
- package/lib/domain/Features.js +30 -0
- package/lib/domain/MeetingStatus.js +31 -0
- package/lib/domain/Phone/CTIPhone.js +30 -0
- package/lib/domain/Phone/WebRTCPhone.js +2 -2
- package/lib/index.js +58 -7
- package/lib/service/CallApi.js +30 -0
- package/lib/service/getApiClient.js +30 -0
- package/lib/simple/Auth.js +58 -7
- package/lib/simple/Configuration.js +58 -7
- package/lib/simple/Directory.js +30 -0
- package/lib/simple/Phone.js +58 -7
- package/lib/simple/index.js +58 -7
- package/lib/simple/room/LocalParticipant.js +58 -7
- package/lib/simple/room/Participant.js +58 -7
- package/lib/simple/room/RemoteParticipant.js +58 -7
- package/lib/simple/room/Room.js +58 -7
- package/lib/simple/room/SipRoom.js +58 -7
- package/lib/simple/room/Stream.js +58 -7
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +58 -7
- package/lib/simple/utils.js +58 -7
- package/lib/web-rtc-client.js +56 -5
- package/package.json +1 -1
- package/src/api/calld.js +3 -0
- package/src/domain/MeetingStatus.js +27 -0
- package/src/domain/Phone/WebRTCPhone.js +2 -2
- package/src/web-rtc-client.js +26 -5
|
@@ -4852,6 +4852,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4852
4852
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4853
4853
|
});
|
|
4854
4854
|
|
|
4855
|
+
//
|
|
4856
|
+
|
|
4857
|
+
|
|
4858
|
+
|
|
4859
|
+
|
|
4860
|
+
|
|
4861
|
+
class MeetingStatus {
|
|
4862
|
+
|
|
4863
|
+
|
|
4864
|
+
|
|
4865
|
+
|
|
4866
|
+
constructor({
|
|
4867
|
+
full,
|
|
4868
|
+
} = {}) {
|
|
4869
|
+
this.full = full;
|
|
4870
|
+
|
|
4871
|
+
// Useful to compare instead of instanceof with minified code
|
|
4872
|
+
this.type = 'MeetingStatus';
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
static parse(plain ) {
|
|
4876
|
+
return new MeetingStatus({
|
|
4877
|
+
full: plain.full,
|
|
4878
|
+
});
|
|
4879
|
+
}
|
|
4880
|
+
|
|
4881
|
+
}
|
|
4882
|
+
|
|
4855
4883
|
/* */
|
|
4856
4884
|
|
|
4857
4885
|
|
|
@@ -5046,6 +5074,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5046
5074
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5047
5075
|
ApiRequester.successResponseParser),
|
|
5048
5076
|
|
|
5077
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5078
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5049
5079
|
});
|
|
5050
5080
|
|
|
5051
5081
|
//
|
|
@@ -6689,6 +6719,7 @@ class WebRTCClient extends Emitter {
|
|
|
6689
6719
|
|
|
6690
6720
|
|
|
6691
6721
|
|
|
6722
|
+
|
|
6692
6723
|
|
|
6693
6724
|
// sugar
|
|
6694
6725
|
|
|
@@ -6751,6 +6782,7 @@ class WebRTCClient extends Emitter {
|
|
|
6751
6782
|
this.conferences = {};
|
|
6752
6783
|
this.networkMonitoringInterval = {};
|
|
6753
6784
|
this.sessionNetworkStats = {};
|
|
6785
|
+
this.forceClosed = false;
|
|
6754
6786
|
|
|
6755
6787
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6756
6788
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6872,6 +6904,8 @@ class WebRTCClient extends Emitter {
|
|
|
6872
6904
|
skipRegister: this.skipRegister,
|
|
6873
6905
|
};
|
|
6874
6906
|
|
|
6907
|
+
this.forceClosed = false;
|
|
6908
|
+
|
|
6875
6909
|
if (this.skipRegister) {
|
|
6876
6910
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6877
6911
|
return Promise.resolve();
|
|
@@ -6896,7 +6930,15 @@ class WebRTCClient extends Emitter {
|
|
|
6896
6930
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6897
6931
|
|
|
6898
6932
|
const onRegisterFailed = () => {
|
|
6899
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6933
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6934
|
+
tries,
|
|
6935
|
+
registerer: !!this.registerer,
|
|
6936
|
+
forceClosed: this.forceClosed,
|
|
6937
|
+
});
|
|
6938
|
+
if (this.forceClosed) {
|
|
6939
|
+
return;
|
|
6940
|
+
}
|
|
6941
|
+
|
|
6900
6942
|
this.connectionPromise = null;
|
|
6901
6943
|
if (this.registerer && this.registerer.waiting) {
|
|
6902
6944
|
this.registerer.waitingToggle(false);
|
|
@@ -7174,8 +7216,9 @@ class WebRTCClient extends Emitter {
|
|
|
7174
7216
|
}
|
|
7175
7217
|
}
|
|
7176
7218
|
|
|
7177
|
-
async close() {
|
|
7178
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7219
|
+
async close(force = false) {
|
|
7220
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7221
|
+
this.forceClosed = force;
|
|
7179
7222
|
this._cleanupMedia();
|
|
7180
7223
|
this.connectionPromise = null;
|
|
7181
7224
|
|
|
@@ -7194,7 +7237,7 @@ class WebRTCClient extends Emitter {
|
|
|
7194
7237
|
this.userAgent.delegate = null;
|
|
7195
7238
|
this.userAgent.stateChange.removeAllListeners();
|
|
7196
7239
|
|
|
7197
|
-
await this._disconnectTransport();
|
|
7240
|
+
await this._disconnectTransport(force);
|
|
7198
7241
|
|
|
7199
7242
|
this._cleanupRegister();
|
|
7200
7243
|
|
|
@@ -8630,7 +8673,15 @@ class WebRTCClient extends Emitter {
|
|
|
8630
8673
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8631
8674
|
}
|
|
8632
8675
|
|
|
8633
|
-
async _disconnectTransport() {
|
|
8676
|
+
async _disconnectTransport(force = false) {
|
|
8677
|
+
if (force) {
|
|
8678
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8679
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8680
|
+
// eslint-disable-next-line
|
|
8681
|
+
this.userAgent.transport._ws.close(1000);
|
|
8682
|
+
return;
|
|
8683
|
+
}
|
|
8684
|
+
|
|
8634
8685
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8635
8686
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8636
8687
|
try {
|
|
@@ -10037,7 +10088,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10037
10088
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10038
10089
|
}
|
|
10039
10090
|
|
|
10040
|
-
async close() {
|
|
10091
|
+
async close(force = false) {
|
|
10041
10092
|
logger$7.info('WebRTC close');
|
|
10042
10093
|
|
|
10043
10094
|
try {
|
|
@@ -10049,7 +10100,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10049
10100
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10050
10101
|
}
|
|
10051
10102
|
|
|
10052
|
-
this.client.close();
|
|
10103
|
+
this.client.close(force);
|
|
10053
10104
|
this.unbind();
|
|
10054
10105
|
|
|
10055
10106
|
this.incomingSessions = [];
|
package/lib/simple/room/Room.js
CHANGED
|
@@ -4854,6 +4854,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4854
4854
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4855
4855
|
});
|
|
4856
4856
|
|
|
4857
|
+
//
|
|
4858
|
+
|
|
4859
|
+
|
|
4860
|
+
|
|
4861
|
+
|
|
4862
|
+
|
|
4863
|
+
class MeetingStatus {
|
|
4864
|
+
|
|
4865
|
+
|
|
4866
|
+
|
|
4867
|
+
|
|
4868
|
+
constructor({
|
|
4869
|
+
full,
|
|
4870
|
+
} = {}) {
|
|
4871
|
+
this.full = full;
|
|
4872
|
+
|
|
4873
|
+
// Useful to compare instead of instanceof with minified code
|
|
4874
|
+
this.type = 'MeetingStatus';
|
|
4875
|
+
}
|
|
4876
|
+
|
|
4877
|
+
static parse(plain ) {
|
|
4878
|
+
return new MeetingStatus({
|
|
4879
|
+
full: plain.full,
|
|
4880
|
+
});
|
|
4881
|
+
}
|
|
4882
|
+
|
|
4883
|
+
}
|
|
4884
|
+
|
|
4857
4885
|
/* */
|
|
4858
4886
|
|
|
4859
4887
|
|
|
@@ -5048,6 +5076,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5048
5076
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5049
5077
|
ApiRequester.successResponseParser),
|
|
5050
5078
|
|
|
5079
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5080
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5051
5081
|
});
|
|
5052
5082
|
|
|
5053
5083
|
//
|
|
@@ -6691,6 +6721,7 @@ class WebRTCClient extends Emitter {
|
|
|
6691
6721
|
|
|
6692
6722
|
|
|
6693
6723
|
|
|
6724
|
+
|
|
6694
6725
|
|
|
6695
6726
|
// sugar
|
|
6696
6727
|
|
|
@@ -6753,6 +6784,7 @@ class WebRTCClient extends Emitter {
|
|
|
6753
6784
|
this.conferences = {};
|
|
6754
6785
|
this.networkMonitoringInterval = {};
|
|
6755
6786
|
this.sessionNetworkStats = {};
|
|
6787
|
+
this.forceClosed = false;
|
|
6756
6788
|
|
|
6757
6789
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6758
6790
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6874,6 +6906,8 @@ class WebRTCClient extends Emitter {
|
|
|
6874
6906
|
skipRegister: this.skipRegister,
|
|
6875
6907
|
};
|
|
6876
6908
|
|
|
6909
|
+
this.forceClosed = false;
|
|
6910
|
+
|
|
6877
6911
|
if (this.skipRegister) {
|
|
6878
6912
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6879
6913
|
return Promise.resolve();
|
|
@@ -6898,7 +6932,15 @@ class WebRTCClient extends Emitter {
|
|
|
6898
6932
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6899
6933
|
|
|
6900
6934
|
const onRegisterFailed = () => {
|
|
6901
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6935
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6936
|
+
tries,
|
|
6937
|
+
registerer: !!this.registerer,
|
|
6938
|
+
forceClosed: this.forceClosed,
|
|
6939
|
+
});
|
|
6940
|
+
if (this.forceClosed) {
|
|
6941
|
+
return;
|
|
6942
|
+
}
|
|
6943
|
+
|
|
6902
6944
|
this.connectionPromise = null;
|
|
6903
6945
|
if (this.registerer && this.registerer.waiting) {
|
|
6904
6946
|
this.registerer.waitingToggle(false);
|
|
@@ -7176,8 +7218,9 @@ class WebRTCClient extends Emitter {
|
|
|
7176
7218
|
}
|
|
7177
7219
|
}
|
|
7178
7220
|
|
|
7179
|
-
async close() {
|
|
7180
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7221
|
+
async close(force = false) {
|
|
7222
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7223
|
+
this.forceClosed = force;
|
|
7181
7224
|
this._cleanupMedia();
|
|
7182
7225
|
this.connectionPromise = null;
|
|
7183
7226
|
|
|
@@ -7196,7 +7239,7 @@ class WebRTCClient extends Emitter {
|
|
|
7196
7239
|
this.userAgent.delegate = null;
|
|
7197
7240
|
this.userAgent.stateChange.removeAllListeners();
|
|
7198
7241
|
|
|
7199
|
-
await this._disconnectTransport();
|
|
7242
|
+
await this._disconnectTransport(force);
|
|
7200
7243
|
|
|
7201
7244
|
this._cleanupRegister();
|
|
7202
7245
|
|
|
@@ -8632,7 +8675,15 @@ class WebRTCClient extends Emitter {
|
|
|
8632
8675
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8633
8676
|
}
|
|
8634
8677
|
|
|
8635
|
-
async _disconnectTransport() {
|
|
8678
|
+
async _disconnectTransport(force = false) {
|
|
8679
|
+
if (force) {
|
|
8680
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8681
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8682
|
+
// eslint-disable-next-line
|
|
8683
|
+
this.userAgent.transport._ws.close(1000);
|
|
8684
|
+
return;
|
|
8685
|
+
}
|
|
8686
|
+
|
|
8636
8687
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8637
8688
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8638
8689
|
try {
|
|
@@ -10039,7 +10090,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10039
10090
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10040
10091
|
}
|
|
10041
10092
|
|
|
10042
|
-
async close() {
|
|
10093
|
+
async close(force = false) {
|
|
10043
10094
|
logger$7.info('WebRTC close');
|
|
10044
10095
|
|
|
10045
10096
|
try {
|
|
@@ -10051,7 +10102,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10051
10102
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10052
10103
|
}
|
|
10053
10104
|
|
|
10054
|
-
this.client.close();
|
|
10105
|
+
this.client.close(force);
|
|
10055
10106
|
this.unbind();
|
|
10056
10107
|
|
|
10057
10108
|
this.incomingSessions = [];
|
|
@@ -4852,6 +4852,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4852
4852
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4853
4853
|
});
|
|
4854
4854
|
|
|
4855
|
+
//
|
|
4856
|
+
|
|
4857
|
+
|
|
4858
|
+
|
|
4859
|
+
|
|
4860
|
+
|
|
4861
|
+
class MeetingStatus {
|
|
4862
|
+
|
|
4863
|
+
|
|
4864
|
+
|
|
4865
|
+
|
|
4866
|
+
constructor({
|
|
4867
|
+
full,
|
|
4868
|
+
} = {}) {
|
|
4869
|
+
this.full = full;
|
|
4870
|
+
|
|
4871
|
+
// Useful to compare instead of instanceof with minified code
|
|
4872
|
+
this.type = 'MeetingStatus';
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
static parse(plain ) {
|
|
4876
|
+
return new MeetingStatus({
|
|
4877
|
+
full: plain.full,
|
|
4878
|
+
});
|
|
4879
|
+
}
|
|
4880
|
+
|
|
4881
|
+
}
|
|
4882
|
+
|
|
4855
4883
|
/* */
|
|
4856
4884
|
|
|
4857
4885
|
|
|
@@ -5046,6 +5074,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5046
5074
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5047
5075
|
ApiRequester.successResponseParser),
|
|
5048
5076
|
|
|
5077
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5078
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5049
5079
|
});
|
|
5050
5080
|
|
|
5051
5081
|
//
|
|
@@ -6689,6 +6719,7 @@ class WebRTCClient extends Emitter {
|
|
|
6689
6719
|
|
|
6690
6720
|
|
|
6691
6721
|
|
|
6722
|
+
|
|
6692
6723
|
|
|
6693
6724
|
// sugar
|
|
6694
6725
|
|
|
@@ -6751,6 +6782,7 @@ class WebRTCClient extends Emitter {
|
|
|
6751
6782
|
this.conferences = {};
|
|
6752
6783
|
this.networkMonitoringInterval = {};
|
|
6753
6784
|
this.sessionNetworkStats = {};
|
|
6785
|
+
this.forceClosed = false;
|
|
6754
6786
|
|
|
6755
6787
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6756
6788
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6872,6 +6904,8 @@ class WebRTCClient extends Emitter {
|
|
|
6872
6904
|
skipRegister: this.skipRegister,
|
|
6873
6905
|
};
|
|
6874
6906
|
|
|
6907
|
+
this.forceClosed = false;
|
|
6908
|
+
|
|
6875
6909
|
if (this.skipRegister) {
|
|
6876
6910
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6877
6911
|
return Promise.resolve();
|
|
@@ -6896,7 +6930,15 @@ class WebRTCClient extends Emitter {
|
|
|
6896
6930
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6897
6931
|
|
|
6898
6932
|
const onRegisterFailed = () => {
|
|
6899
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6933
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6934
|
+
tries,
|
|
6935
|
+
registerer: !!this.registerer,
|
|
6936
|
+
forceClosed: this.forceClosed,
|
|
6937
|
+
});
|
|
6938
|
+
if (this.forceClosed) {
|
|
6939
|
+
return;
|
|
6940
|
+
}
|
|
6941
|
+
|
|
6900
6942
|
this.connectionPromise = null;
|
|
6901
6943
|
if (this.registerer && this.registerer.waiting) {
|
|
6902
6944
|
this.registerer.waitingToggle(false);
|
|
@@ -7174,8 +7216,9 @@ class WebRTCClient extends Emitter {
|
|
|
7174
7216
|
}
|
|
7175
7217
|
}
|
|
7176
7218
|
|
|
7177
|
-
async close() {
|
|
7178
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7219
|
+
async close(force = false) {
|
|
7220
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7221
|
+
this.forceClosed = force;
|
|
7179
7222
|
this._cleanupMedia();
|
|
7180
7223
|
this.connectionPromise = null;
|
|
7181
7224
|
|
|
@@ -7194,7 +7237,7 @@ class WebRTCClient extends Emitter {
|
|
|
7194
7237
|
this.userAgent.delegate = null;
|
|
7195
7238
|
this.userAgent.stateChange.removeAllListeners();
|
|
7196
7239
|
|
|
7197
|
-
await this._disconnectTransport();
|
|
7240
|
+
await this._disconnectTransport(force);
|
|
7198
7241
|
|
|
7199
7242
|
this._cleanupRegister();
|
|
7200
7243
|
|
|
@@ -8630,7 +8673,15 @@ class WebRTCClient extends Emitter {
|
|
|
8630
8673
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8631
8674
|
}
|
|
8632
8675
|
|
|
8633
|
-
async _disconnectTransport() {
|
|
8676
|
+
async _disconnectTransport(force = false) {
|
|
8677
|
+
if (force) {
|
|
8678
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8679
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8680
|
+
// eslint-disable-next-line
|
|
8681
|
+
this.userAgent.transport._ws.close(1000);
|
|
8682
|
+
return;
|
|
8683
|
+
}
|
|
8684
|
+
|
|
8634
8685
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8635
8686
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8636
8687
|
try {
|
|
@@ -10037,7 +10088,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10037
10088
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10038
10089
|
}
|
|
10039
10090
|
|
|
10040
|
-
async close() {
|
|
10091
|
+
async close(force = false) {
|
|
10041
10092
|
logger$7.info('WebRTC close');
|
|
10042
10093
|
|
|
10043
10094
|
try {
|
|
@@ -10049,7 +10100,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10049
10100
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10050
10101
|
}
|
|
10051
10102
|
|
|
10052
|
-
this.client.close();
|
|
10103
|
+
this.client.close(force);
|
|
10053
10104
|
this.unbind();
|
|
10054
10105
|
|
|
10055
10106
|
this.incomingSessions = [];
|
|
@@ -4852,6 +4852,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4852
4852
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4853
4853
|
});
|
|
4854
4854
|
|
|
4855
|
+
//
|
|
4856
|
+
|
|
4857
|
+
|
|
4858
|
+
|
|
4859
|
+
|
|
4860
|
+
|
|
4861
|
+
class MeetingStatus {
|
|
4862
|
+
|
|
4863
|
+
|
|
4864
|
+
|
|
4865
|
+
|
|
4866
|
+
constructor({
|
|
4867
|
+
full,
|
|
4868
|
+
} = {}) {
|
|
4869
|
+
this.full = full;
|
|
4870
|
+
|
|
4871
|
+
// Useful to compare instead of instanceof with minified code
|
|
4872
|
+
this.type = 'MeetingStatus';
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
static parse(plain ) {
|
|
4876
|
+
return new MeetingStatus({
|
|
4877
|
+
full: plain.full,
|
|
4878
|
+
});
|
|
4879
|
+
}
|
|
4880
|
+
|
|
4881
|
+
}
|
|
4882
|
+
|
|
4855
4883
|
/* */
|
|
4856
4884
|
|
|
4857
4885
|
|
|
@@ -5046,6 +5074,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5046
5074
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5047
5075
|
ApiRequester.successResponseParser),
|
|
5048
5076
|
|
|
5077
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5078
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5049
5079
|
});
|
|
5050
5080
|
|
|
5051
5081
|
//
|
|
@@ -6689,6 +6719,7 @@ class WebRTCClient extends Emitter {
|
|
|
6689
6719
|
|
|
6690
6720
|
|
|
6691
6721
|
|
|
6722
|
+
|
|
6692
6723
|
|
|
6693
6724
|
// sugar
|
|
6694
6725
|
|
|
@@ -6751,6 +6782,7 @@ class WebRTCClient extends Emitter {
|
|
|
6751
6782
|
this.conferences = {};
|
|
6752
6783
|
this.networkMonitoringInterval = {};
|
|
6753
6784
|
this.sessionNetworkStats = {};
|
|
6785
|
+
this.forceClosed = false;
|
|
6754
6786
|
|
|
6755
6787
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6756
6788
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6872,6 +6904,8 @@ class WebRTCClient extends Emitter {
|
|
|
6872
6904
|
skipRegister: this.skipRegister,
|
|
6873
6905
|
};
|
|
6874
6906
|
|
|
6907
|
+
this.forceClosed = false;
|
|
6908
|
+
|
|
6875
6909
|
if (this.skipRegister) {
|
|
6876
6910
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6877
6911
|
return Promise.resolve();
|
|
@@ -6896,7 +6930,15 @@ class WebRTCClient extends Emitter {
|
|
|
6896
6930
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6897
6931
|
|
|
6898
6932
|
const onRegisterFailed = () => {
|
|
6899
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6933
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6934
|
+
tries,
|
|
6935
|
+
registerer: !!this.registerer,
|
|
6936
|
+
forceClosed: this.forceClosed,
|
|
6937
|
+
});
|
|
6938
|
+
if (this.forceClosed) {
|
|
6939
|
+
return;
|
|
6940
|
+
}
|
|
6941
|
+
|
|
6900
6942
|
this.connectionPromise = null;
|
|
6901
6943
|
if (this.registerer && this.registerer.waiting) {
|
|
6902
6944
|
this.registerer.waitingToggle(false);
|
|
@@ -7174,8 +7216,9 @@ class WebRTCClient extends Emitter {
|
|
|
7174
7216
|
}
|
|
7175
7217
|
}
|
|
7176
7218
|
|
|
7177
|
-
async close() {
|
|
7178
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7219
|
+
async close(force = false) {
|
|
7220
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7221
|
+
this.forceClosed = force;
|
|
7179
7222
|
this._cleanupMedia();
|
|
7180
7223
|
this.connectionPromise = null;
|
|
7181
7224
|
|
|
@@ -7194,7 +7237,7 @@ class WebRTCClient extends Emitter {
|
|
|
7194
7237
|
this.userAgent.delegate = null;
|
|
7195
7238
|
this.userAgent.stateChange.removeAllListeners();
|
|
7196
7239
|
|
|
7197
|
-
await this._disconnectTransport();
|
|
7240
|
+
await this._disconnectTransport(force);
|
|
7198
7241
|
|
|
7199
7242
|
this._cleanupRegister();
|
|
7200
7243
|
|
|
@@ -8630,7 +8673,15 @@ class WebRTCClient extends Emitter {
|
|
|
8630
8673
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8631
8674
|
}
|
|
8632
8675
|
|
|
8633
|
-
async _disconnectTransport() {
|
|
8676
|
+
async _disconnectTransport(force = false) {
|
|
8677
|
+
if (force) {
|
|
8678
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8679
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8680
|
+
// eslint-disable-next-line
|
|
8681
|
+
this.userAgent.transport._ws.close(1000);
|
|
8682
|
+
return;
|
|
8683
|
+
}
|
|
8684
|
+
|
|
8634
8685
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8635
8686
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8636
8687
|
try {
|
|
@@ -10037,7 +10088,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10037
10088
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10038
10089
|
}
|
|
10039
10090
|
|
|
10040
|
-
async close() {
|
|
10091
|
+
async close(force = false) {
|
|
10041
10092
|
logger$7.info('WebRTC close');
|
|
10042
10093
|
|
|
10043
10094
|
try {
|
|
@@ -10049,7 +10100,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10049
10100
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10050
10101
|
}
|
|
10051
10102
|
|
|
10052
|
-
this.client.close();
|
|
10103
|
+
this.client.close(force);
|
|
10053
10104
|
this.unbind();
|
|
10054
10105
|
|
|
10055
10106
|
this.incomingSessions = [];
|
|
@@ -4852,6 +4852,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4852
4852
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4853
4853
|
});
|
|
4854
4854
|
|
|
4855
|
+
//
|
|
4856
|
+
|
|
4857
|
+
|
|
4858
|
+
|
|
4859
|
+
|
|
4860
|
+
|
|
4861
|
+
class MeetingStatus {
|
|
4862
|
+
|
|
4863
|
+
|
|
4864
|
+
|
|
4865
|
+
|
|
4866
|
+
constructor({
|
|
4867
|
+
full,
|
|
4868
|
+
} = {}) {
|
|
4869
|
+
this.full = full;
|
|
4870
|
+
|
|
4871
|
+
// Useful to compare instead of instanceof with minified code
|
|
4872
|
+
this.type = 'MeetingStatus';
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
static parse(plain ) {
|
|
4876
|
+
return new MeetingStatus({
|
|
4877
|
+
full: plain.full,
|
|
4878
|
+
});
|
|
4879
|
+
}
|
|
4880
|
+
|
|
4881
|
+
}
|
|
4882
|
+
|
|
4855
4883
|
/* */
|
|
4856
4884
|
|
|
4857
4885
|
|
|
@@ -5046,6 +5074,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5046
5074
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5047
5075
|
ApiRequester.successResponseParser),
|
|
5048
5076
|
|
|
5077
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5078
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5049
5079
|
});
|
|
5050
5080
|
|
|
5051
5081
|
//
|
|
@@ -6689,6 +6719,7 @@ class WebRTCClient extends Emitter {
|
|
|
6689
6719
|
|
|
6690
6720
|
|
|
6691
6721
|
|
|
6722
|
+
|
|
6692
6723
|
|
|
6693
6724
|
// sugar
|
|
6694
6725
|
|
|
@@ -6751,6 +6782,7 @@ class WebRTCClient extends Emitter {
|
|
|
6751
6782
|
this.conferences = {};
|
|
6752
6783
|
this.networkMonitoringInterval = {};
|
|
6753
6784
|
this.sessionNetworkStats = {};
|
|
6785
|
+
this.forceClosed = false;
|
|
6754
6786
|
|
|
6755
6787
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6756
6788
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6872,6 +6904,8 @@ class WebRTCClient extends Emitter {
|
|
|
6872
6904
|
skipRegister: this.skipRegister,
|
|
6873
6905
|
};
|
|
6874
6906
|
|
|
6907
|
+
this.forceClosed = false;
|
|
6908
|
+
|
|
6875
6909
|
if (this.skipRegister) {
|
|
6876
6910
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6877
6911
|
return Promise.resolve();
|
|
@@ -6896,7 +6930,15 @@ class WebRTCClient extends Emitter {
|
|
|
6896
6930
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6897
6931
|
|
|
6898
6932
|
const onRegisterFailed = () => {
|
|
6899
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6933
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6934
|
+
tries,
|
|
6935
|
+
registerer: !!this.registerer,
|
|
6936
|
+
forceClosed: this.forceClosed,
|
|
6937
|
+
});
|
|
6938
|
+
if (this.forceClosed) {
|
|
6939
|
+
return;
|
|
6940
|
+
}
|
|
6941
|
+
|
|
6900
6942
|
this.connectionPromise = null;
|
|
6901
6943
|
if (this.registerer && this.registerer.waiting) {
|
|
6902
6944
|
this.registerer.waitingToggle(false);
|
|
@@ -7174,8 +7216,9 @@ class WebRTCClient extends Emitter {
|
|
|
7174
7216
|
}
|
|
7175
7217
|
}
|
|
7176
7218
|
|
|
7177
|
-
async close() {
|
|
7178
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7219
|
+
async close(force = false) {
|
|
7220
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7221
|
+
this.forceClosed = force;
|
|
7179
7222
|
this._cleanupMedia();
|
|
7180
7223
|
this.connectionPromise = null;
|
|
7181
7224
|
|
|
@@ -7194,7 +7237,7 @@ class WebRTCClient extends Emitter {
|
|
|
7194
7237
|
this.userAgent.delegate = null;
|
|
7195
7238
|
this.userAgent.stateChange.removeAllListeners();
|
|
7196
7239
|
|
|
7197
|
-
await this._disconnectTransport();
|
|
7240
|
+
await this._disconnectTransport(force);
|
|
7198
7241
|
|
|
7199
7242
|
this._cleanupRegister();
|
|
7200
7243
|
|
|
@@ -8630,7 +8673,15 @@ class WebRTCClient extends Emitter {
|
|
|
8630
8673
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8631
8674
|
}
|
|
8632
8675
|
|
|
8633
|
-
async _disconnectTransport() {
|
|
8676
|
+
async _disconnectTransport(force = false) {
|
|
8677
|
+
if (force) {
|
|
8678
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8679
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8680
|
+
// eslint-disable-next-line
|
|
8681
|
+
this.userAgent.transport._ws.close(1000);
|
|
8682
|
+
return;
|
|
8683
|
+
}
|
|
8684
|
+
|
|
8634
8685
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8635
8686
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8636
8687
|
try {
|
|
@@ -10037,7 +10088,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10037
10088
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10038
10089
|
}
|
|
10039
10090
|
|
|
10040
|
-
async close() {
|
|
10091
|
+
async close(force = false) {
|
|
10041
10092
|
logger$7.info('WebRTC close');
|
|
10042
10093
|
|
|
10043
10094
|
try {
|
|
@@ -10049,7 +10100,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10049
10100
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10050
10101
|
}
|
|
10051
10102
|
|
|
10052
|
-
this.client.close();
|
|
10103
|
+
this.client.close(force);
|
|
10053
10104
|
this.unbind();
|
|
10054
10105
|
|
|
10055
10106
|
this.incomingSessions = [];
|