@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
|
@@ -4022,6 +4022,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4022
4022
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4023
4023
|
});
|
|
4024
4024
|
|
|
4025
|
+
//
|
|
4026
|
+
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
|
|
4030
|
+
|
|
4031
|
+
class MeetingStatus {
|
|
4032
|
+
|
|
4033
|
+
|
|
4034
|
+
|
|
4035
|
+
|
|
4036
|
+
constructor({
|
|
4037
|
+
full,
|
|
4038
|
+
} = {}) {
|
|
4039
|
+
this.full = full;
|
|
4040
|
+
|
|
4041
|
+
// Useful to compare instead of instanceof with minified code
|
|
4042
|
+
this.type = 'MeetingStatus';
|
|
4043
|
+
}
|
|
4044
|
+
|
|
4045
|
+
static parse(plain ) {
|
|
4046
|
+
return new MeetingStatus({
|
|
4047
|
+
full: plain.full,
|
|
4048
|
+
});
|
|
4049
|
+
}
|
|
4050
|
+
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4025
4053
|
/* */
|
|
4026
4054
|
|
|
4027
4055
|
|
|
@@ -4216,6 +4244,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4216
4244
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4217
4245
|
ApiRequester.successResponseParser),
|
|
4218
4246
|
|
|
4247
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4248
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4219
4249
|
});
|
|
4220
4250
|
|
|
4221
4251
|
//
|
package/lib/domain/Features.js
CHANGED
|
@@ -4024,6 +4024,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4024
4024
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4025
4025
|
});
|
|
4026
4026
|
|
|
4027
|
+
//
|
|
4028
|
+
|
|
4029
|
+
|
|
4030
|
+
|
|
4031
|
+
|
|
4032
|
+
|
|
4033
|
+
class MeetingStatus {
|
|
4034
|
+
|
|
4035
|
+
|
|
4036
|
+
|
|
4037
|
+
|
|
4038
|
+
constructor({
|
|
4039
|
+
full,
|
|
4040
|
+
} = {}) {
|
|
4041
|
+
this.full = full;
|
|
4042
|
+
|
|
4043
|
+
// Useful to compare instead of instanceof with minified code
|
|
4044
|
+
this.type = 'MeetingStatus';
|
|
4045
|
+
}
|
|
4046
|
+
|
|
4047
|
+
static parse(plain ) {
|
|
4048
|
+
return new MeetingStatus({
|
|
4049
|
+
full: plain.full,
|
|
4050
|
+
});
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4053
|
+
}
|
|
4054
|
+
|
|
4027
4055
|
/* */
|
|
4028
4056
|
|
|
4029
4057
|
|
|
@@ -4218,6 +4246,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4218
4246
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4219
4247
|
ApiRequester.successResponseParser),
|
|
4220
4248
|
|
|
4249
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4250
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4221
4251
|
});
|
|
4222
4252
|
|
|
4223
4253
|
//
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class MeetingStatus {
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
constructor({
|
|
15
|
+
full,
|
|
16
|
+
} = {}) {
|
|
17
|
+
this.full = full;
|
|
18
|
+
|
|
19
|
+
// Useful to compare instead of instanceof with minified code
|
|
20
|
+
this.type = 'MeetingStatus';
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static parse(plain ) {
|
|
24
|
+
return new MeetingStatus({
|
|
25
|
+
full: plain.full,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = MeetingStatus;
|
|
@@ -4416,6 +4416,34 @@ class IndirectTransfer {
|
|
|
4416
4416
|
}
|
|
4417
4417
|
}
|
|
4418
4418
|
|
|
4419
|
+
//
|
|
4420
|
+
|
|
4421
|
+
|
|
4422
|
+
|
|
4423
|
+
|
|
4424
|
+
|
|
4425
|
+
class MeetingStatus {
|
|
4426
|
+
|
|
4427
|
+
|
|
4428
|
+
|
|
4429
|
+
|
|
4430
|
+
constructor({
|
|
4431
|
+
full,
|
|
4432
|
+
} = {}) {
|
|
4433
|
+
this.full = full;
|
|
4434
|
+
|
|
4435
|
+
// Useful to compare instead of instanceof with minified code
|
|
4436
|
+
this.type = 'MeetingStatus';
|
|
4437
|
+
}
|
|
4438
|
+
|
|
4439
|
+
static parse(plain ) {
|
|
4440
|
+
return new MeetingStatus({
|
|
4441
|
+
full: plain.full,
|
|
4442
|
+
});
|
|
4443
|
+
}
|
|
4444
|
+
|
|
4445
|
+
}
|
|
4446
|
+
|
|
4419
4447
|
/* */
|
|
4420
4448
|
|
|
4421
4449
|
|
|
@@ -4610,6 +4638,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4610
4638
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4611
4639
|
ApiRequester.successResponseParser),
|
|
4612
4640
|
|
|
4641
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4642
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4613
4643
|
});
|
|
4614
4644
|
|
|
4615
4645
|
//
|
|
@@ -2183,7 +2183,7 @@ class WebRTCPhone extends Emitter {
|
|
|
2183
2183
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
2184
2184
|
}
|
|
2185
2185
|
|
|
2186
|
-
async close() {
|
|
2186
|
+
async close(force = false) {
|
|
2187
2187
|
logger.info('WebRTC close');
|
|
2188
2188
|
|
|
2189
2189
|
try {
|
|
@@ -2195,7 +2195,7 @@ class WebRTCPhone extends Emitter {
|
|
|
2195
2195
|
logger.error('WebRTC close, unregister error', e);
|
|
2196
2196
|
}
|
|
2197
2197
|
|
|
2198
|
-
this.client.close();
|
|
2198
|
+
this.client.close(force);
|
|
2199
2199
|
this.unbind();
|
|
2200
2200
|
|
|
2201
2201
|
this.incomingSessions = [];
|
package/lib/index.js
CHANGED
|
@@ -4937,6 +4937,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4937
4937
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4938
4938
|
});
|
|
4939
4939
|
|
|
4940
|
+
//
|
|
4941
|
+
|
|
4942
|
+
|
|
4943
|
+
|
|
4944
|
+
|
|
4945
|
+
|
|
4946
|
+
class MeetingStatus {
|
|
4947
|
+
|
|
4948
|
+
|
|
4949
|
+
|
|
4950
|
+
|
|
4951
|
+
constructor({
|
|
4952
|
+
full,
|
|
4953
|
+
} = {}) {
|
|
4954
|
+
this.full = full;
|
|
4955
|
+
|
|
4956
|
+
// Useful to compare instead of instanceof with minified code
|
|
4957
|
+
this.type = 'MeetingStatus';
|
|
4958
|
+
}
|
|
4959
|
+
|
|
4960
|
+
static parse(plain ) {
|
|
4961
|
+
return new MeetingStatus({
|
|
4962
|
+
full: plain.full,
|
|
4963
|
+
});
|
|
4964
|
+
}
|
|
4965
|
+
|
|
4966
|
+
}
|
|
4967
|
+
|
|
4940
4968
|
/* */
|
|
4941
4969
|
|
|
4942
4970
|
|
|
@@ -5131,6 +5159,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
5131
5159
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
5132
5160
|
ApiRequester.successResponseParser),
|
|
5133
5161
|
|
|
5162
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
5163
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
5134
5164
|
});
|
|
5135
5165
|
|
|
5136
5166
|
//
|
|
@@ -6252,6 +6282,7 @@ class WebRTCClient extends Emitter {
|
|
|
6252
6282
|
|
|
6253
6283
|
|
|
6254
6284
|
|
|
6285
|
+
|
|
6255
6286
|
|
|
6256
6287
|
// sugar
|
|
6257
6288
|
|
|
@@ -6314,6 +6345,7 @@ class WebRTCClient extends Emitter {
|
|
|
6314
6345
|
this.conferences = {};
|
|
6315
6346
|
this.networkMonitoringInterval = {};
|
|
6316
6347
|
this.sessionNetworkStats = {};
|
|
6348
|
+
this.forceClosed = false;
|
|
6317
6349
|
|
|
6318
6350
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6319
6351
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6435,6 +6467,8 @@ class WebRTCClient extends Emitter {
|
|
|
6435
6467
|
skipRegister: this.skipRegister,
|
|
6436
6468
|
};
|
|
6437
6469
|
|
|
6470
|
+
this.forceClosed = false;
|
|
6471
|
+
|
|
6438
6472
|
if (this.skipRegister) {
|
|
6439
6473
|
logger$9.info('sdk webrtc skip register...', logInfo);
|
|
6440
6474
|
return Promise.resolve();
|
|
@@ -6459,7 +6493,15 @@ class WebRTCClient extends Emitter {
|
|
|
6459
6493
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6460
6494
|
|
|
6461
6495
|
const onRegisterFailed = () => {
|
|
6462
|
-
logger$9.info('sdk webrtc registering failed', {
|
|
6496
|
+
logger$9.info('sdk webrtc registering failed', {
|
|
6497
|
+
tries,
|
|
6498
|
+
registerer: !!this.registerer,
|
|
6499
|
+
forceClosed: this.forceClosed,
|
|
6500
|
+
});
|
|
6501
|
+
if (this.forceClosed) {
|
|
6502
|
+
return;
|
|
6503
|
+
}
|
|
6504
|
+
|
|
6463
6505
|
this.connectionPromise = null;
|
|
6464
6506
|
if (this.registerer && this.registerer.waiting) {
|
|
6465
6507
|
this.registerer.waitingToggle(false);
|
|
@@ -6737,8 +6779,9 @@ class WebRTCClient extends Emitter {
|
|
|
6737
6779
|
}
|
|
6738
6780
|
}
|
|
6739
6781
|
|
|
6740
|
-
async close() {
|
|
6741
|
-
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
6782
|
+
async close(force = false) {
|
|
6783
|
+
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
6784
|
+
this.forceClosed = force;
|
|
6742
6785
|
this._cleanupMedia();
|
|
6743
6786
|
this.connectionPromise = null;
|
|
6744
6787
|
|
|
@@ -6757,7 +6800,7 @@ class WebRTCClient extends Emitter {
|
|
|
6757
6800
|
this.userAgent.delegate = null;
|
|
6758
6801
|
this.userAgent.stateChange.removeAllListeners();
|
|
6759
6802
|
|
|
6760
|
-
await this._disconnectTransport();
|
|
6803
|
+
await this._disconnectTransport(force);
|
|
6761
6804
|
|
|
6762
6805
|
this._cleanupRegister();
|
|
6763
6806
|
|
|
@@ -8193,7 +8236,15 @@ class WebRTCClient extends Emitter {
|
|
|
8193
8236
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8194
8237
|
}
|
|
8195
8238
|
|
|
8196
|
-
async _disconnectTransport() {
|
|
8239
|
+
async _disconnectTransport(force = false) {
|
|
8240
|
+
if (force) {
|
|
8241
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8242
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8243
|
+
// eslint-disable-next-line
|
|
8244
|
+
this.userAgent.transport._ws.close(1000);
|
|
8245
|
+
return;
|
|
8246
|
+
}
|
|
8247
|
+
|
|
8197
8248
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8198
8249
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8199
8250
|
try {
|
|
@@ -10501,7 +10552,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10501
10552
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
10502
10553
|
}
|
|
10503
10554
|
|
|
10504
|
-
async close() {
|
|
10555
|
+
async close(force = false) {
|
|
10505
10556
|
logger$7.info('WebRTC close');
|
|
10506
10557
|
|
|
10507
10558
|
try {
|
|
@@ -10513,7 +10564,7 @@ class WebRTCPhone extends Emitter {
|
|
|
10513
10564
|
logger$7.error('WebRTC close, unregister error', e);
|
|
10514
10565
|
}
|
|
10515
10566
|
|
|
10516
|
-
this.client.close();
|
|
10567
|
+
this.client.close(force);
|
|
10517
10568
|
this.unbind();
|
|
10518
10569
|
|
|
10519
10570
|
this.incomingSessions = [];
|
package/lib/service/CallApi.js
CHANGED
|
@@ -4022,6 +4022,34 @@ class IndirectTransfer {
|
|
|
4022
4022
|
}
|
|
4023
4023
|
}
|
|
4024
4024
|
|
|
4025
|
+
//
|
|
4026
|
+
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
|
|
4030
|
+
|
|
4031
|
+
class MeetingStatus {
|
|
4032
|
+
|
|
4033
|
+
|
|
4034
|
+
|
|
4035
|
+
|
|
4036
|
+
constructor({
|
|
4037
|
+
full,
|
|
4038
|
+
} = {}) {
|
|
4039
|
+
this.full = full;
|
|
4040
|
+
|
|
4041
|
+
// Useful to compare instead of instanceof with minified code
|
|
4042
|
+
this.type = 'MeetingStatus';
|
|
4043
|
+
}
|
|
4044
|
+
|
|
4045
|
+
static parse(plain ) {
|
|
4046
|
+
return new MeetingStatus({
|
|
4047
|
+
full: plain.full,
|
|
4048
|
+
});
|
|
4049
|
+
}
|
|
4050
|
+
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4025
4053
|
/* */
|
|
4026
4054
|
|
|
4027
4055
|
|
|
@@ -4216,6 +4244,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4216
4244
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4217
4245
|
ApiRequester.successResponseParser),
|
|
4218
4246
|
|
|
4247
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4248
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4219
4249
|
});
|
|
4220
4250
|
|
|
4221
4251
|
//
|
|
@@ -4024,6 +4024,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4024
4024
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4025
4025
|
});
|
|
4026
4026
|
|
|
4027
|
+
//
|
|
4028
|
+
|
|
4029
|
+
|
|
4030
|
+
|
|
4031
|
+
|
|
4032
|
+
|
|
4033
|
+
class MeetingStatus {
|
|
4034
|
+
|
|
4035
|
+
|
|
4036
|
+
|
|
4037
|
+
|
|
4038
|
+
constructor({
|
|
4039
|
+
full,
|
|
4040
|
+
} = {}) {
|
|
4041
|
+
this.full = full;
|
|
4042
|
+
|
|
4043
|
+
// Useful to compare instead of instanceof with minified code
|
|
4044
|
+
this.type = 'MeetingStatus';
|
|
4045
|
+
}
|
|
4046
|
+
|
|
4047
|
+
static parse(plain ) {
|
|
4048
|
+
return new MeetingStatus({
|
|
4049
|
+
full: plain.full,
|
|
4050
|
+
});
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4053
|
+
}
|
|
4054
|
+
|
|
4027
4055
|
/* */
|
|
4028
4056
|
|
|
4029
4057
|
|
|
@@ -4218,6 +4246,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4218
4246
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4219
4247
|
ApiRequester.successResponseParser),
|
|
4220
4248
|
|
|
4249
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4250
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4221
4251
|
});
|
|
4222
4252
|
|
|
4223
4253
|
//
|
package/lib/simple/Auth.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
|
//
|
|
@@ -6427,6 +6457,7 @@ class WebRTCClient extends Emitter {
|
|
|
6427
6457
|
|
|
6428
6458
|
|
|
6429
6459
|
|
|
6460
|
+
|
|
6430
6461
|
|
|
6431
6462
|
// sugar
|
|
6432
6463
|
|
|
@@ -6489,6 +6520,7 @@ class WebRTCClient extends Emitter {
|
|
|
6489
6520
|
this.conferences = {};
|
|
6490
6521
|
this.networkMonitoringInterval = {};
|
|
6491
6522
|
this.sessionNetworkStats = {};
|
|
6523
|
+
this.forceClosed = false;
|
|
6492
6524
|
|
|
6493
6525
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6494
6526
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6610,6 +6642,8 @@ class WebRTCClient extends Emitter {
|
|
|
6610
6642
|
skipRegister: this.skipRegister,
|
|
6611
6643
|
};
|
|
6612
6644
|
|
|
6645
|
+
this.forceClosed = false;
|
|
6646
|
+
|
|
6613
6647
|
if (this.skipRegister) {
|
|
6614
6648
|
logger$9.info('sdk webrtc skip register...', logInfo);
|
|
6615
6649
|
return Promise.resolve();
|
|
@@ -6634,7 +6668,15 @@ class WebRTCClient extends Emitter {
|
|
|
6634
6668
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6635
6669
|
|
|
6636
6670
|
const onRegisterFailed = () => {
|
|
6637
|
-
logger$9.info('sdk webrtc registering failed', {
|
|
6671
|
+
logger$9.info('sdk webrtc registering failed', {
|
|
6672
|
+
tries,
|
|
6673
|
+
registerer: !!this.registerer,
|
|
6674
|
+
forceClosed: this.forceClosed,
|
|
6675
|
+
});
|
|
6676
|
+
if (this.forceClosed) {
|
|
6677
|
+
return;
|
|
6678
|
+
}
|
|
6679
|
+
|
|
6638
6680
|
this.connectionPromise = null;
|
|
6639
6681
|
if (this.registerer && this.registerer.waiting) {
|
|
6640
6682
|
this.registerer.waitingToggle(false);
|
|
@@ -6912,8 +6954,9 @@ class WebRTCClient extends Emitter {
|
|
|
6912
6954
|
}
|
|
6913
6955
|
}
|
|
6914
6956
|
|
|
6915
|
-
async close() {
|
|
6916
|
-
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
6957
|
+
async close(force = false) {
|
|
6958
|
+
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
6959
|
+
this.forceClosed = force;
|
|
6917
6960
|
this._cleanupMedia();
|
|
6918
6961
|
this.connectionPromise = null;
|
|
6919
6962
|
|
|
@@ -6932,7 +6975,7 @@ class WebRTCClient extends Emitter {
|
|
|
6932
6975
|
this.userAgent.delegate = null;
|
|
6933
6976
|
this.userAgent.stateChange.removeAllListeners();
|
|
6934
6977
|
|
|
6935
|
-
await this._disconnectTransport();
|
|
6978
|
+
await this._disconnectTransport(force);
|
|
6936
6979
|
|
|
6937
6980
|
this._cleanupRegister();
|
|
6938
6981
|
|
|
@@ -8368,7 +8411,15 @@ class WebRTCClient extends Emitter {
|
|
|
8368
8411
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8369
8412
|
}
|
|
8370
8413
|
|
|
8371
|
-
async _disconnectTransport() {
|
|
8414
|
+
async _disconnectTransport(force = false) {
|
|
8415
|
+
if (force) {
|
|
8416
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8417
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8418
|
+
// eslint-disable-next-line
|
|
8419
|
+
this.userAgent.transport._ws.close(1000);
|
|
8420
|
+
return;
|
|
8421
|
+
}
|
|
8422
|
+
|
|
8372
8423
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8373
8424
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8374
8425
|
try {
|
|
@@ -9775,7 +9826,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9775
9826
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
9776
9827
|
}
|
|
9777
9828
|
|
|
9778
|
-
async close() {
|
|
9829
|
+
async close(force = false) {
|
|
9779
9830
|
logger$8.info('WebRTC close');
|
|
9780
9831
|
|
|
9781
9832
|
try {
|
|
@@ -9787,7 +9838,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9787
9838
|
logger$8.error('WebRTC close, unregister error', e);
|
|
9788
9839
|
}
|
|
9789
9840
|
|
|
9790
|
-
this.client.close();
|
|
9841
|
+
this.client.close(force);
|
|
9791
9842
|
this.unbind();
|
|
9792
9843
|
|
|
9793
9844
|
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
|
//
|
|
@@ -6425,6 +6455,7 @@ class WebRTCClient extends Emitter {
|
|
|
6425
6455
|
|
|
6426
6456
|
|
|
6427
6457
|
|
|
6458
|
+
|
|
6428
6459
|
|
|
6429
6460
|
// sugar
|
|
6430
6461
|
|
|
@@ -6487,6 +6518,7 @@ class WebRTCClient extends Emitter {
|
|
|
6487
6518
|
this.conferences = {};
|
|
6488
6519
|
this.networkMonitoringInterval = {};
|
|
6489
6520
|
this.sessionNetworkStats = {};
|
|
6521
|
+
this.forceClosed = false;
|
|
6490
6522
|
|
|
6491
6523
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6492
6524
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6608,6 +6640,8 @@ class WebRTCClient extends Emitter {
|
|
|
6608
6640
|
skipRegister: this.skipRegister,
|
|
6609
6641
|
};
|
|
6610
6642
|
|
|
6643
|
+
this.forceClosed = false;
|
|
6644
|
+
|
|
6611
6645
|
if (this.skipRegister) {
|
|
6612
6646
|
logger$9.info('sdk webrtc skip register...', logInfo);
|
|
6613
6647
|
return Promise.resolve();
|
|
@@ -6632,7 +6666,15 @@ class WebRTCClient extends Emitter {
|
|
|
6632
6666
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6633
6667
|
|
|
6634
6668
|
const onRegisterFailed = () => {
|
|
6635
|
-
logger$9.info('sdk webrtc registering failed', {
|
|
6669
|
+
logger$9.info('sdk webrtc registering failed', {
|
|
6670
|
+
tries,
|
|
6671
|
+
registerer: !!this.registerer,
|
|
6672
|
+
forceClosed: this.forceClosed,
|
|
6673
|
+
});
|
|
6674
|
+
if (this.forceClosed) {
|
|
6675
|
+
return;
|
|
6676
|
+
}
|
|
6677
|
+
|
|
6636
6678
|
this.connectionPromise = null;
|
|
6637
6679
|
if (this.registerer && this.registerer.waiting) {
|
|
6638
6680
|
this.registerer.waitingToggle(false);
|
|
@@ -6910,8 +6952,9 @@ class WebRTCClient extends Emitter {
|
|
|
6910
6952
|
}
|
|
6911
6953
|
}
|
|
6912
6954
|
|
|
6913
|
-
async close() {
|
|
6914
|
-
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
6955
|
+
async close(force = false) {
|
|
6956
|
+
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
6957
|
+
this.forceClosed = force;
|
|
6915
6958
|
this._cleanupMedia();
|
|
6916
6959
|
this.connectionPromise = null;
|
|
6917
6960
|
|
|
@@ -6930,7 +6973,7 @@ class WebRTCClient extends Emitter {
|
|
|
6930
6973
|
this.userAgent.delegate = null;
|
|
6931
6974
|
this.userAgent.stateChange.removeAllListeners();
|
|
6932
6975
|
|
|
6933
|
-
await this._disconnectTransport();
|
|
6976
|
+
await this._disconnectTransport(force);
|
|
6934
6977
|
|
|
6935
6978
|
this._cleanupRegister();
|
|
6936
6979
|
|
|
@@ -8366,7 +8409,15 @@ class WebRTCClient extends Emitter {
|
|
|
8366
8409
|
return userAgent.UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8367
8410
|
}
|
|
8368
8411
|
|
|
8369
|
-
async _disconnectTransport() {
|
|
8412
|
+
async _disconnectTransport(force = false) {
|
|
8413
|
+
if (force) {
|
|
8414
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8415
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8416
|
+
// eslint-disable-next-line
|
|
8417
|
+
this.userAgent.transport._ws.close(1000);
|
|
8418
|
+
return;
|
|
8419
|
+
}
|
|
8420
|
+
|
|
8370
8421
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8371
8422
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8372
8423
|
try {
|
|
@@ -9773,7 +9824,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9773
9824
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
9774
9825
|
}
|
|
9775
9826
|
|
|
9776
|
-
async close() {
|
|
9827
|
+
async close(force = false) {
|
|
9777
9828
|
logger$8.info('WebRTC close');
|
|
9778
9829
|
|
|
9779
9830
|
try {
|
|
@@ -9785,7 +9836,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9785
9836
|
logger$8.error('WebRTC close, unregister error', e);
|
|
9786
9837
|
}
|
|
9787
9838
|
|
|
9788
|
-
this.client.close();
|
|
9839
|
+
this.client.close(force);
|
|
9789
9840
|
this.unbind();
|
|
9790
9841
|
|
|
9791
9842
|
this.incomingSessions = [];
|