@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
|
@@ -4842,6 +4842,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4842
4842
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4843
4843
|
});
|
|
4844
4844
|
|
|
4845
|
+
//
|
|
4846
|
+
|
|
4847
|
+
|
|
4848
|
+
|
|
4849
|
+
|
|
4850
|
+
|
|
4851
|
+
class MeetingStatus {
|
|
4852
|
+
|
|
4853
|
+
|
|
4854
|
+
|
|
4855
|
+
|
|
4856
|
+
constructor({
|
|
4857
|
+
full,
|
|
4858
|
+
} = {}) {
|
|
4859
|
+
this.full = full;
|
|
4860
|
+
|
|
4861
|
+
// Useful to compare instead of instanceof with minified code
|
|
4862
|
+
this.type = 'MeetingStatus';
|
|
4863
|
+
}
|
|
4864
|
+
|
|
4865
|
+
static parse(plain ) {
|
|
4866
|
+
return new MeetingStatus({
|
|
4867
|
+
full: plain.full,
|
|
4868
|
+
});
|
|
4869
|
+
}
|
|
4870
|
+
|
|
4871
|
+
}
|
|
4872
|
+
|
|
4845
4873
|
/* */
|
|
4846
4874
|
|
|
4847
4875
|
|
|
@@ -5036,6 +5064,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5036
5064
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5037
5065
|
ApiRequester.successResponseParser),
|
|
5038
5066
|
|
|
5067
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5068
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5039
5069
|
});
|
|
5040
5070
|
|
|
5041
5071
|
//
|
|
@@ -6679,6 +6709,7 @@ class WebRTCClient extends Emitter {
|
|
|
6679
6709
|
|
|
6680
6710
|
|
|
6681
6711
|
|
|
6712
|
+
|
|
6682
6713
|
|
|
6683
6714
|
// sugar
|
|
6684
6715
|
|
|
@@ -6741,6 +6772,7 @@ class WebRTCClient extends Emitter {
|
|
|
6741
6772
|
this.conferences = {};
|
|
6742
6773
|
this.networkMonitoringInterval = {};
|
|
6743
6774
|
this.sessionNetworkStats = {};
|
|
6775
|
+
this.forceClosed = false;
|
|
6744
6776
|
|
|
6745
6777
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6746
6778
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6862,6 +6894,8 @@ class WebRTCClient extends Emitter {
|
|
|
6862
6894
|
skipRegister: this.skipRegister,
|
|
6863
6895
|
};
|
|
6864
6896
|
|
|
6897
|
+
this.forceClosed = false;
|
|
6898
|
+
|
|
6865
6899
|
if (this.skipRegister) {
|
|
6866
6900
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6867
6901
|
return Promise.resolve();
|
|
@@ -6886,7 +6920,15 @@ class WebRTCClient extends Emitter {
|
|
|
6886
6920
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6887
6921
|
|
|
6888
6922
|
const onRegisterFailed = () => {
|
|
6889
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6923
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6924
|
+
tries,
|
|
6925
|
+
registerer: !!this.registerer,
|
|
6926
|
+
forceClosed: this.forceClosed,
|
|
6927
|
+
});
|
|
6928
|
+
if (this.forceClosed) {
|
|
6929
|
+
return;
|
|
6930
|
+
}
|
|
6931
|
+
|
|
6890
6932
|
this.connectionPromise = null;
|
|
6891
6933
|
if (this.registerer && this.registerer.waiting) {
|
|
6892
6934
|
this.registerer.waitingToggle(false);
|
|
@@ -7164,8 +7206,9 @@ class WebRTCClient extends Emitter {
|
|
|
7164
7206
|
}
|
|
7165
7207
|
}
|
|
7166
7208
|
|
|
7167
|
-
async close() {
|
|
7168
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7209
|
+
async close(force = false) {
|
|
7210
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7211
|
+
this.forceClosed = force;
|
|
7169
7212
|
this._cleanupMedia();
|
|
7170
7213
|
this.connectionPromise = null;
|
|
7171
7214
|
|
|
@@ -7184,7 +7227,7 @@ class WebRTCClient extends Emitter {
|
|
|
7184
7227
|
this.userAgent.delegate = null;
|
|
7185
7228
|
this.userAgent.stateChange.removeAllListeners();
|
|
7186
7229
|
|
|
7187
|
-
await this._disconnectTransport();
|
|
7230
|
+
await this._disconnectTransport(force);
|
|
7188
7231
|
|
|
7189
7232
|
this._cleanupRegister();
|
|
7190
7233
|
|
|
@@ -8620,7 +8663,15 @@ class WebRTCClient extends Emitter {
|
|
|
8620
8663
|
return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8621
8664
|
}
|
|
8622
8665
|
|
|
8623
|
-
async _disconnectTransport() {
|
|
8666
|
+
async _disconnectTransport(force = false) {
|
|
8667
|
+
if (force) {
|
|
8668
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8669
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8670
|
+
// eslint-disable-next-line
|
|
8671
|
+
this.userAgent.transport._ws.close(1000);
|
|
8672
|
+
return;
|
|
8673
|
+
}
|
|
8674
|
+
|
|
8624
8675
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8625
8676
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8626
8677
|
try {
|
|
@@ -10027,7 +10078,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10027
10078
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10028
10079
|
}
|
|
10029
10080
|
|
|
10030
|
-
async close() {
|
|
10081
|
+
async close(force = false) {
|
|
10031
10082
|
logger$7.info('WebRTC close');
|
|
10032
10083
|
|
|
10033
10084
|
try {
|
|
@@ -10039,7 +10090,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10039
10090
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10040
10091
|
}
|
|
10041
10092
|
|
|
10042
|
-
this.client.close();
|
|
10093
|
+
this.client.close(force);
|
|
10043
10094
|
this.unbind();
|
|
10044
10095
|
|
|
10045
10096
|
this.incomingSessions = [];
|
|
@@ -4842,6 +4842,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4842
4842
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4843
4843
|
});
|
|
4844
4844
|
|
|
4845
|
+
//
|
|
4846
|
+
|
|
4847
|
+
|
|
4848
|
+
|
|
4849
|
+
|
|
4850
|
+
|
|
4851
|
+
class MeetingStatus {
|
|
4852
|
+
|
|
4853
|
+
|
|
4854
|
+
|
|
4855
|
+
|
|
4856
|
+
constructor({
|
|
4857
|
+
full,
|
|
4858
|
+
} = {}) {
|
|
4859
|
+
this.full = full;
|
|
4860
|
+
|
|
4861
|
+
// Useful to compare instead of instanceof with minified code
|
|
4862
|
+
this.type = 'MeetingStatus';
|
|
4863
|
+
}
|
|
4864
|
+
|
|
4865
|
+
static parse(plain ) {
|
|
4866
|
+
return new MeetingStatus({
|
|
4867
|
+
full: plain.full,
|
|
4868
|
+
});
|
|
4869
|
+
}
|
|
4870
|
+
|
|
4871
|
+
}
|
|
4872
|
+
|
|
4845
4873
|
/* */
|
|
4846
4874
|
|
|
4847
4875
|
|
|
@@ -5036,6 +5064,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5036
5064
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5037
5065
|
ApiRequester.successResponseParser),
|
|
5038
5066
|
|
|
5067
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5068
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5039
5069
|
});
|
|
5040
5070
|
|
|
5041
5071
|
//
|
|
@@ -6679,6 +6709,7 @@ class WebRTCClient extends Emitter {
|
|
|
6679
6709
|
|
|
6680
6710
|
|
|
6681
6711
|
|
|
6712
|
+
|
|
6682
6713
|
|
|
6683
6714
|
// sugar
|
|
6684
6715
|
|
|
@@ -6741,6 +6772,7 @@ class WebRTCClient extends Emitter {
|
|
|
6741
6772
|
this.conferences = {};
|
|
6742
6773
|
this.networkMonitoringInterval = {};
|
|
6743
6774
|
this.sessionNetworkStats = {};
|
|
6775
|
+
this.forceClosed = false;
|
|
6744
6776
|
|
|
6745
6777
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6746
6778
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6862,6 +6894,8 @@ class WebRTCClient extends Emitter {
|
|
|
6862
6894
|
skipRegister: this.skipRegister,
|
|
6863
6895
|
};
|
|
6864
6896
|
|
|
6897
|
+
this.forceClosed = false;
|
|
6898
|
+
|
|
6865
6899
|
if (this.skipRegister) {
|
|
6866
6900
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6867
6901
|
return Promise.resolve();
|
|
@@ -6886,7 +6920,15 @@ class WebRTCClient extends Emitter {
|
|
|
6886
6920
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6887
6921
|
|
|
6888
6922
|
const onRegisterFailed = () => {
|
|
6889
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6923
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6924
|
+
tries,
|
|
6925
|
+
registerer: !!this.registerer,
|
|
6926
|
+
forceClosed: this.forceClosed,
|
|
6927
|
+
});
|
|
6928
|
+
if (this.forceClosed) {
|
|
6929
|
+
return;
|
|
6930
|
+
}
|
|
6931
|
+
|
|
6890
6932
|
this.connectionPromise = null;
|
|
6891
6933
|
if (this.registerer && this.registerer.waiting) {
|
|
6892
6934
|
this.registerer.waitingToggle(false);
|
|
@@ -7164,8 +7206,9 @@ class WebRTCClient extends Emitter {
|
|
|
7164
7206
|
}
|
|
7165
7207
|
}
|
|
7166
7208
|
|
|
7167
|
-
async close() {
|
|
7168
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7209
|
+
async close(force = false) {
|
|
7210
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7211
|
+
this.forceClosed = force;
|
|
7169
7212
|
this._cleanupMedia();
|
|
7170
7213
|
this.connectionPromise = null;
|
|
7171
7214
|
|
|
@@ -7184,7 +7227,7 @@ class WebRTCClient extends Emitter {
|
|
|
7184
7227
|
this.userAgent.delegate = null;
|
|
7185
7228
|
this.userAgent.stateChange.removeAllListeners();
|
|
7186
7229
|
|
|
7187
|
-
await this._disconnectTransport();
|
|
7230
|
+
await this._disconnectTransport(force);
|
|
7188
7231
|
|
|
7189
7232
|
this._cleanupRegister();
|
|
7190
7233
|
|
|
@@ -8620,7 +8663,15 @@ class WebRTCClient extends Emitter {
|
|
|
8620
8663
|
return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8621
8664
|
}
|
|
8622
8665
|
|
|
8623
|
-
async _disconnectTransport() {
|
|
8666
|
+
async _disconnectTransport(force = false) {
|
|
8667
|
+
if (force) {
|
|
8668
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8669
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8670
|
+
// eslint-disable-next-line
|
|
8671
|
+
this.userAgent.transport._ws.close(1000);
|
|
8672
|
+
return;
|
|
8673
|
+
}
|
|
8674
|
+
|
|
8624
8675
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8625
8676
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8626
8677
|
try {
|
|
@@ -10027,7 +10078,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10027
10078
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10028
10079
|
}
|
|
10029
10080
|
|
|
10030
|
-
async close() {
|
|
10081
|
+
async close(force = false) {
|
|
10031
10082
|
logger$7.info('WebRTC close');
|
|
10032
10083
|
|
|
10033
10084
|
try {
|
|
@@ -10039,7 +10090,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10039
10090
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10040
10091
|
}
|
|
10041
10092
|
|
|
10042
|
-
this.client.close();
|
|
10093
|
+
this.client.close(force);
|
|
10043
10094
|
this.unbind();
|
|
10044
10095
|
|
|
10045
10096
|
this.incomingSessions = [];
|
package/esm/simple/utils.js
CHANGED
|
@@ -4842,6 +4842,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4842
4842
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4843
4843
|
});
|
|
4844
4844
|
|
|
4845
|
+
//
|
|
4846
|
+
|
|
4847
|
+
|
|
4848
|
+
|
|
4849
|
+
|
|
4850
|
+
|
|
4851
|
+
class MeetingStatus {
|
|
4852
|
+
|
|
4853
|
+
|
|
4854
|
+
|
|
4855
|
+
|
|
4856
|
+
constructor({
|
|
4857
|
+
full,
|
|
4858
|
+
} = {}) {
|
|
4859
|
+
this.full = full;
|
|
4860
|
+
|
|
4861
|
+
// Useful to compare instead of instanceof with minified code
|
|
4862
|
+
this.type = 'MeetingStatus';
|
|
4863
|
+
}
|
|
4864
|
+
|
|
4865
|
+
static parse(plain ) {
|
|
4866
|
+
return new MeetingStatus({
|
|
4867
|
+
full: plain.full,
|
|
4868
|
+
});
|
|
4869
|
+
}
|
|
4870
|
+
|
|
4871
|
+
}
|
|
4872
|
+
|
|
4845
4873
|
/* */
|
|
4846
4874
|
|
|
4847
4875
|
|
|
@@ -5036,6 +5064,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5036
5064
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5037
5065
|
ApiRequester.successResponseParser),
|
|
5038
5066
|
|
|
5067
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5068
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5039
5069
|
});
|
|
5040
5070
|
|
|
5041
5071
|
//
|
|
@@ -6679,6 +6709,7 @@ class WebRTCClient extends Emitter {
|
|
|
6679
6709
|
|
|
6680
6710
|
|
|
6681
6711
|
|
|
6712
|
+
|
|
6682
6713
|
|
|
6683
6714
|
// sugar
|
|
6684
6715
|
|
|
@@ -6741,6 +6772,7 @@ class WebRTCClient extends Emitter {
|
|
|
6741
6772
|
this.conferences = {};
|
|
6742
6773
|
this.networkMonitoringInterval = {};
|
|
6743
6774
|
this.sessionNetworkStats = {};
|
|
6775
|
+
this.forceClosed = false;
|
|
6744
6776
|
|
|
6745
6777
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6746
6778
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6862,6 +6894,8 @@ class WebRTCClient extends Emitter {
|
|
|
6862
6894
|
skipRegister: this.skipRegister,
|
|
6863
6895
|
};
|
|
6864
6896
|
|
|
6897
|
+
this.forceClosed = false;
|
|
6898
|
+
|
|
6865
6899
|
if (this.skipRegister) {
|
|
6866
6900
|
logger$8.info('sdk webrtc skip register...', logInfo);
|
|
6867
6901
|
return Promise.resolve();
|
|
@@ -6886,7 +6920,15 @@ class WebRTCClient extends Emitter {
|
|
|
6886
6920
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6887
6921
|
|
|
6888
6922
|
const onRegisterFailed = () => {
|
|
6889
|
-
logger$8.info('sdk webrtc registering failed', {
|
|
6923
|
+
logger$8.info('sdk webrtc registering failed', {
|
|
6924
|
+
tries,
|
|
6925
|
+
registerer: !!this.registerer,
|
|
6926
|
+
forceClosed: this.forceClosed,
|
|
6927
|
+
});
|
|
6928
|
+
if (this.forceClosed) {
|
|
6929
|
+
return;
|
|
6930
|
+
}
|
|
6931
|
+
|
|
6890
6932
|
this.connectionPromise = null;
|
|
6891
6933
|
if (this.registerer && this.registerer.waiting) {
|
|
6892
6934
|
this.registerer.waitingToggle(false);
|
|
@@ -7164,8 +7206,9 @@ class WebRTCClient extends Emitter {
|
|
|
7164
7206
|
}
|
|
7165
7207
|
}
|
|
7166
7208
|
|
|
7167
|
-
async close() {
|
|
7168
|
-
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
7209
|
+
async close(force = false) {
|
|
7210
|
+
logger$8.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
7211
|
+
this.forceClosed = force;
|
|
7169
7212
|
this._cleanupMedia();
|
|
7170
7213
|
this.connectionPromise = null;
|
|
7171
7214
|
|
|
@@ -7184,7 +7227,7 @@ class WebRTCClient extends Emitter {
|
|
|
7184
7227
|
this.userAgent.delegate = null;
|
|
7185
7228
|
this.userAgent.stateChange.removeAllListeners();
|
|
7186
7229
|
|
|
7187
|
-
await this._disconnectTransport();
|
|
7230
|
+
await this._disconnectTransport(force);
|
|
7188
7231
|
|
|
7189
7232
|
this._cleanupRegister();
|
|
7190
7233
|
|
|
@@ -8620,7 +8663,15 @@ class WebRTCClient extends Emitter {
|
|
|
8620
8663
|
return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8621
8664
|
}
|
|
8622
8665
|
|
|
8623
|
-
async _disconnectTransport() {
|
|
8666
|
+
async _disconnectTransport(force = false) {
|
|
8667
|
+
if (force) {
|
|
8668
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8669
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8670
|
+
// eslint-disable-next-line
|
|
8671
|
+
this.userAgent.transport._ws.close(1000);
|
|
8672
|
+
return;
|
|
8673
|
+
}
|
|
8674
|
+
|
|
8624
8675
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8625
8676
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8626
8677
|
try {
|
|
@@ -10027,7 +10078,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10027
10078
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10028
10079
|
}
|
|
10029
10080
|
|
|
10030
|
-
async close() {
|
|
10081
|
+
async close(force = false) {
|
|
10031
10082
|
logger$7.info('WebRTC close');
|
|
10032
10083
|
|
|
10033
10084
|
try {
|
|
@@ -10039,7 +10090,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10039
10090
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10040
10091
|
}
|
|
10041
10092
|
|
|
10042
|
-
this.client.close();
|
|
10093
|
+
this.client.close(force);
|
|
10043
10094
|
this.unbind();
|
|
10044
10095
|
|
|
10045
10096
|
this.incomingSessions = [];
|
package/esm/web-rtc-client.js
CHANGED
|
@@ -4579,6 +4579,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4579
4579
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4580
4580
|
});
|
|
4581
4581
|
|
|
4582
|
+
//
|
|
4583
|
+
|
|
4584
|
+
|
|
4585
|
+
|
|
4586
|
+
|
|
4587
|
+
|
|
4588
|
+
class MeetingStatus {
|
|
4589
|
+
|
|
4590
|
+
|
|
4591
|
+
|
|
4592
|
+
|
|
4593
|
+
constructor({
|
|
4594
|
+
full,
|
|
4595
|
+
} = {}) {
|
|
4596
|
+
this.full = full;
|
|
4597
|
+
|
|
4598
|
+
// Useful to compare instead of instanceof with minified code
|
|
4599
|
+
this.type = 'MeetingStatus';
|
|
4600
|
+
}
|
|
4601
|
+
|
|
4602
|
+
static parse(plain ) {
|
|
4603
|
+
return new MeetingStatus({
|
|
4604
|
+
full: plain.full,
|
|
4605
|
+
});
|
|
4606
|
+
}
|
|
4607
|
+
|
|
4608
|
+
}
|
|
4609
|
+
|
|
4582
4610
|
/* */
|
|
4583
4611
|
|
|
4584
4612
|
|
|
@@ -4773,6 +4801,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4773
4801
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4774
4802
|
ApiRequester.successResponseParser),
|
|
4775
4803
|
|
|
4804
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4805
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4776
4806
|
});
|
|
4777
4807
|
|
|
4778
4808
|
//
|
|
@@ -5389,6 +5419,7 @@ class WebRTCClient extends Emitter {
|
|
|
5389
5419
|
|
|
5390
5420
|
|
|
5391
5421
|
|
|
5422
|
+
|
|
5392
5423
|
|
|
5393
5424
|
// sugar
|
|
5394
5425
|
|
|
@@ -5451,6 +5482,7 @@ class WebRTCClient extends Emitter {
|
|
|
5451
5482
|
this.conferences = {};
|
|
5452
5483
|
this.networkMonitoringInterval = {};
|
|
5453
5484
|
this.sessionNetworkStats = {};
|
|
5485
|
+
this.forceClosed = false;
|
|
5454
5486
|
|
|
5455
5487
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
5456
5488
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -5572,6 +5604,8 @@ class WebRTCClient extends Emitter {
|
|
|
5572
5604
|
skipRegister: this.skipRegister,
|
|
5573
5605
|
};
|
|
5574
5606
|
|
|
5607
|
+
this.forceClosed = false;
|
|
5608
|
+
|
|
5575
5609
|
if (this.skipRegister) {
|
|
5576
5610
|
logger.info('sdk webrtc skip register...', logInfo);
|
|
5577
5611
|
return Promise.resolve();
|
|
@@ -5596,7 +5630,15 @@ class WebRTCClient extends Emitter {
|
|
|
5596
5630
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
5597
5631
|
|
|
5598
5632
|
const onRegisterFailed = () => {
|
|
5599
|
-
logger.info('sdk webrtc registering failed', {
|
|
5633
|
+
logger.info('sdk webrtc registering failed', {
|
|
5634
|
+
tries,
|
|
5635
|
+
registerer: !!this.registerer,
|
|
5636
|
+
forceClosed: this.forceClosed,
|
|
5637
|
+
});
|
|
5638
|
+
if (this.forceClosed) {
|
|
5639
|
+
return;
|
|
5640
|
+
}
|
|
5641
|
+
|
|
5600
5642
|
this.connectionPromise = null;
|
|
5601
5643
|
if (this.registerer && this.registerer.waiting) {
|
|
5602
5644
|
this.registerer.waitingToggle(false);
|
|
@@ -5874,8 +5916,9 @@ class WebRTCClient extends Emitter {
|
|
|
5874
5916
|
}
|
|
5875
5917
|
}
|
|
5876
5918
|
|
|
5877
|
-
async close() {
|
|
5878
|
-
logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
5919
|
+
async close(force = false) {
|
|
5920
|
+
logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
5921
|
+
this.forceClosed = force;
|
|
5879
5922
|
this._cleanupMedia();
|
|
5880
5923
|
this.connectionPromise = null;
|
|
5881
5924
|
|
|
@@ -5894,7 +5937,7 @@ class WebRTCClient extends Emitter {
|
|
|
5894
5937
|
this.userAgent.delegate = null;
|
|
5895
5938
|
this.userAgent.stateChange.removeAllListeners();
|
|
5896
5939
|
|
|
5897
|
-
await this._disconnectTransport();
|
|
5940
|
+
await this._disconnectTransport(force);
|
|
5898
5941
|
|
|
5899
5942
|
this._cleanupRegister();
|
|
5900
5943
|
|
|
@@ -7330,7 +7373,15 @@ class WebRTCClient extends Emitter {
|
|
|
7330
7373
|
return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
7331
7374
|
}
|
|
7332
7375
|
|
|
7333
|
-
async _disconnectTransport() {
|
|
7376
|
+
async _disconnectTransport(force = false) {
|
|
7377
|
+
if (force) {
|
|
7378
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
7379
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
7380
|
+
// eslint-disable-next-line
|
|
7381
|
+
this.userAgent.transport._ws.close(1000);
|
|
7382
|
+
return;
|
|
7383
|
+
}
|
|
7384
|
+
|
|
7334
7385
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
7335
7386
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
7336
7387
|
try {
|
|
@@ -4037,6 +4037,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4037
4037
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4038
4038
|
});
|
|
4039
4039
|
|
|
4040
|
+
//
|
|
4041
|
+
|
|
4042
|
+
|
|
4043
|
+
|
|
4044
|
+
|
|
4045
|
+
|
|
4046
|
+
class MeetingStatus {
|
|
4047
|
+
|
|
4048
|
+
|
|
4049
|
+
|
|
4050
|
+
|
|
4051
|
+
constructor({
|
|
4052
|
+
full,
|
|
4053
|
+
} = {}) {
|
|
4054
|
+
this.full = full;
|
|
4055
|
+
|
|
4056
|
+
// Useful to compare instead of instanceof with minified code
|
|
4057
|
+
this.type = 'MeetingStatus';
|
|
4058
|
+
}
|
|
4059
|
+
|
|
4060
|
+
static parse(plain ) {
|
|
4061
|
+
return new MeetingStatus({
|
|
4062
|
+
full: plain.full,
|
|
4063
|
+
});
|
|
4064
|
+
}
|
|
4065
|
+
|
|
4066
|
+
}
|
|
4067
|
+
|
|
4040
4068
|
/* */
|
|
4041
4069
|
|
|
4042
4070
|
|
|
@@ -4231,6 +4259,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4231
4259
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4232
4260
|
ApiRequester.successResponseParser),
|
|
4233
4261
|
|
|
4262
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4263
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4234
4264
|
});
|
|
4235
4265
|
|
|
4236
4266
|
//
|
|
@@ -4588,6 +4588,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4588
4588
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4589
4589
|
});
|
|
4590
4590
|
|
|
4591
|
+
//
|
|
4592
|
+
|
|
4593
|
+
|
|
4594
|
+
|
|
4595
|
+
|
|
4596
|
+
|
|
4597
|
+
class MeetingStatus {
|
|
4598
|
+
|
|
4599
|
+
|
|
4600
|
+
|
|
4601
|
+
|
|
4602
|
+
constructor({
|
|
4603
|
+
full,
|
|
4604
|
+
} = {}) {
|
|
4605
|
+
this.full = full;
|
|
4606
|
+
|
|
4607
|
+
// Useful to compare instead of instanceof with minified code
|
|
4608
|
+
this.type = 'MeetingStatus';
|
|
4609
|
+
}
|
|
4610
|
+
|
|
4611
|
+
static parse(plain ) {
|
|
4612
|
+
return new MeetingStatus({
|
|
4613
|
+
full: plain.full,
|
|
4614
|
+
});
|
|
4615
|
+
}
|
|
4616
|
+
|
|
4617
|
+
}
|
|
4618
|
+
|
|
4591
4619
|
/* */
|
|
4592
4620
|
|
|
4593
4621
|
|
|
@@ -4782,6 +4810,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4782
4810
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4783
4811
|
ApiRequester.successResponseParser),
|
|
4784
4812
|
|
|
4813
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4814
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4785
4815
|
});
|
|
4786
4816
|
|
|
4787
4817
|
//
|
|
@@ -5395,6 +5425,7 @@ class WebRTCClient extends Emitter {
|
|
|
5395
5425
|
|
|
5396
5426
|
|
|
5397
5427
|
|
|
5428
|
+
|
|
5398
5429
|
|
|
5399
5430
|
// sugar
|
|
5400
5431
|
|
|
@@ -5457,6 +5488,7 @@ class WebRTCClient extends Emitter {
|
|
|
5457
5488
|
this.conferences = {};
|
|
5458
5489
|
this.networkMonitoringInterval = {};
|
|
5459
5490
|
this.sessionNetworkStats = {};
|
|
5491
|
+
this.forceClosed = false;
|
|
5460
5492
|
|
|
5461
5493
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
5462
5494
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -5578,6 +5610,8 @@ class WebRTCClient extends Emitter {
|
|
|
5578
5610
|
skipRegister: this.skipRegister,
|
|
5579
5611
|
};
|
|
5580
5612
|
|
|
5613
|
+
this.forceClosed = false;
|
|
5614
|
+
|
|
5581
5615
|
if (this.skipRegister) {
|
|
5582
5616
|
logger.info('sdk webrtc skip register...', logInfo);
|
|
5583
5617
|
return Promise.resolve();
|
|
@@ -5602,7 +5636,15 @@ class WebRTCClient extends Emitter {
|
|
|
5602
5636
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
5603
5637
|
|
|
5604
5638
|
const onRegisterFailed = () => {
|
|
5605
|
-
logger.info('sdk webrtc registering failed', {
|
|
5639
|
+
logger.info('sdk webrtc registering failed', {
|
|
5640
|
+
tries,
|
|
5641
|
+
registerer: !!this.registerer,
|
|
5642
|
+
forceClosed: this.forceClosed,
|
|
5643
|
+
});
|
|
5644
|
+
if (this.forceClosed) {
|
|
5645
|
+
return;
|
|
5646
|
+
}
|
|
5647
|
+
|
|
5606
5648
|
this.connectionPromise = null;
|
|
5607
5649
|
if (this.registerer && this.registerer.waiting) {
|
|
5608
5650
|
this.registerer.waitingToggle(false);
|
|
@@ -5880,8 +5922,9 @@ class WebRTCClient extends Emitter {
|
|
|
5880
5922
|
}
|
|
5881
5923
|
}
|
|
5882
5924
|
|
|
5883
|
-
async close() {
|
|
5884
|
-
logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
5925
|
+
async close(force = false) {
|
|
5926
|
+
logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
5927
|
+
this.forceClosed = force;
|
|
5885
5928
|
this._cleanupMedia();
|
|
5886
5929
|
this.connectionPromise = null;
|
|
5887
5930
|
|
|
@@ -5900,7 +5943,7 @@ class WebRTCClient extends Emitter {
|
|
|
5900
5943
|
this.userAgent.delegate = null;
|
|
5901
5944
|
this.userAgent.stateChange.removeAllListeners();
|
|
5902
5945
|
|
|
5903
|
-
await this._disconnectTransport();
|
|
5946
|
+
await this._disconnectTransport(force);
|
|
5904
5947
|
|
|
5905
5948
|
this._cleanupRegister();
|
|
5906
5949
|
|
|
@@ -7336,7 +7379,15 @@ class WebRTCClient extends Emitter {
|
|
|
7336
7379
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
7337
7380
|
}
|
|
7338
7381
|
|
|
7339
|
-
async _disconnectTransport() {
|
|
7382
|
+
async _disconnectTransport(force = false) {
|
|
7383
|
+
if (force) {
|
|
7384
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
7385
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
7386
|
+
// eslint-disable-next-line
|
|
7387
|
+
this.userAgent.transport._ws.close(1000);
|
|
7388
|
+
return;
|
|
7389
|
+
}
|
|
7390
|
+
|
|
7340
7391
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
7341
7392
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
7342
7393
|
try {
|