@wazo/sdk 0.37.40 → 0.37.43

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 (109) hide show
  1. package/dist/wazo-sdk.js +3 -3
  2. package/esm/__tests__/api-client.test.js +45 -22
  3. package/esm/__tests__/web-rtc-client.test.js +49 -24
  4. package/esm/api/agentd.js +12 -7
  5. package/esm/api/amid.js +12 -7
  6. package/esm/api/application.js +12 -7
  7. package/esm/api/auth.js +16 -8
  8. package/esm/api/call-logd.js +12 -7
  9. package/esm/api/calld.js +12 -7
  10. package/esm/api/chatd.js +12 -7
  11. package/esm/api/confd.js +12 -7
  12. package/esm/api/ctid-ng.js +14 -7
  13. package/esm/api/dird.js +12 -7
  14. package/esm/api/webhookd.js +12 -7
  15. package/esm/api-client.js +45 -22
  16. package/esm/checker/Checker.js +50 -25
  17. package/esm/checker/checks/aor.js +45 -22
  18. package/esm/checker/checks/api.js +45 -22
  19. package/esm/checker/checks/index.js +50 -25
  20. package/esm/checker/checks/wazo-websocket.js +13 -8
  21. package/esm/checker/checks/webrtc-transport.js +49 -24
  22. package/esm/checker/checks/webrtc.js +49 -24
  23. package/esm/domain/AdHocAPIConference.js +54 -23
  24. package/esm/domain/Features.js +54 -23
  25. package/esm/domain/Phone/CTIPhone.js +54 -23
  26. package/esm/domain/Phone/WebRTCPhone.js +18 -11
  27. package/esm/index.js +89 -29
  28. package/esm/lib/WazoSessionDescriptionHandler.js +12 -7
  29. package/esm/service/CallApi.js +54 -23
  30. package/esm/service/IssueReporter.js +12 -7
  31. package/esm/service/__tests__/IssueReporter.test.js +18 -7
  32. package/esm/service/getApiClient.js +63 -24
  33. package/esm/simple/Auth.js +89 -29
  34. package/esm/simple/Configuration.js +89 -29
  35. package/esm/simple/Directory.js +54 -23
  36. package/esm/simple/Phone.js +89 -29
  37. package/esm/simple/Websocket.js +13 -8
  38. package/esm/simple/index.js +89 -29
  39. package/esm/simple/room/LocalParticipant.js +89 -29
  40. package/esm/simple/room/Participant.js +89 -29
  41. package/esm/simple/room/RemoteParticipant.js +89 -29
  42. package/esm/simple/room/Room.js +89 -29
  43. package/esm/simple/room/SipRoom.js +89 -29
  44. package/esm/simple/room/Stream.js +89 -29
  45. package/esm/simple/room/__tests__/RemoteParticipant.test.js +89 -29
  46. package/esm/simple/utils.js +89 -29
  47. package/esm/utils/__tests__/api-requester.test.js +12 -7
  48. package/esm/utils/api-requester.js +12 -7
  49. package/esm/web-rtc-client.js +49 -24
  50. package/esm/websocket-client.js +13 -8
  51. package/lib/__tests__/api-client.test.js +45 -22
  52. package/lib/__tests__/web-rtc-client.test.js +49 -24
  53. package/lib/api/agentd.js +12 -7
  54. package/lib/api/amid.js +12 -7
  55. package/lib/api/application.js +12 -7
  56. package/lib/api/auth.js +16 -8
  57. package/lib/api/call-logd.js +12 -7
  58. package/lib/api/calld.js +12 -7
  59. package/lib/api/chatd.js +12 -7
  60. package/lib/api/confd.js +12 -7
  61. package/lib/api/ctid-ng.js +14 -7
  62. package/lib/api/dird.js +12 -7
  63. package/lib/api/webhookd.js +12 -7
  64. package/lib/api-client.js +45 -22
  65. package/lib/checker/Checker.js +50 -25
  66. package/lib/checker/checks/aor.js +45 -22
  67. package/lib/checker/checks/api.js +45 -22
  68. package/lib/checker/checks/index.js +50 -25
  69. package/lib/checker/checks/wazo-websocket.js +13 -8
  70. package/lib/checker/checks/webrtc-transport.js +49 -24
  71. package/lib/checker/checks/webrtc.js +49 -24
  72. package/lib/domain/AdHocAPIConference.js +54 -23
  73. package/lib/domain/Features.js +54 -23
  74. package/lib/domain/Phone/CTIPhone.js +54 -23
  75. package/lib/domain/Phone/WebRTCPhone.js +18 -11
  76. package/lib/index.js +89 -29
  77. package/lib/lib/WazoSessionDescriptionHandler.js +12 -7
  78. package/lib/service/CallApi.js +54 -23
  79. package/lib/service/IssueReporter.js +12 -7
  80. package/lib/service/__tests__/IssueReporter.test.js +18 -7
  81. package/lib/service/getApiClient.js +64 -23
  82. package/lib/simple/Auth.js +89 -29
  83. package/lib/simple/Configuration.js +89 -29
  84. package/lib/simple/Directory.js +54 -23
  85. package/lib/simple/Phone.js +89 -29
  86. package/lib/simple/Websocket.js +13 -8
  87. package/lib/simple/index.js +89 -29
  88. package/lib/simple/room/LocalParticipant.js +89 -29
  89. package/lib/simple/room/Participant.js +89 -29
  90. package/lib/simple/room/RemoteParticipant.js +89 -29
  91. package/lib/simple/room/Room.js +89 -29
  92. package/lib/simple/room/SipRoom.js +89 -29
  93. package/lib/simple/room/Stream.js +89 -29
  94. package/lib/simple/room/__tests__/RemoteParticipant.test.js +89 -29
  95. package/lib/simple/utils.js +89 -29
  96. package/lib/utils/__tests__/api-requester.test.js +12 -7
  97. package/lib/utils/api-requester.js +12 -7
  98. package/lib/web-rtc-client.js +49 -24
  99. package/lib/websocket-client.js +13 -8
  100. package/package.json +1 -1
  101. package/src/api/auth.js +4 -1
  102. package/src/api-client.js +26 -13
  103. package/src/domain/Phone/WebRTCPhone.js +4 -4
  104. package/src/service/IssueReporter.js +12 -7
  105. package/src/service/__tests__/IssueReporter.test.js +6 -0
  106. package/src/service/getApiClient.js +19 -1
  107. package/src/simple/Auth.js +21 -0
  108. package/src/web-rtc-client.js +4 -2
  109. package/src/websocket-client.js +1 -1
