@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.
Files changed (70) hide show
  1. package/dist/wazo-sdk.js +2 -2
  2. package/esm/__tests__/api-client.test.js +30 -0
  3. package/esm/__tests__/web-rtc-client.test.js +56 -5
  4. package/esm/api/calld.js +30 -0
  5. package/esm/api-client.js +30 -0
  6. package/esm/checker/Checker.js +56 -5
  7. package/esm/checker/checks/aor.js +30 -0
  8. package/esm/checker/checks/api.js +30 -0
  9. package/esm/checker/checks/index.js +56 -5
  10. package/esm/checker/checks/webrtc-transport.js +56 -5
  11. package/esm/checker/checks/webrtc.js +56 -5
  12. package/esm/domain/AdHocAPIConference.js +30 -0
  13. package/esm/domain/Features.js +30 -0
  14. package/esm/domain/MeetingStatus.js +29 -0
  15. package/esm/domain/Phone/CTIPhone.js +30 -0
  16. package/esm/domain/Phone/WebRTCPhone.js +2 -2
  17. package/esm/index.js +58 -7
  18. package/esm/service/CallApi.js +30 -0
  19. package/esm/service/getApiClient.js +30 -0
  20. package/esm/simple/Auth.js +58 -7
  21. package/esm/simple/Configuration.js +58 -7
  22. package/esm/simple/Directory.js +30 -0
  23. package/esm/simple/Phone.js +58 -7
  24. package/esm/simple/index.js +58 -7
  25. package/esm/simple/room/LocalParticipant.js +58 -7
  26. package/esm/simple/room/Participant.js +58 -7
  27. package/esm/simple/room/RemoteParticipant.js +58 -7
  28. package/esm/simple/room/Room.js +58 -7
  29. package/esm/simple/room/SipRoom.js +58 -7
  30. package/esm/simple/room/Stream.js +58 -7
  31. package/esm/simple/room/__tests__/RemoteParticipant.test.js +58 -7
  32. package/esm/simple/utils.js +58 -7
  33. package/esm/web-rtc-client.js +56 -5
  34. package/lib/__tests__/api-client.test.js +30 -0
  35. package/lib/__tests__/web-rtc-client.test.js +56 -5
  36. package/lib/api/calld.js +30 -0
  37. package/lib/api-client.js +30 -0
  38. package/lib/checker/Checker.js +56 -5
  39. package/lib/checker/checks/aor.js +30 -0
  40. package/lib/checker/checks/api.js +30 -0
  41. package/lib/checker/checks/index.js +56 -5
  42. package/lib/checker/checks/webrtc-transport.js +56 -5
  43. package/lib/checker/checks/webrtc.js +56 -5
  44. package/lib/domain/AdHocAPIConference.js +30 -0
  45. package/lib/domain/Features.js +30 -0
  46. package/lib/domain/MeetingStatus.js +31 -0
  47. package/lib/domain/Phone/CTIPhone.js +30 -0
  48. package/lib/domain/Phone/WebRTCPhone.js +2 -2
  49. package/lib/index.js +58 -7
  50. package/lib/service/CallApi.js +30 -0
  51. package/lib/service/getApiClient.js +30 -0
  52. package/lib/simple/Auth.js +58 -7
  53. package/lib/simple/Configuration.js +58 -7
  54. package/lib/simple/Directory.js +30 -0
  55. package/lib/simple/Phone.js +58 -7
  56. package/lib/simple/index.js +58 -7
  57. package/lib/simple/room/LocalParticipant.js +58 -7
  58. package/lib/simple/room/Participant.js +58 -7
  59. package/lib/simple/room/RemoteParticipant.js +58 -7
  60. package/lib/simple/room/Room.js +58 -7
  61. package/lib/simple/room/SipRoom.js +58 -7
  62. package/lib/simple/room/Stream.js +58 -7
  63. package/lib/simple/room/__tests__/RemoteParticipant.test.js +58 -7
  64. package/lib/simple/utils.js +58 -7
  65. package/lib/web-rtc-client.js +56 -5
  66. package/package.json +1 -1
  67. package/src/api/calld.js +3 -0
  68. package/src/domain/MeetingStatus.js +27 -0
  69. package/src/domain/Phone/WebRTCPhone.js +2 -2
  70. package/src/web-rtc-client.js +26 -5
@@ -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
  //
