@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/esm/simple/Auth.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
|
//
|
|
@@ -6415,6 +6445,7 @@ class WebRTCClient extends Emitter {
|
|
|
6415
6445
|
|
|
6416
6446
|
|
|
6417
6447
|
|
|
6448
|
+
|
|
6418
6449
|
|
|
6419
6450
|
// sugar
|
|
6420
6451
|
|
|
@@ -6477,6 +6508,7 @@ class WebRTCClient extends Emitter {
|
|
|
6477
6508
|
this.conferences = {};
|
|
6478
6509
|
this.networkMonitoringInterval = {};
|
|
6479
6510
|
this.sessionNetworkStats = {};
|
|
6511
|
+
this.forceClosed = false;
|
|
6480
6512
|
|
|
6481
6513
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6482
6514
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6598,6 +6630,8 @@ class WebRTCClient extends Emitter {
|
|
|
6598
6630
|
skipRegister: this.skipRegister,
|
|
6599
6631
|
};
|
|
6600
6632
|
|
|
6633
|
+
this.forceClosed = false;
|
|
6634
|
+
|
|
6601
6635
|
if (this.skipRegister) {
|
|
6602
6636
|
logger$9.info('sdk webrtc skip register...', logInfo);
|
|
6603
6637
|
return Promise.resolve();
|
|
@@ -6622,7 +6656,15 @@ class WebRTCClient extends Emitter {
|
|
|
6622
6656
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6623
6657
|
|
|
6624
6658
|
const onRegisterFailed = () => {
|
|
6625
|
-
logger$9.info('sdk webrtc registering failed', {
|
|
6659
|
+
logger$9.info('sdk webrtc registering failed', {
|
|
6660
|
+
tries,
|
|
6661
|
+
registerer: !!this.registerer,
|
|
6662
|
+
forceClosed: this.forceClosed,
|
|
6663
|
+
});
|
|
6664
|
+
if (this.forceClosed) {
|
|
6665
|
+
return;
|
|
6666
|
+
}
|
|
6667
|
+
|
|
6626
6668
|
this.connectionPromise = null;
|
|
6627
6669
|
if (this.registerer && this.registerer.waiting) {
|
|
6628
6670
|
this.registerer.waitingToggle(false);
|
|
@@ -6900,8 +6942,9 @@ class WebRTCClient extends Emitter {
|
|
|
6900
6942
|
}
|
|
6901
6943
|
}
|
|
6902
6944
|
|
|
6903
|
-
async close() {
|
|
6904
|
-
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
6945
|
+
async close(force = false) {
|
|
6946
|
+
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
6947
|
+
this.forceClosed = force;
|
|
6905
6948
|
this._cleanupMedia();
|
|
6906
6949
|
this.connectionPromise = null;
|
|
6907
6950
|
|
|
@@ -6920,7 +6963,7 @@ class WebRTCClient extends Emitter {
|
|
|
6920
6963
|
this.userAgent.delegate = null;
|
|
6921
6964
|
this.userAgent.stateChange.removeAllListeners();
|
|
6922
6965
|
|
|
6923
|
-
await this._disconnectTransport();
|
|
6966
|
+
await this._disconnectTransport(force);
|
|
6924
6967
|
|
|
6925
6968
|
this._cleanupRegister();
|
|
6926
6969
|
|
|
@@ -8356,7 +8399,15 @@ class WebRTCClient extends Emitter {
|
|
|
8356
8399
|
return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8357
8400
|
}
|
|
8358
8401
|
|
|
8359
|
-
async _disconnectTransport() {
|
|
8402
|
+
async _disconnectTransport(force = false) {
|
|
8403
|
+
if (force) {
|
|
8404
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8405
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8406
|
+
// eslint-disable-next-line
|
|
8407
|
+
this.userAgent.transport._ws.close(1000);
|
|
8408
|
+
return;
|
|
8409
|
+
}
|
|
8410
|
+
|
|
8360
8411
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8361
8412
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8362
8413
|
try {
|
|
@@ -9763,7 +9814,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9763
9814
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
9764
9815
|
}
|
|
9765
9816
|
|
|
9766
|
-
async close() {
|
|
9817
|
+
async close(force = false) {
|
|
9767
9818
|
logger$8.info('WebRTC close');
|
|
9768
9819
|
|
|
9769
9820
|
try {
|
|
@@ -9775,7 +9826,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9775
9826
|
logger$8.error('WebRTC close, unregister error', e);
|
|
9776
9827
|
}
|
|
9777
9828
|
|
|
9778
|
-
this.client.close();
|
|
9829
|
+
this.client.close(force);
|
|
9779
9830
|
this.unbind();
|
|
9780
9831
|
|
|
9781
9832
|
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
|
//
|
|
@@ -6415,6 +6445,7 @@ class WebRTCClient extends Emitter {
|
|
|
6415
6445
|
|
|
6416
6446
|
|
|
6417
6447
|
|
|
6448
|
+
|
|
6418
6449
|
|
|
6419
6450
|
// sugar
|
|
6420
6451
|
|
|
@@ -6477,6 +6508,7 @@ class WebRTCClient extends Emitter {
|
|
|
6477
6508
|
this.conferences = {};
|
|
6478
6509
|
this.networkMonitoringInterval = {};
|
|
6479
6510
|
this.sessionNetworkStats = {};
|
|
6511
|
+
this.forceClosed = false;
|
|
6480
6512
|
|
|
6481
6513
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6482
6514
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6598,6 +6630,8 @@ class WebRTCClient extends Emitter {
|
|
|
6598
6630
|
skipRegister: this.skipRegister,
|
|
6599
6631
|
};
|
|
6600
6632
|
|
|
6633
|
+
this.forceClosed = false;
|
|
6634
|
+
|
|
6601
6635
|
if (this.skipRegister) {
|
|
6602
6636
|
logger$9.info('sdk webrtc skip register...', logInfo);
|
|
6603
6637
|
return Promise.resolve();
|
|
@@ -6622,7 +6656,15 @@ class WebRTCClient extends Emitter {
|
|
|
6622
6656
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6623
6657
|
|
|
6624
6658
|
const onRegisterFailed = () => {
|
|
6625
|
-
logger$9.info('sdk webrtc registering failed', {
|
|
6659
|
+
logger$9.info('sdk webrtc registering failed', {
|
|
6660
|
+
tries,
|
|
6661
|
+
registerer: !!this.registerer,
|
|
6662
|
+
forceClosed: this.forceClosed,
|
|
6663
|
+
});
|
|
6664
|
+
if (this.forceClosed) {
|
|
6665
|
+
return;
|
|
6666
|
+
}
|
|
6667
|
+
|
|
6626
6668
|
this.connectionPromise = null;
|
|
6627
6669
|
if (this.registerer && this.registerer.waiting) {
|
|
6628
6670
|
this.registerer.waitingToggle(false);
|
|
@@ -6900,8 +6942,9 @@ class WebRTCClient extends Emitter {
|
|
|
6900
6942
|
}
|
|
6901
6943
|
}
|
|
6902
6944
|
|
|
6903
|
-
async close() {
|
|
6904
|
-
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
6945
|
+
async close(force = false) {
|
|
6946
|
+
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
6947
|
+
this.forceClosed = force;
|
|
6905
6948
|
this._cleanupMedia();
|
|
6906
6949
|
this.connectionPromise = null;
|
|
6907
6950
|
|
|
@@ -6920,7 +6963,7 @@ class WebRTCClient extends Emitter {
|
|
|
6920
6963
|
this.userAgent.delegate = null;
|
|
6921
6964
|
this.userAgent.stateChange.removeAllListeners();
|
|
6922
6965
|
|
|
6923
|
-
await this._disconnectTransport();
|
|
6966
|
+
await this._disconnectTransport(force);
|
|
6924
6967
|
|
|
6925
6968
|
this._cleanupRegister();
|
|
6926
6969
|
|
|
@@ -8356,7 +8399,15 @@ class WebRTCClient extends Emitter {
|
|
|
8356
8399
|
return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8357
8400
|
}
|
|
8358
8401
|
|
|
8359
|
-
async _disconnectTransport() {
|
|
8402
|
+
async _disconnectTransport(force = false) {
|
|
8403
|
+
if (force) {
|
|
8404
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8405
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8406
|
+
// eslint-disable-next-line
|
|
8407
|
+
this.userAgent.transport._ws.close(1000);
|
|
8408
|
+
return;
|
|
8409
|
+
}
|
|
8410
|
+
|
|
8360
8411
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8361
8412
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8362
8413
|
try {
|
|
@@ -9763,7 +9814,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9763
9814
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
9764
9815
|
}
|
|
9765
9816
|
|
|
9766
|
-
async close() {
|
|
9817
|
+
async close(force = false) {
|
|
9767
9818
|
logger$8.info('WebRTC close');
|
|
9768
9819
|
|
|
9769
9820
|
try {
|
|
@@ -9775,7 +9826,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9775
9826
|
logger$8.error('WebRTC close, unregister error', e);
|
|
9776
9827
|
}
|
|
9777
9828
|
|
|
9778
|
-
this.client.close();
|
|
9829
|
+
this.client.close(force);
|
|
9779
9830
|
this.unbind();
|
|
9780
9831
|
|
|
9781
9832
|
this.incomingSessions = [];
|
package/esm/simple/Directory.js
CHANGED
|
@@ -4016,6 +4016,34 @@ var chatdMethods = (client , baseUrl ) => ({
|
|
|
4016
4016
|
client.get(`${baseUrl}/users/me/rooms/messages`, options),
|
|
4017
4017
|
});
|
|
4018
4018
|
|
|
4019
|
+
//
|
|
4020
|
+
|
|
4021
|
+
|
|
4022
|
+
|
|
4023
|
+
|
|
4024
|
+
|
|
4025
|
+
class MeetingStatus {
|
|
4026
|
+
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
|
|
4030
|
+
constructor({
|
|
4031
|
+
full,
|
|
4032
|
+
} = {}) {
|
|
4033
|
+
this.full = full;
|
|
4034
|
+
|
|
4035
|
+
// Useful to compare instead of instanceof with minified code
|
|
4036
|
+
this.type = 'MeetingStatus';
|
|
4037
|
+
}
|
|
4038
|
+
|
|
4039
|
+
static parse(plain ) {
|
|
4040
|
+
return new MeetingStatus({
|
|
4041
|
+
full: plain.full,
|
|
4042
|
+
});
|
|
4043
|
+
}
|
|
4044
|
+
|
|
4045
|
+
}
|
|
4046
|
+
|
|
4019
4047
|
/* */
|
|
4020
4048
|
|
|
4021
4049
|
|
|
@@ -4210,6 +4238,8 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4210
4238
|
client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
|
|
4211
4239
|
ApiRequester.successResponseParser),
|
|
4212
4240
|
|
|
4241
|
+
guestGetMeetingStatus: (meetingUuid ) =>
|
|
4242
|
+
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
|
|
4213
4243
|
});
|
|
4214
4244
|
|
|
4215
4245
|
//
|
package/esm/simple/Phone.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
|
//
|
|
@@ -6415,6 +6445,7 @@ class WebRTCClient extends Emitter {
|
|
|
6415
6445
|
|
|
6416
6446
|
|
|
6417
6447
|
|
|
6448
|
+
|
|
6418
6449
|
|
|
6419
6450
|
// sugar
|
|
6420
6451
|
|
|
@@ -6477,6 +6508,7 @@ class WebRTCClient extends Emitter {
|
|
|
6477
6508
|
this.conferences = {};
|
|
6478
6509
|
this.networkMonitoringInterval = {};
|
|
6479
6510
|
this.sessionNetworkStats = {};
|
|
6511
|
+
this.forceClosed = false;
|
|
6480
6512
|
|
|
6481
6513
|
this._boundOnHeartbeat = this._onHeartbeat.bind(this);
|
|
6482
6514
|
this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
|
|
@@ -6598,6 +6630,8 @@ class WebRTCClient extends Emitter {
|
|
|
6598
6630
|
skipRegister: this.skipRegister,
|
|
6599
6631
|
};
|
|
6600
6632
|
|
|
6633
|
+
this.forceClosed = false;
|
|
6634
|
+
|
|
6601
6635
|
if (this.skipRegister) {
|
|
6602
6636
|
logger$9.info('sdk webrtc skip register...', logInfo);
|
|
6603
6637
|
return Promise.resolve();
|
|
@@ -6622,7 +6656,15 @@ class WebRTCClient extends Emitter {
|
|
|
6622
6656
|
const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
|
|
6623
6657
|
|
|
6624
6658
|
const onRegisterFailed = () => {
|
|
6625
|
-
logger$9.info('sdk webrtc registering failed', {
|
|
6659
|
+
logger$9.info('sdk webrtc registering failed', {
|
|
6660
|
+
tries,
|
|
6661
|
+
registerer: !!this.registerer,
|
|
6662
|
+
forceClosed: this.forceClosed,
|
|
6663
|
+
});
|
|
6664
|
+
if (this.forceClosed) {
|
|
6665
|
+
return;
|
|
6666
|
+
}
|
|
6667
|
+
|
|
6626
6668
|
this.connectionPromise = null;
|
|
6627
6669
|
if (this.registerer && this.registerer.waiting) {
|
|
6628
6670
|
this.registerer.waitingToggle(false);
|
|
@@ -6900,8 +6942,9 @@ class WebRTCClient extends Emitter {
|
|
|
6900
6942
|
}
|
|
6901
6943
|
}
|
|
6902
6944
|
|
|
6903
|
-
async close() {
|
|
6904
|
-
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
|
|
6945
|
+
async close(force = false) {
|
|
6946
|
+
logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
|
|
6947
|
+
this.forceClosed = force;
|
|
6905
6948
|
this._cleanupMedia();
|
|
6906
6949
|
this.connectionPromise = null;
|
|
6907
6950
|
|
|
@@ -6920,7 +6963,7 @@ class WebRTCClient extends Emitter {
|
|
|
6920
6963
|
this.userAgent.delegate = null;
|
|
6921
6964
|
this.userAgent.stateChange.removeAllListeners();
|
|
6922
6965
|
|
|
6923
|
-
await this._disconnectTransport();
|
|
6966
|
+
await this._disconnectTransport(force);
|
|
6924
6967
|
|
|
6925
6968
|
this._cleanupRegister();
|
|
6926
6969
|
|
|
@@ -8356,7 +8399,15 @@ class WebRTCClient extends Emitter {
|
|
|
8356
8399
|
return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
|
|
8357
8400
|
}
|
|
8358
8401
|
|
|
8359
|
-
async _disconnectTransport() {
|
|
8402
|
+
async _disconnectTransport(force = false) {
|
|
8403
|
+
if (force) {
|
|
8404
|
+
// Bypass sip.js state machine that prevent to close WS with the state `Connecting`
|
|
8405
|
+
this.userAgent.transport.disconnectResolve = () => {};
|
|
8406
|
+
// eslint-disable-next-line
|
|
8407
|
+
this.userAgent.transport._ws.close(1000);
|
|
8408
|
+
return;
|
|
8409
|
+
}
|
|
8410
|
+
|
|
8360
8411
|
// Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
|
|
8361
8412
|
if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
|
|
8362
8413
|
try {
|
|
@@ -9763,7 +9814,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9763
9814
|
return this.client && this.client.isConference(callSession.sipCallId);
|
|
9764
9815
|
}
|
|
9765
9816
|
|
|
9766
|
-
async close() {
|
|
9817
|
+
async close(force = false) {
|
|
9767
9818
|
logger$8.info('WebRTC close');
|
|
9768
9819
|
|
|
9769
9820
|
try {
|
|
@@ -9775,7 +9826,7 @@ class WebRTCPhone extends Emitter {
|
|
|
9775
9826
|
logger$8.error('WebRTC close, unregister error', e);
|
|
9776
9827
|
}
|
|
9777
9828
|
|
|
9778
|
-
this.client.close();
|
|
9829
|
+
this.client.close(force);
|
|
9779
9830
|
this.unbind();
|
|
9780
9831
|
|
|
9781
9832
|
this.incomingSessions = [];
|
package/esm/simple/index.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 = [];
|