@@ -359,13 +359,9 @@ class IssueReporter {
359
359
 
360
360
  setTimeout(() => {
361
361
  if (isArray) {
362
- payload = payload.map(message => {
363
- message._retry = retry + 1;
364
- return message;
365
- });
366
- } else {
367
- // $FlowFixMe
368
- payload._retry = retry + 1;
362
+ payload = payload.map(message => this._writeRetryCount(message, retry + 1));
363
+ } else if (payload && typeof payload === 'object') {
364
+ payload = this._writeRetryCount(payload, retry + 1);
369
365
  }
370
366
 
371
367
  this._sendDebugToGrafana(payload, retry + 1);
@@ -373,6 +369,15 @@ class IssueReporter {
373
369
  });
374
370
  }
375
371
 
372
+ _writeRetryCount(message , count ) {
373
+ if (message && typeof message === 'object') {
374
+ // $FlowFixMe
375
+ message._retry = count;
376
+ }
377
+
378
+ return message;
379
+ }
380
+
376
381
  _isLevelAbove(level1 , level2 ) {
377
382
  const index1 = LOG_LEVELS.indexOf(level1);
378
383
  const index2 = LOG_LEVELS.indexOf(level2);
@@ -359,13 +359,9 @@ class IssueReporter {
359
359
 
360
360
  setTimeout(() => {
361
361
  if (isArray) {
362
- payload = payload.map(message => {
363
- message._retry = retry + 1;
364
- return message;
365
- });
366
- } else {
367
- // $FlowFixMe
368
- payload._retry = retry + 1;
362
+ payload = payload.map(message => this._writeRetryCount(message, retry + 1));
363
+ } else if (payload && typeof payload === 'object') {
364
+ payload = this._writeRetryCount(payload, retry + 1);
369
365
  }
370
366
 
371
367
  this._sendDebugToGrafana(payload, retry + 1);
@@ -373,6 +369,15 @@ class IssueReporter {
373
369
  });
374
370
  }
375
371
 
372
+ _writeRetryCount(message , count ) {
373
+ if (message && typeof message === 'object') {
374
+ // $FlowFixMe
375
+ message._retry = count;
376
+ }
377
+
378
+ return message;
379
+ }
380
+
376
381
  _isLevelAbove(level1 , level2 ) {
377
382
  const index1 = LOG_LEVELS.indexOf(level1);
378
383
  const index2 = LOG_LEVELS.indexOf(level2);
@@ -488,4 +493,10 @@ describe('IssueReporter', () => {
488
493
  expect(IssueReporter$1.removeSlashes('\"')).toBe("'");
489
494
  expect(IssueReporter$1.removeSlashes('\\\"')).toBe("'");
490
495
  });
496
+
497
+ it('Add retry count', () => {
498
+ expect(IssueReporter$1._writeRetryCount('', 1)).toBe('');
499
+ expect(IssueReporter$1._writeRetryCount('{}', 1)).toBe('{}');
500
+ expect(IssueReporter$1._writeRetryCount({}, 1)).toEqual({ _retry: 1 });
501
+ });
491
502
  });
@@ -396,13 +396,9 @@ class IssueReporter {
396
396
 
397
397
  setTimeout(() => {
398
398
  if (isArray) {
399
- payload = payload.map(message => {
400
- message._retry = retry + 1;
401
- return message;
402
- });
403
- } else {
404
- // $FlowFixMe
405
- payload._retry = retry + 1;
399
+ payload = payload.map(message => this._writeRetryCount(message, retry + 1));
400
+ } else if (payload && typeof payload === 'object') {
401
+ payload = this._writeRetryCount(payload, retry + 1);
406
402
  }
407
403
 
408
404
  this._sendDebugToGrafana(payload, retry + 1);
@@ -410,6 +406,15 @@ class IssueReporter {
410
406
  });
411
407
  }
412
408
 
409
+ _writeRetryCount(message , count ) {
410
+ if (message && typeof message === 'object') {
411
+ // $FlowFixMe
412
+ message._retry = count;
413
+ }
414
+
415
+ return message;
416
+ }
417
+
413
418
  _isLevelAbove(level1 , level2 ) {
414
419
  const index1 = LOG_LEVELS.indexOf(level1);
415
420
  const index2 = LOG_LEVELS.indexOf(level2);
@@ -2245,9 +2250,12 @@ var authMethods = (client , baseUrl ) => ({
2245
2250
  expiration: expiration || DETAULT_EXPIRATION,
2246
2251
  refresh_token: refreshToken,
2247
2252
  client_id: client.clientId,
2248
- tenant_id: tenantId,
2249
2253
  };
2250
2254
 
2255
+ if (tenantId) {
2256
+ body.tenant_id = tenantId;
2257
+ }
2258
+
2251
2259
  const headers = {
2252
2260
  'Content-Type': 'application/json',
2253
2261
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -4566,6 +4574,7 @@ class ApiClient {
4566
4574
 
4567
4575
 
4568
4576
 
4577
+
4569
4578
 
4570
4579
 
4571
4580
 
@@ -4618,23 +4627,31 @@ class ApiClient {
4618
4627
  return null;
4619
4628
  }
4620
4629
 
4621
- const session = await this.auth.refreshToken(
4622
- this.refreshToken,
4623
- this.refreshBackend,
4624
- this.refreshExpiration,
4625
- this.isMobile,
4626
- this.refreshTenantId,
4627
- );
4628
-
4629
- logger.info('token refreshed', { token: session.token });
4630
+ try {
4631
+ const session = await this.auth.refreshToken(
4632
+ this.refreshToken,
4633
+ this.refreshBackend,
4634
+ this.refreshExpiration,
4635
+ this.isMobile,
4636
+ this.refreshTenantId,
4637
+ );
4638
+
4639
+ logger.info('token refreshed', { token: session.token });
4640
+
4641
+ if (this.onRefreshToken) {
4642
+ this.onRefreshToken(session.token, session);
4643
+ }
4630
4644
 
4631
- if (this.onRefreshToken) {
4632
- this.onRefreshToken(session.token, session);
4633
- }
4645
+ this.setToken(session.token);
4634
4646
 
4635
- this.setToken(session.token);
4647
+ return session.token;
4648
+ } catch (error) {
4649
+ logger.error('token refresh, error', error);
4636
4650
 
4637
- return session.token;
4651
+ if (this.onRefreshTokenError) {
4652
+ this.onRefreshTokenError(error);
4653
+ }
4654
+ }
4638
4655
  }
4639
4656
 
4640
4657
  setToken(token ) {
@@ -4657,6 +4674,10 @@ class ApiClient {
4657
4674
  this.onRefreshToken = onRefreshToken;
4658
4675
  }
4659
4676
 
4677
+ setOnRefreshTokenError(callback ) {
4678
+ this.onRefreshTokenError = callback;
4679
+ }
4680
+
4660
4681
  setRefreshExpiration(refreshExpiration ) {
4661
4682
  this.refreshExpiration = refreshExpiration;
4662
4683
  }
@@ -4692,7 +4713,9 @@ global.wazoClients = global.wazoClients || {};
4692
4713
  global.wazoClientId = global.wazoClientId || {};
4693
4714
  global.wazoClientToken = global.wazoClientToken || {};
4694
4715
  global.wazoRefreshToken = global.wazoRefreshToken || {};
4716
+ global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
4695
4717
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
4718
+ global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
4696
4719
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
4697
4720
  global.wazoRefreshBackend = global.wazoRefreshBackend || {};
4698
4721
  global.wazoIsMobile = global.wazoIsMobile || {};
@@ -4714,10 +4737,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
4714
4737
  global.wazoRefreshToken[forServer] = newRefreshToken;
4715
4738
  };
4716
4739
 
4740
+ const setRefreshTenantId = (refreshTenantId , forServer = null) => {
4741
+ global.wazoRefreshTenantId[forServer] = refreshTenantId;
4742
+ };
4743
+
4717
4744
  const setOnRefreshToken = (onRefreshToken , forServer = null) => {
4718
4745
  global.wazoOnRefreshToken[forServer] = onRefreshToken;
4719
4746
  };
4720
4747
 
4748
+ const setOnRefreshTokenError = (callback , forServer = null) => {
4749
+ global.wazoOnRefreshTokenError[forServer] = callback;
4750
+ };
4751
+
4721
4752
  const setRefreshExpiration = (refreshExpiration , forServer = null) => {
4722
4753
  global.wazoRefreshExpiration[forServer] = refreshExpiration;
4723
4754
  };
@@ -4744,12 +4775,20 @@ const fillClient = (apiClient ) => {
4744
4775
 
4745
4776
  apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
4746
4777
 
4778
+ apiClient.setRefreshTenantId(
4779
+ global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
4780
+ );
4781
+
4747
4782
  apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
4748
4783
 
4749
4784
  apiClient.setOnRefreshToken(
4750
4785
  global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
4751
4786
  );
4752
4787
 
4788
+ apiClient.setOnRefreshTokenError(
4789
+ global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
4790
+ );
4791
+
4753
4792
  apiClient.setRefreshExpiration(
4754
4793
  global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
4755
4794
  );
@@ -4763,7 +4802,7 @@ const fillClient = (apiClient ) => {
4763
4802
  return apiClient;
4764
4803
  };
4765
4804
 
4766
- var getApiClient = (forServer ) => {
4805
+ var getApiClient = (forServer = null) => {
4767
4806
  const server = forServer || global.wazoCurrentServer || '';
4768
4807
  if (server in global.wazoClients) {
4769
4808
  return fillClient(global.wazoClients[server]);
@@ -4775,4 +4814,4 @@ var getApiClient = (forServer ) => {
4775
4814
  };
4776
4815
 
4777
4816
  export default getApiClient;
4778
- export { setApiClientId, setApiToken, setCurrentServer, setFetchOptions, setIsMobile, setOnRefreshToken, setRefreshBackend, setRefreshExpiration, setRefreshToken };
4817
+ export { setApiClientId, setApiToken, setCurrentServer, setFetchOptions, setIsMobile, setOnRefreshToken, setOnRefreshTokenError, setRefreshBackend, setRefreshExpiration, setRefreshTenantId, setRefreshToken };
@@ -1909,13 +1909,9 @@ class IssueReporter {
1909
1909
 
1910
1910
  setTimeout(() => {
1911
1911
  if (isArray) {
1912
- payload = payload.map(message => {
1913
- message._retry = retry + 1;
1914
- return message;
1915
- });
1916
- } else {
1917
- // $FlowFixMe
1918
- payload._retry = retry + 1;
1912
+ payload = payload.map(message => this._writeRetryCount(message, retry + 1));
1913
+ } else if (payload && typeof payload === 'object') {
1914
+ payload = this._writeRetryCount(payload, retry + 1);
1919
1915
  }
1920
1916
 
1921
1917
  this._sendDebugToGrafana(payload, retry + 1);
@@ -1923,6 +1919,15 @@ class IssueReporter {
1923
1919
  });
1924
1920
  }
1925
1921
 
1922
+ _writeRetryCount(message , count ) {
1923
+ if (message && typeof message === 'object') {
1924
+ // $FlowFixMe
1925
+ message._retry = count;
1926
+ }
1927
+
1928
+ return message;
1929
+ }
1930
+
1926
1931
  _isLevelAbove(level1 , level2 ) {
1927
1932
  const index1 = LOG_LEVELS.indexOf(level1);
1928
1933
  const index2 = LOG_LEVELS.indexOf(level2);
@@ -2265,9 +2270,12 @@ var authMethods = (client , baseUrl ) => ({
2265
2270
  expiration: expiration || DETAULT_EXPIRATION,
2266
2271
  refresh_token: refreshToken,
2267
2272
  client_id: client.clientId,
2268
- tenant_id: tenantId,
2269
2273
  };
2270
2274
 
2275
+ if (tenantId) {
2276
+ body.tenant_id = tenantId;
2277
+ }
2278
+
2271
2279
  const headers = {
2272
2280
  'Content-Type': 'application/json',
2273
2281
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -5415,6 +5423,7 @@ class ApiClient {
5415
5423
 
5416
5424
 
5417
5425
 
5426
+
5418
5427
 
5419
5428
 
5420
5429
 
@@ -5467,23 +5476,31 @@ class ApiClient {
5467
5476
  return null;
5468
5477
  }
5469
5478
 
5470
- const session = await this.auth.refreshToken(
5471
- this.refreshToken,
5472
- this.refreshBackend,
5473
- this.refreshExpiration,
5474
- this.isMobile,
5475
- this.refreshTenantId,
5476
- );
5479
+ try {
5480
+ const session = await this.auth.refreshToken(
5481
+ this.refreshToken,
5482
+ this.refreshBackend,
5483
+ this.refreshExpiration,
5484
+ this.isMobile,
5485
+ this.refreshTenantId,
5486
+ );
5477
5487
 
5478
- logger$a.info('token refreshed', { token: session.token });
5488
+ logger$a.info('token refreshed', { token: session.token });
5479
5489
 
5480
- if (this.onRefreshToken) {
5481
- this.onRefreshToken(session.token, session);
5482
- }
5490
+ if (this.onRefreshToken) {
5491
+ this.onRefreshToken(session.token, session);
5492
+ }
5483
5493
 
5484
- this.setToken(session.token);
5494
+ this.setToken(session.token);
5485
5495
 
5486
- return session.token;
5496
+ return session.token;
5497
+ } catch (error) {
5498
+ logger$a.error('token refresh, error', error);
5499
+
5500
+ if (this.onRefreshTokenError) {
5501
+ this.onRefreshTokenError(error);
5502
+ }
5503
+ }
5487
5504
  }
5488
5505
 
5489
5506
  setToken(token ) {
@@ -5506,6 +5523,10 @@ class ApiClient {
5506
5523
  this.onRefreshToken = onRefreshToken;
5507
5524
  }
5508
5525
 
5526
+ setOnRefreshTokenError(callback ) {
5527
+ this.onRefreshTokenError = callback;
5528
+ }
5529
+
5509
5530
  setRefreshExpiration(refreshExpiration ) {
5510
5531
  this.refreshExpiration = refreshExpiration;
5511
5532
  }
@@ -5541,7 +5562,9 @@ global.wazoClients = global.wazoClients || {};
5541
5562
  global.wazoClientId = global.wazoClientId || {};
5542
5563
  global.wazoClientToken = global.wazoClientToken || {};
5543
5564
  global.wazoRefreshToken = global.wazoRefreshToken || {};
5565
+ global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
5544
5566
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
5567
+ global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
5545
5568
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
5546
5569
  global.wazoRefreshBackend = global.wazoRefreshBackend || {};
5547
5570
  global.wazoIsMobile = global.wazoIsMobile || {};
@@ -5563,10 +5586,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
5563
5586
  global.wazoRefreshToken[forServer] = newRefreshToken;
5564
5587
  };
5565
5588
 
5589
+ const setRefreshTenantId = (refreshTenantId , forServer = null) => {
5590
+ global.wazoRefreshTenantId[forServer] = refreshTenantId;
5591
+ };
5592
+
5566
5593
  const setOnRefreshToken = (onRefreshToken , forServer = null) => {
5567
5594
  global.wazoOnRefreshToken[forServer] = onRefreshToken;
5568
5595
  };
5569
5596
 
5597
+ const setOnRefreshTokenError = (callback , forServer = null) => {
5598
+ global.wazoOnRefreshTokenError[forServer] = callback;
5599
+ };
5600
+
5570
5601
  const setRefreshExpiration = (refreshExpiration , forServer = null) => {
5571
5602
  global.wazoRefreshExpiration[forServer] = refreshExpiration;
5572
5603
  };
@@ -5585,12 +5616,20 @@ const fillClient = (apiClient ) => {
5585
5616
 
5586
5617
  apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
5587
5618
 
5619
+ apiClient.setRefreshTenantId(
5620
+ global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
5621
+ );
5622
+
5588
5623
  apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
5589
5624
 
5590
5625
  apiClient.setOnRefreshToken(
5591
5626
  global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
5592
5627
  );
5593
5628
 
5629
+ apiClient.setOnRefreshTokenError(
5630
+ global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
5631
+ );
5632
+
5594
5633
  apiClient.setRefreshExpiration(
5595
5634
  global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
5596
5635
  );
@@ -5604,7 +5643,7 @@ const fillClient = (apiClient ) => {
5604
5643
  return apiClient;
5605
5644
  };
5606
5645
 
5607
- var getApiClient = (forServer ) => {
5646
+ var getApiClient = (forServer = null) => {
5608
5647
  const server = forServer || global.wazoCurrentServer || '';
5609
5648
  if (server in global.wazoClients) {
5610
5649
  return fillClient(global.wazoClients[server]);
@@ -7140,8 +7179,10 @@ class WebRTCClient extends Emitter {
7140
7179
  conference: isConference,
7141
7180
  };
7142
7181
 
7143
- // Avoid sdh to created a new stream
7144
- session.sessionDescriptionHandler.localMediaStreamConstraints = options.constraints;
7182
+ // Avoid sdh to create a new stream
7183
+ if (session.sessionDescriptionHandler) {
7184
+ session.sessionDescriptionHandler.localMediaStreamConstraints = options.constraints;
7185
+ }
7145
7186
 
7146
7187
  // Send re-INVITE
7147
7188
  return session.invite(options);
@@ -9112,7 +9153,7 @@ class WebRTCPhone extends Emitter {
9112
9153
  // When stopping screenshare and we had video before that, we have to re-upgrade
9113
9154
  // When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
9114
9155
  // We have to downgrade to audio.
9115
- const screenshareStopped = this.currentScreenShare.sender && this.currentScreenShare.hadVideo;
9156
+ const screenshareStopped = this.currentScreenShare.hadVideo;
9116
9157
  const constraints = { audio: false, video: screenshareStopped };
9117
9158
 
9118
9159
  // We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
@@ -9556,7 +9597,7 @@ class WebRTCPhone extends Emitter {
9556
9597
 
9557
9598
  logger$8.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
9558
9599
 
9559
- // Stop screenshre if needed
9600
+ // Stop screenshare if needed
9560
9601
  if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
9561
9602
  this.lastScreenShare = this.currentScreenShare;
9562
9603
  await this.stopScreenSharing(false, callSession);
@@ -10132,7 +10173,7 @@ class WebRTCPhone extends Emitter {
10132
10173
  });
10133
10174
 
10134
10175
  this.client.on(this.client.DISCONNECTED, () => {
10135
- logger$8.warn('WebRTC client disconnected');
10176
+ logger$8.info('WebRTC client disconnected');
10136
10177
 
10137
10178
  this.eventEmitter.emit(ON_UNREGISTERED);
10138
10179
 
@@ -10318,7 +10359,7 @@ class WebRTCPhone extends Emitter {
10318
10359
  endTime: fromSession ? fromSession.endTime : null,
10319
10360
  answered: state === SessionState.Established,
10320
10361
  paused: this.client.isCallHeld(sipSession),
10321
- isCaller: 'incoming' in extra ? !extra.incoming : false,
10362
+ isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
10322
10363
  cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
10323
10364
  number,
10324
10365
  ringing: false,
@@ -11152,7 +11193,7 @@ class WebSocketClient extends Emitter {
11152
11193
  this.close();
11153
11194
  }
11154
11195
  const url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
11155
- logger$6.log('Wazo WS url computed to reconnect', { url });
11196
+ logger$6.info('Wazo WS url computed to reconnect', { url });
11156
11197
 
11157
11198
  return url;
11158
11199
  }
@@ -13718,6 +13759,7 @@ class Auth {
13718
13759
 
13719
13760
 
13720
13761
 
13762
+
13721
13763
 
13722
13764
 
13723
13765
 
@@ -13755,6 +13797,14 @@ class Auth {
13755
13797
  this.onRefreshTokenCallback(token, session);
13756
13798
  }
13757
13799
  });
13800
+
13801
+ setOnRefreshTokenError(error => {
13802
+ logger.error('on refresh token error', error);
13803
+
13804
+ if (this.onRefreshTokenCallbackError) {
13805
+ this.onRefreshTokenCallbackError(error);
13806
+ }
13807
+ });
13758
13808
  }
13759
13809
 
13760
13810
  setFetchOptions(options ) {
@@ -13843,6 +13893,10 @@ class Auth {
13843
13893
  this.onRefreshTokenCallback = callback;
13844
13894
  }
13845
13895
 
13896
+ setOnRefreshTokenError(callback ) {
13897
+ this.onRefreshTokenCallbackError = callback;
13898
+ }
13899
+
13846
13900
  checkAuthorizations(session , authorizationName ) {
13847
13901
  if (!authorizationName) {
13848
13902
  return;
@@ -13875,6 +13929,12 @@ class Auth {
13875
13929
  setRefreshToken(refreshToken);
13876
13930
  }
13877
13931
 
13932
+ setRefreshTenantId(refreshTenantId ) {
13933
+ setRefreshTenantId(refreshTenantId);
13934
+
13935
+ getApiClient().setRefreshTenantId(refreshTenantId);
13936
+ }
13937
+
13878
13938
  forceRefreshToken() {
13879
13939
  getApiClient().forceRefreshToken();
13880
13940
  }