@@ -5386,6 +5416,7 @@ class WebRTCClient extends Emitter {
5386
5416
 
5387
5417
 
5388
5418
 
5419
+
5389
5420
 
5390
5421
  // sugar
5391
5422
 
@@ -5448,6 +5479,7 @@ class WebRTCClient extends Emitter {
5448
5479
  this.conferences = {};
5449
5480
  this.networkMonitoringInterval = {};
5450
5481
  this.sessionNetworkStats = {};
5482
+ this.forceClosed = false;
5451
5483
 
5452
5484
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
5453
5485
  this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
@@ -5569,6 +5601,8 @@ class WebRTCClient extends Emitter {
5569
5601
  skipRegister: this.skipRegister,
5570
5602
  };
5571
5603
 
5604
+ this.forceClosed = false;
5605
+
5572
5606
  if (this.skipRegister) {
5573
5607
  logger.info('sdk webrtc skip register...', logInfo);
5574
5608
  return Promise.resolve();
@@ -5593,7 +5627,15 @@ class WebRTCClient extends Emitter {
5593
5627
  const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
5594
5628
 
5595
5629
  const onRegisterFailed = () => {
5596
- logger.info('sdk webrtc registering failed', { tries, registerer: !!this.registerer });
5630
+ logger.info('sdk webrtc registering failed', {
5631
+ tries,
5632
+ registerer: !!this.registerer,
5633
+ forceClosed: this.forceClosed,
5634
+ });
5635
+ if (this.forceClosed) {
5636
+ return;
5637
+ }
5638
+
5597
5639
  this.connectionPromise = null;
5598
5640
  if (this.registerer && this.registerer.waiting) {
5599
5641
  this.registerer.waitingToggle(false);
@@ -5871,8 +5913,9 @@ class WebRTCClient extends Emitter {
5871
5913
  }
5872
5914
  }
5873
5915
 
5874
- async close() {
5875
- logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
5916
+ async close(force = false) {
5917
+ logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
5918
+ this.forceClosed = force;
5876
5919
  this._cleanupMedia();
5877
5920
  this.connectionPromise = null;
5878
5921
 
@@ -5891,7 +5934,7 @@ class WebRTCClient extends Emitter {
5891
5934
  this.userAgent.delegate = null;
5892
5935
  this.userAgent.stateChange.removeAllListeners();
5893
5936
 
5894
- await this._disconnectTransport();
5937
+ await this._disconnectTransport(force);
5895
5938
 
5896
5939
  this._cleanupRegister();
5897
5940
 
@@ -7327,7 +7370,15 @@ class WebRTCClient extends Emitter {
7327
7370
  return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
7328
7371
  }
7329
7372
 
7330
- async _disconnectTransport() {
7373
+ async _disconnectTransport(force = false) {
7374
+ if (force) {
7375
+ // Bypass sip.js state machine that prevent to close WS with the state `Connecting`
7376
+ this.userAgent.transport.disconnectResolve = () => {};
7377
+ // eslint-disable-next-line
7378
+ this.userAgent.transport._ws.close(1000);
7379
+ return;
7380
+ }
7381
+
7331
7382
  // Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
7332
7383
  if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
7333
7384
  try {
@@ -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
  //
@@ -5386,6 +5416,7 @@ class WebRTCClient extends Emitter {
5386
5416
 
5387
5417
 
5388
5418
 
5419
+
5389
5420
 
5390
5421
  // sugar
5391
5422
 
@@ -5448,6 +5479,7 @@ class WebRTCClient extends Emitter {
5448
5479
  this.conferences = {};
5449
5480
  this.networkMonitoringInterval = {};
5450
5481
  this.sessionNetworkStats = {};
5482
+ this.forceClosed = false;
5451
5483
 
5452
5484
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
5453
5485
  this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
@@ -5569,6 +5601,8 @@ class WebRTCClient extends Emitter {
5569
5601
  skipRegister: this.skipRegister,
5570
5602
  };
5571
5603
 
5604
+ this.forceClosed = false;
5605
+
5572
5606
  if (this.skipRegister) {
5573
5607
  logger.info('sdk webrtc skip register...', logInfo);
5574
5608
  return Promise.resolve();
@@ -5593,7 +5627,15 @@ class WebRTCClient extends Emitter {
5593
5627
  const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
5594
5628
 
5595
5629
  const onRegisterFailed = () => {
5596
- logger.info('sdk webrtc registering failed', { tries, registerer: !!this.registerer });
5630
+ logger.info('sdk webrtc registering failed', {
5631
+ tries,
5632
+ registerer: !!this.registerer,
5633
+ forceClosed: this.forceClosed,
5634
+ });
5635
+ if (this.forceClosed) {
5636
+ return;
5637
+ }
5638
+
5597
5639
  this.connectionPromise = null;
5598
5640
  if (this.registerer && this.registerer.waiting) {
5599
5641
  this.registerer.waitingToggle(false);
@@ -5871,8 +5913,9 @@ class WebRTCClient extends Emitter {
5871
5913
  }
5872
5914
  }
5873
5915
 
5874
- async close() {
5875
- logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
5916
+ async close(force = false) {
5917
+ logger.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
5918
+ this.forceClosed = force;
5876
5919
  this._cleanupMedia();
5877
5920
  this.connectionPromise = null;
5878
5921
 
@@ -5891,7 +5934,7 @@ class WebRTCClient extends Emitter {
5891
5934
  this.userAgent.delegate = null;
5892
5935
  this.userAgent.stateChange.removeAllListeners();
5893
5936
 
5894
- await this._disconnectTransport();
5937
+ await this._disconnectTransport(force);
5895
5938
 
5896
5939
  this._cleanupRegister();
5897
5940
 
@@ -7327,7 +7370,15 @@ class WebRTCClient extends Emitter {
7327
7370
  return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
7328
7371
  }
7329
7372
 
7330
- async _disconnectTransport() {
7373
+ async _disconnectTransport(force = false) {
7374
+ if (force) {
7375
+ // Bypass sip.js state machine that prevent to close WS with the state `Connecting`
7376
+ this.userAgent.transport.disconnectResolve = () => {};
7377
+ // eslint-disable-next-line
7378
+ this.userAgent.transport._ws.close(1000);
7379
+ return;
7380
+ }
7381
+
7331
7382
  // Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
7332
7383
  if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
7333
7384
  try {
@@ -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
  //
@@ -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
  //
@@ -0,0 +1,29 @@
1
+ //
2
+
3
+
4
+
5
+
6
+
7
+ class MeetingStatus {
8
+
9
+
10
+
11
+
12
+ constructor({
13
+ full,
14
+ } = {}) {
15
+ this.full = full;
16
+
17
+ // Useful to compare instead of instanceof with minified code
18
+ this.type = 'MeetingStatus';
19
+ }
20
+
21
+ static parse(plain ) {
22
+ return new MeetingStatus({
23
+ full: plain.full,
24
+ });
25
+ }
26
+
27
+ }
28
+
29
+ export default MeetingStatus;
@@ -4407,6 +4407,34 @@ class IndirectTransfer {
4407
4407
  }
4408
4408
  }
4409
4409
 
4410
+ //
4411
+
4412
+
4413
+
4414
+
4415
+
4416
+ class MeetingStatus {
4417
+
4418
+
4419
+
4420
+
4421
+ constructor({
4422
+ full,
4423
+ } = {}) {
4424
+ this.full = full;
4425
+
4426
+ // Useful to compare instead of instanceof with minified code
4427
+ this.type = 'MeetingStatus';
4428
+ }
4429
+
4430
+ static parse(plain ) {
4431
+ return new MeetingStatus({
4432
+ full: plain.full,
4433
+ });
4434
+ }
4435
+
4436
+ }
4437
+
4410
4438
  /* */
4411
4439
 
4412
4440
 
@@ -4601,6 +4629,8 @@ var calldMethods = (client , baseUrl ) => ({
4601
4629
  client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
4602
4630
  ApiRequester.successResponseParser),
4603
4631
 
4632
+ guestGetMeetingStatus: (meetingUuid ) =>
4633
+ client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
4604
4634
  });
4605
4635
 
4606
4636
  //
@@ -2174,7 +2174,7 @@ class WebRTCPhone extends Emitter {
2174
2174
  return this.client && this.client.isConference(callSession.sipCallId);
2175
2175
  }
2176
2176
 
2177
- async close() {
2177
+ async close(force = false) {
2178
2178
  logger.info('WebRTC close');
2179
2179
 
2180
2180
  try {
@@ -2186,7 +2186,7 @@ class WebRTCPhone extends Emitter {
2186
2186
  logger.error('WebRTC close, unregister error', e);
2187
2187
  }
2188
2188
 
2189
- this.client.close();
2189
+ this.client.close(force);
2190
2190
  this.unbind();
2191
2191
 
2192
2192
  this.incomingSessions = [];
package/esm/index.js CHANGED
@@ -4926,6 +4926,34 @@ var chatdMethods = (client , baseUrl ) => ({
4926
4926
  client.get(`${baseUrl}/users/me/rooms/messages`, options),
4927
4927
  });
4928
4928
 
4929
+ //
4930
+
4931
+
4932
+
4933
+
4934
+
4935
+ class MeetingStatus {
4936
+
4937
+
4938
+
4939
+
4940
+ constructor({
4941
+ full,
4942
+ } = {}) {
4943
+ this.full = full;
4944
+
4945
+ // Useful to compare instead of instanceof with minified code
4946
+ this.type = 'MeetingStatus';
4947
+ }
4948
+
4949
+ static parse(plain ) {
4950
+ return new MeetingStatus({
4951
+ full: plain.full,
4952
+ });
4953
+ }
4954
+
4955
+ }
4956
+
4929
4957
  /* */
4930
4958
 
4931
4959
 
@@ -5120,6 +5148,8 @@ var calldMethods = (client , baseUrl ) => ({
5120
5148
  client.put(`${baseUrl}/users/me/calls/${callId}/record/resume`, null, null,
5121
5149
  ApiRequester.successResponseParser),
5122
5150
 
5151
+ guestGetMeetingStatus: (meetingUuid ) =>
5152
+ client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}/status`).then(MeetingStatus.parse),
5123
5153
  });
5124
5154
 
5125
5155
  //
@@ -6241,6 +6271,7 @@ class WebRTCClient extends Emitter {
6241
6271
 
6242
6272
 
6243
6273
 
6274
+
6244
6275
 
6245
6276
  // sugar
6246
6277
 
@@ -6303,6 +6334,7 @@ class WebRTCClient extends Emitter {
6303
6334
  this.conferences = {};
6304
6335
  this.networkMonitoringInterval = {};
6305
6336
  this.sessionNetworkStats = {};
6337
+ this.forceClosed = false;
6306
6338
 
6307
6339
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
6308
6340
  this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
@@ -6424,6 +6456,8 @@ class WebRTCClient extends Emitter {
6424
6456
  skipRegister: this.skipRegister,
6425
6457
  };
6426
6458
 
6459
+ this.forceClosed = false;
6460
+
6427
6461
  if (this.skipRegister) {
6428
6462
  logger$9.info('sdk webrtc skip register...', logInfo);
6429
6463
  return Promise.resolve();
@@ -6448,7 +6482,15 @@ class WebRTCClient extends Emitter {
6448
6482
  const registerOptions = this._isWeb() ? {} : { extraContactHeaderParams: ['mobility=mobile'] };
6449
6483
 
6450
6484
  const onRegisterFailed = () => {
6451
- logger$9.info('sdk webrtc registering failed', { tries, registerer: !!this.registerer });
6485
+ logger$9.info('sdk webrtc registering failed', {
6486
+ tries,
6487
+ registerer: !!this.registerer,
6488
+ forceClosed: this.forceClosed,
6489
+ });
6490
+ if (this.forceClosed) {
6491
+ return;
6492
+ }
6493
+
6452
6494
  this.connectionPromise = null;
6453
6495
  if (this.registerer && this.registerer.waiting) {
6454
6496
  this.registerer.waitingToggle(false);
@@ -6726,8 +6768,9 @@ class WebRTCClient extends Emitter {
6726
6768
  }
6727
6769
  }
6728
6770
 
6729
- async close() {
6730
- logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent });
6771
+ async close(force = false) {
6772
+ logger$9.info('sdk webrtc closing client', { userAgent: !!this.userAgent, force });
6773
+ this.forceClosed = force;
6731
6774
  this._cleanupMedia();
6732
6775
  this.connectionPromise = null;
6733
6776
 
@@ -6746,7 +6789,7 @@ class WebRTCClient extends Emitter {
6746
6789
  this.userAgent.delegate = null;
6747
6790
  this.userAgent.stateChange.removeAllListeners();
6748
6791
 
6749
- await this._disconnectTransport();
6792
+ await this._disconnectTransport(force);
6750
6793
 
6751
6794
  this._cleanupRegister();
6752
6795
 
@@ -8182,7 +8225,15 @@ class WebRTCClient extends Emitter {
8182
8225
  return UserAgent.makeURI(`sip:${target}@${this.config.host}`);
8183
8226
  }
8184
8227
 
8185
- async _disconnectTransport() {
8228
+ async _disconnectTransport(force = false) {
8229
+ if (force) {
8230
+ // Bypass sip.js state machine that prevent to close WS with the state `Connecting`
8231
+ this.userAgent.transport.disconnectResolve = () => {};
8232
+ // eslint-disable-next-line
8233
+ this.userAgent.transport._ws.close(1000);
8234
+ return;
8235
+ }
8236
+
8186
8237
  // Check if `disconnectPromise` is not present to avoid `Disconnect promise must not be defined` errors.
8187
8238
  if (this.userAgent && this.userAgent.transport && !this.userAgent.transport.disconnectPromise) {
8188
8239
  try {
@@ -10490,7 +10541,7 @@ class WebRTCPhone extends Emitter {
10490
10541
  return this.client && this.client.isConference(callSession.sipCallId);
10491
10542
  }
10492
10543
 
10493
- async close() {
10544
+ async close(force = false) {
10494
10545
  logger$7.info('WebRTC close');
10495
10546
 
10496
10547
  try {
@@ -10502,7 +10553,7 @@ class WebRTCPhone extends Emitter {
10502
10553
  logger$7.error('WebRTC close, unregister error', e);
10503
10554
  }
10504
10555
 
10505
- this.client.close();
10556
+ this.client.close(force);
10506
10557
  this.unbind();
10507
10558
 
10508
10559
  this.incomingSessions = [];
@@ -4016,6 +4016,34 @@ class IndirectTransfer {
4016
4016
  }
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
  //
@@ -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
  //