@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
package/lib/simple/Directory.js
CHANGED
|
@@ -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/simple/Phone.js
CHANGED
|
@@ -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 = [];
|
package/lib/simple/index.js
CHANGED
|
@@ -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 = [];
|