@wazo/sdk 0.38.8 → 0.38.11

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 (78) hide show
  1. package/dist/wazo-sdk.js +2 -2
  2. package/esm/__tests__/api-client.test.js +21 -0
  3. package/esm/__tests__/web-rtc-client.test.js +31 -6
  4. package/esm/api/auth.js +12 -0
  5. package/esm/api/ctid-ng.js +1 -0
  6. package/esm/api-client.js +21 -0
  7. package/esm/checker/Checker.js +31 -6
  8. package/esm/checker/checks/aor.js +21 -0
  9. package/esm/checker/checks/api.js +21 -0
  10. package/esm/checker/checks/index.js +31 -6
  11. package/esm/checker/checks/webrtc-transport.js +31 -6
  12. package/esm/checker/checks/webrtc.js +31 -6
  13. package/esm/domain/AdHocAPIConference.js +28 -2
  14. package/esm/domain/Features.js +28 -2
  15. package/esm/domain/Phone/CTIPhone.js +28 -2
  16. package/esm/domain/Phone/WebRTCPhone.js +4 -5
  17. package/esm/index.js +86 -17
  18. package/esm/service/CallApi.js +28 -2
  19. package/esm/service/getApiClient.js +34 -3
  20. package/esm/simple/Auth.js +87 -18
  21. package/esm/simple/Configuration.js +86 -17
  22. package/esm/simple/Directory.js +28 -2
  23. package/esm/simple/Phone.js +86 -17
  24. package/esm/simple/Softphone.js +5 -0
  25. package/esm/simple/index.js +86 -17
  26. package/esm/simple/room/LocalParticipant.js +86 -17
  27. package/esm/simple/room/Participant.js +86 -17
  28. package/esm/simple/room/RemoteParticipant.js +86 -17
  29. package/esm/simple/room/Room.js +86 -17
  30. package/esm/simple/room/SipRoom.js +86 -17
  31. package/esm/simple/room/Stream.js +86 -17
  32. package/esm/simple/room/__tests__/Participant.test.js +86 -17
  33. package/esm/simple/room/__tests__/RemoteParticipant.test.js +86 -17
  34. package/esm/simple/utils.js +86 -17
  35. package/esm/web-rtc-client.js +31 -6
  36. package/lib/__tests__/api-client.test.js +21 -0
  37. package/lib/__tests__/web-rtc-client.test.js +31 -6
  38. package/lib/api/auth.js +12 -0
  39. package/lib/api/ctid-ng.js +1 -0
  40. package/lib/api-client.js +21 -0
  41. package/lib/checker/Checker.js +31 -6
  42. package/lib/checker/checks/aor.js +21 -0
  43. package/lib/checker/checks/api.js +21 -0
  44. package/lib/checker/checks/index.js +31 -6
  45. package/lib/checker/checks/webrtc-transport.js +31 -6
  46. package/lib/checker/checks/webrtc.js +31 -6
  47. package/lib/domain/AdHocAPIConference.js +28 -2
  48. package/lib/domain/Features.js +28 -2
  49. package/lib/domain/Phone/CTIPhone.js +28 -2
  50. package/lib/domain/Phone/WebRTCPhone.js +4 -5
  51. package/lib/index.js +86 -17
  52. package/lib/service/CallApi.js +28 -2
  53. package/lib/service/getApiClient.js +34 -2
  54. package/lib/simple/Auth.js +87 -17
  55. package/lib/simple/Configuration.js +86 -17
  56. package/lib/simple/Directory.js +28 -2
  57. package/lib/simple/Phone.js +86 -17
  58. package/lib/simple/Softphone.js +5 -0
  59. package/lib/simple/index.js +86 -17
  60. package/lib/simple/room/LocalParticipant.js +86 -17
  61. package/lib/simple/room/Participant.js +86 -17
  62. package/lib/simple/room/RemoteParticipant.js +86 -17
  63. package/lib/simple/room/Room.js +86 -17
  64. package/lib/simple/room/SipRoom.js +86 -17
  65. package/lib/simple/room/Stream.js +86 -17
  66. package/lib/simple/room/__tests__/Participant.test.js +86 -17
  67. package/lib/simple/room/__tests__/RemoteParticipant.test.js +86 -17
  68. package/lib/simple/utils.js +86 -17
  69. package/lib/web-rtc-client.js +31 -6
  70. package/package.json +2 -2
  71. package/src/api/auth.js +12 -0
  72. package/src/api-client.js +8 -0
  73. package/src/domain/Phone/WebRTCPhone.js +3 -5
  74. package/src/service/getApiClient.js +13 -2
  75. package/src/simple/Auth.js +35 -4
  76. package/src/simple/Softphone.js +5 -0
  77. package/src/simple/index.js +2 -1
  78. package/src/web-rtc-client.js +10 -6
@@ -2239,6 +2239,7 @@ var authMethods = (client , baseUrl ) => ({
2239
2239
 
2240
2240
 
2241
2241
 
2242
+
2242
2243
  ) {
2243
2244
  const body = {
2244
2245
  backend: params.backend || DEFAULT_BACKEND_USER,
@@ -2259,9 +2260,14 @@ var authMethods = (client , baseUrl ) => ({
2259
2260
  }
2260
2261
 
2261
2262
  if (params.tenantId) {
2263
+ console.warn('Use of `tenantId` is deprecated when calling logIn() method, use `domainName` instead.');
2262
2264
  body.tenant_id = params.tenantId;
2263
2265
  }
2264
2266
 
2267
+ if (params.domainName) {
2268
+ body.domain_name = params.domainName;
2269
+ }
2270
+
2265
2271
  return client.post(`${baseUrl}/token`, body, headers).then(response => Session.parse(response));
2266
2272
  },
2267
2273
 
@@ -2274,6 +2280,7 @@ var authMethods = (client , baseUrl ) => ({
2274
2280
  expiration ,
2275
2281
  isMobile = false,
2276
2282
  tenantId ,
2283
+ domainName ,
2277
2284
  ) => {
2278
2285
  const body = {
2279
2286
  backend: backend || DEFAULT_BACKEND_USER,
@@ -2283,9 +2290,14 @@ var authMethods = (client , baseUrl ) => ({
2283
2290
  };
2284
2291
 
2285
2292
  if (tenantId) {
2293
+ console.warn('Use of `tenantId` is deprecated when calling refreshToken() method, use `domainName` instead.');
2286
2294
  body.tenant_id = tenantId;
2287
2295
  }
2288
2296
 
2297
+ if (domainName) {
2298
+ body.domain_name = domainName;
2299
+ }
2300
+
2289
2301
  const headers = {
2290
2302
  'Content-Type': 'application/json',
2291
2303
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -5583,6 +5595,7 @@ class ApiClient {
5583
5595
 
5584
5596
 
5585
5597
 
5598
+
5586
5599
 
5587
5600
 
5588
5601
 
@@ -5624,6 +5637,7 @@ class ApiClient {
5624
5637
  refreshToken: this.refreshToken,
5625
5638
  refreshBackend: this.refreshBackend,
5626
5639
  refreshTenantId: this.refreshTenantId,
5640
+ refreshDomainName: this.refreshDomainName,
5627
5641
  refreshExpiration: this.refreshExpiration,
5628
5642
  isMobile: this.isMobile,
5629
5643
  });
@@ -5639,6 +5653,7 @@ class ApiClient {
5639
5653
  this.refreshExpiration,
5640
5654
  this.isMobile,
5641
5655
  this.refreshTenantId,
5656
+ this.refreshDomainName,
5642
5657
  );
5643
5658
 
5644
5659
  logger$a.info('token refreshed', { token: session.token });
@@ -5692,9 +5707,14 @@ class ApiClient {
5692
5707
  }
5693
5708
 
5694
5709
  setRefreshTenantId(tenantId ) {
5710
+ console.warn('Use of `setRefreshTenantId` is deprecated, use `setRefreshDomainName` instead');
5695
5711
  this.refreshTenantId = tenantId;
5696
5712
  }
5697
5713
 
5714
+ setRefreshDomainName(domainName ) {
5715
+ this.refreshDomainName = domainName;
5716
+ }
5717
+
5698
5718
  setIsMobile(isMobile ) {
5699
5719
  this.isMobile = isMobile;
5700
5720
  }
@@ -5719,6 +5739,7 @@ global.wazoClientId = global.wazoClientId || {};
5719
5739
  global.wazoClientToken = global.wazoClientToken || {};
5720
5740
  global.wazoRefreshToken = global.wazoRefreshToken || {};
5721
5741
  global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
5742
+ global.wazoRefreshDomainName = global.wazoRefreshDomainName || {};
5722
5743
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
5723
5744
  global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
5724
5745
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
@@ -5743,9 +5764,14 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
5743
5764
  };
5744
5765
 
5745
5766
  const setRefreshTenantId = (refreshTenantId , forServer = null) => {
5767
+ console.warn('Use of `setRefreshTenantId` is deprecated, please use `setRefreshDomainName` instead');
5746
5768
  global.wazoRefreshTenantId[forServer] = refreshTenantId;
5747
5769
  };
5748
5770
 
5771
+ const setRefreshDomainName = (refreshDomainName , forServer = null) => {
5772
+ global.wazoRefreshDomainName[forServer] = refreshDomainName;
5773
+ };
5774
+
5749
5775
  const setOnRefreshToken = (onRefreshToken , forServer = null) => {
5750
5776
  global.wazoOnRefreshToken[forServer] = onRefreshToken;
5751
5777
  };
@@ -5764,6 +5790,7 @@ const setFetchOptions = (fetchOptions , forServer = null) => {
5764
5790
 
5765
5791
  const fillClient = (apiClient ) => {
5766
5792
  const { server, token, clientId } = apiClient.client;
5793
+ const tenantId = global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId;
5767
5794
 
5768
5795
  // try with null server when dealing with non-related server info
5769
5796
  apiClient.setToken(global.wazoClientToken[server] || global.wazoClientToken[null] || token);
@@ -5772,8 +5799,12 @@ const fillClient = (apiClient ) => {
5772
5799
 
5773
5800
  apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
5774
5801
 
5775
- apiClient.setRefreshTenantId(
5776
- global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
5802
+ if (tenantId) {
5803
+ apiClient.setRefreshTenantId(tenantId);
5804
+ }
5805
+
5806
+ apiClient.setRefreshDomainName(
5807
+ global.wazoRefreshDomainName[server] || global.wazoRefreshDomainName[null] || apiClient.refreshDomainName,
5777
5808
  );
5778
5809
 
5779
5810
  apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
@@ -5815,6 +5846,7 @@ var getApiClient = (forServer = null) => {
5815
5846
  class InvalidSubscription extends Error {}
5816
5847
  class InvalidAuthorization extends Error {}
5817
5848
  class NoTenantIdError extends Error {}
5849
+ class NoDomainNameError extends Error {}
5818
5850
 
5819
5851
  const logger$9 = IssueReporter$1.loggerFor('simple-auth');
5820
5852
 
@@ -5878,9 +5910,24 @@ class Auth {
5878
5910
  setFetchOptions(options);
5879
5911
  }
5880
5912
 
5881
- async logIn(username , password , backend , tenantId ) {
5882
- if (backend && backend !== this.BACKEND_WAZO && !tenantId) {
5883
- throw new NoTenantIdError('No tenant id');
5913
+ async logIn(username , password , backend , extra ) {
5914
+ let tenantId = null;
5915
+ let domainName = null;
5916
+ if (typeof extra === 'string') {
5917
+ tenantId = extra;
5918
+ }
5919
+ if (extra && typeof extra === 'object') {
5920
+ domainName = extra.domainName;
5921
+ }
5922
+
5923
+ if (backend && backend !== this.BACKEND_WAZO && !tenantId && !domainName) {
5924
+ if (!tenantId) {
5925
+ throw new NoTenantIdError('No tenant id');
5926
+ }
5927
+
5928
+ if (!domainName) {
5929
+ throw new NoDomainNameError('No domain name');
5930
+ }
5884
5931
  }
5885
5932
 
5886
5933
  this.authenticated = false;
@@ -5890,6 +5937,7 @@ class Auth {
5890
5937
  password,
5891
5938
  backend,
5892
5939
  tenantId,
5940
+ domainName,
5893
5941
  expiration: this.expiration,
5894
5942
  mobile: this.mobile,
5895
5943
  });
@@ -5898,7 +5946,13 @@ class Auth {
5898
5946
  getApiClient().setRefreshBackend(backend);
5899
5947
  }
5900
5948
 
5901
- getApiClient().setRefreshTenantId(tenantId);
5949
+ if (tenantId) {
5950
+ getApiClient().setRefreshTenantId(tenantId);
5951
+ }
5952
+
5953
+ if (domainName) {
5954
+ getApiClient().setRefreshDomainName(domainName);
5955
+ }
5902
5956
 
5903
5957
  return this._onAuthenticated(rawSession);
5904
5958
  }
@@ -5997,11 +6051,18 @@ class Auth {
5997
6051
  }
5998
6052
 
5999
6053
  setRefreshTenantId(refreshTenantId ) {
6054
+ console.warn('Use of `setRefreshTenantId` is deprecated, use `setRefreshDomainName` instead.');
6000
6055
  setRefreshTenantId(refreshTenantId);
6001
6056
 
6002
6057
  getApiClient().setRefreshTenantId(refreshTenantId);
6003
6058
  }
6004
6059
 
6060
+ setRefreshDomainName(domainName ) {
6061
+ setRefreshDomainName(domainName);
6062
+
6063
+ getApiClient().setRefreshDomainName(domainName);
6064
+ }
6065
+
6005
6066
  forceRefreshToken() {
6006
6067
  getApiClient().forceRefreshToken();
6007
6068
  }
@@ -7771,9 +7832,11 @@ class WebRTCClient extends Emitter {
7771
7832
  const videoTracks = localStream.getVideoTracks();
7772
7833
 
7773
7834
  // Remove video senders
7774
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7775
- videoSender.replaceTrack(null);
7776
- });
7835
+ if (pc.getSenders) {
7836
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7837
+ videoSender.replaceTrack(null);
7838
+ });
7839
+ }
7777
7840
 
7778
7841
  videoTracks.forEach(videoTrack => {
7779
7842
  videoTrack.enabled = false;
@@ -8006,7 +8069,8 @@ class WebRTCClient extends Emitter {
8006
8069
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8007
8070
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8008
8071
  const audioTrack = stream.getAudioTracks()[0];
8009
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8072
+ const sender = pc && pc.getSenders
8073
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8010
8074
 
8011
8075
  if (sender) {
8012
8076
  if (sender.track) {
@@ -8069,10 +8133,11 @@ class WebRTCClient extends Emitter {
8069
8133
  // $FlowFixMe
8070
8134
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8071
8135
  const videoTrack = stream.getVideoTracks()[0];
8072
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8136
+ let sender = pc && pc.getSenders
8137
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8073
8138
  let wasTrackEnabled = false;
8074
8139
  if (!sender) {
8075
- sender = pc && pc.getSenders().find(s => !s.track);
8140
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8076
8141
  }
8077
8142
 
8078
8143
  if (sender) {
@@ -9606,7 +9671,7 @@ class WebRTCPhone extends Emitter {
9606
9671
  const screenTrack = screenShareStream.getVideoTracks()[0];
9607
9672
  const sipSession = this.currentSipSession;
9608
9673
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9609
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9674
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9610
9675
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9611
9676
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9612
9677
  const hadVideo = !!videoTrack;
@@ -9644,9 +9709,7 @@ class WebRTCPhone extends Emitter {
9644
9709
 
9645
9710
  try {
9646
9711
  if (this.currentScreenShare.stream) {
9647
- this.currentScreenShare.stream.getTracks()
9648
- .filter(track => track.kind === 'video')
9649
- .forEach(track => track.stop());
9712
+ this.currentScreenShare.stream.getTracks().forEach(track => track.stop());
9650
9713
  }
9651
9714
 
9652
9715
  if (restoreLocalStream) {
@@ -9690,7 +9753,7 @@ class WebRTCPhone extends Emitter {
9690
9753
  const screenTrack = screenStream.getVideoTracks()[0];
9691
9754
  const sipSessionId = this.getSipSessionId(sipSession);
9692
9755
  const pc = this.client.getPeerConnection(sipSessionId);
9693
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9756
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9694
9757
 
9695
9758
  logger$7.info('WebRTC phone - on screensharing', {
9696
9759
  hadVideo,
@@ -14322,6 +14385,7 @@ class Softphone {
14322
14385
  wrapUpDuration,
14323
14386
  enableAgent = true,
14324
14387
  tenantId,
14388
+ domainName,
14325
14389
  debug = false,
14326
14390
  } = {}) {
14327
14391
  this.url = url || 'https://softphone.wazo.io';
@@ -14346,8 +14410,12 @@ class Softphone {
14346
14410
  config.port = port;
14347
14411
  }
14348
14412
  if (tenantId) {
14413
+ console.warn('Use of `tenantId` is deprecated when calling `Softphone.init()`, use `domainName` instead');
14349
14414
  config.tenantId = tenantId;
14350
14415
  }
14416
+ if (domainName) {
14417
+ config.domainName = domainName;
14418
+ }
14351
14419
  if (wrapUpDuration) {
14352
14420
  config.wrapUpDuration = wrapUpDuration;
14353
14421
  }
@@ -14668,6 +14736,7 @@ const Wazo = {
14668
14736
  CanceledCallError,
14669
14737
  SFUNotAvailableError,
14670
14738
  NoTenantIdError,
14739
+ NoDomainNameError,
14671
14740
  };
14672
14741
 
14673
14742
  if (window) {
@@ -2241,6 +2241,7 @@ var authMethods = (client , baseUrl ) => ({
2241
2241
 
2242
2242
 
2243
2243
 
2244
+
2244
2245
  ) {
2245
2246
  const body = {
2246
2247
  backend: params.backend || DEFAULT_BACKEND_USER,
@@ -2261,9 +2262,14 @@ var authMethods = (client , baseUrl ) => ({
2261
2262
  }
2262
2263
 
2263
2264
  if (params.tenantId) {
2265
+ console.warn('Use of `tenantId` is deprecated when calling logIn() method, use `domainName` instead.');
2264
2266
  body.tenant_id = params.tenantId;
2265
2267
  }
2266
2268
 
2269
+ if (params.domainName) {
2270
+ body.domain_name = params.domainName;
2271
+ }
2272
+
2267
2273
  return client.post(`${baseUrl}/token`, body, headers).then(response => Session.parse(response));
2268
2274
  },
2269
2275
 
@@ -2276,6 +2282,7 @@ var authMethods = (client , baseUrl ) => ({
2276
2282
  expiration ,
2277
2283
  isMobile = false,
2278
2284
  tenantId ,
2285
+ domainName ,
2279
2286
  ) => {
2280
2287
  const body = {
2281
2288
  backend: backend || DEFAULT_BACKEND_USER,
@@ -2285,9 +2292,14 @@ var authMethods = (client , baseUrl ) => ({
2285
2292
  };
2286
2293
 
2287
2294
  if (tenantId) {
2295
+ console.warn('Use of `tenantId` is deprecated when calling refreshToken() method, use `domainName` instead.');
2288
2296
  body.tenant_id = tenantId;
2289
2297
  }
2290
2298
 
2299
+ if (domainName) {
2300
+ body.domain_name = domainName;
2301
+ }
2302
+
2291
2303
  const headers = {
2292
2304
  'Content-Type': 'application/json',
2293
2305
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -5585,6 +5597,7 @@ class ApiClient {
5585
5597
 
5586
5598
 
5587
5599
 
5600
+
5588
5601
 
5589
5602
 
5590
5603
 
@@ -5626,6 +5639,7 @@ class ApiClient {
5626
5639
  refreshToken: this.refreshToken,
5627
5640
  refreshBackend: this.refreshBackend,
5628
5641
  refreshTenantId: this.refreshTenantId,
5642
+ refreshDomainName: this.refreshDomainName,
5629
5643
  refreshExpiration: this.refreshExpiration,
5630
5644
  isMobile: this.isMobile,
5631
5645
  });
@@ -5641,6 +5655,7 @@ class ApiClient {
5641
5655
  this.refreshExpiration,
5642
5656
  this.isMobile,
5643
5657
  this.refreshTenantId,
5658
+ this.refreshDomainName,
5644
5659
  );
5645
5660
 
5646
5661
  logger$a.info('token refreshed', { token: session.token });
@@ -5694,9 +5709,14 @@ class ApiClient {
5694
5709
  }
5695
5710
 
5696
5711
  setRefreshTenantId(tenantId ) {
5712
+ console.warn('Use of `setRefreshTenantId` is deprecated, use `setRefreshDomainName` instead');
5697
5713
  this.refreshTenantId = tenantId;
5698
5714
  }
5699
5715
 
5716
+ setRefreshDomainName(domainName ) {
5717
+ this.refreshDomainName = domainName;
5718
+ }
5719
+
5700
5720
  setIsMobile(isMobile ) {
5701
5721
  this.isMobile = isMobile;
5702
5722
  }
@@ -5721,6 +5741,7 @@ global.wazoClientId = global.wazoClientId || {};
5721
5741
  global.wazoClientToken = global.wazoClientToken || {};
5722
5742
  global.wazoRefreshToken = global.wazoRefreshToken || {};
5723
5743
  global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
5744
+ global.wazoRefreshDomainName = global.wazoRefreshDomainName || {};
5724
5745
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
5725
5746
  global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
5726
5747
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
@@ -5745,9 +5766,14 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
5745
5766
  };
5746
5767
 
5747
5768
  const setRefreshTenantId = (refreshTenantId , forServer = null) => {
5769
+ console.warn('Use of `setRefreshTenantId` is deprecated, please use `setRefreshDomainName` instead');
5748
5770
  global.wazoRefreshTenantId[forServer] = refreshTenantId;
5749
5771
  };
5750
5772
 
5773
+ const setRefreshDomainName = (refreshDomainName , forServer = null) => {
5774
+ global.wazoRefreshDomainName[forServer] = refreshDomainName;
5775
+ };
5776
+
5751
5777
  const setOnRefreshToken = (onRefreshToken , forServer = null) => {
5752
5778
  global.wazoOnRefreshToken[forServer] = onRefreshToken;
5753
5779
  };
@@ -5766,6 +5792,7 @@ const setFetchOptions = (fetchOptions , forServer = null) => {
5766
5792
 
5767
5793
  const fillClient = (apiClient ) => {
5768
5794
  const { server, token, clientId } = apiClient.client;
5795
+ const tenantId = global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId;
5769
5796
 
5770
5797
  // try with null server when dealing with non-related server info
5771
5798
  apiClient.setToken(global.wazoClientToken[server] || global.wazoClientToken[null] || token);
@@ -5774,8 +5801,12 @@ const fillClient = (apiClient ) => {
5774
5801
 
5775
5802
  apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
5776
5803
 
5777
- apiClient.setRefreshTenantId(
5778
- global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
5804
+ if (tenantId) {
5805
+ apiClient.setRefreshTenantId(tenantId);
5806
+ }
5807
+
5808
+ apiClient.setRefreshDomainName(
5809
+ global.wazoRefreshDomainName[server] || global.wazoRefreshDomainName[null] || apiClient.refreshDomainName,
5779
5810
  );
5780
5811
 
5781
5812
  apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
@@ -5817,6 +5848,7 @@ var getApiClient = (forServer = null) => {
5817
5848
  class InvalidSubscription extends Error {}
5818
5849
  class InvalidAuthorization extends Error {}
5819
5850
  class NoTenantIdError extends Error {}
5851
+ class NoDomainNameError extends Error {}
5820
5852
 
5821
5853
  const logger$9 = IssueReporter$1.loggerFor('simple-auth');
5822
5854
 
@@ -5880,9 +5912,24 @@ class Auth {
5880
5912
  setFetchOptions(options);
5881
5913
  }
5882
5914
 
5883
- async logIn(username , password , backend , tenantId ) {
5884
- if (backend && backend !== this.BACKEND_WAZO && !tenantId) {
5885
- throw new NoTenantIdError('No tenant id');
5915
+ async logIn(username , password , backend , extra ) {
5916
+ let tenantId = null;
5917
+ let domainName = null;
5918
+ if (typeof extra === 'string') {
5919
+ tenantId = extra;
5920
+ }
5921
+ if (extra && typeof extra === 'object') {
5922
+ domainName = extra.domainName;
5923
+ }
5924
+
5925
+ if (backend && backend !== this.BACKEND_WAZO && !tenantId && !domainName) {
5926
+ if (!tenantId) {
5927
+ throw new NoTenantIdError('No tenant id');
5928
+ }
5929
+
5930
+ if (!domainName) {
5931
+ throw new NoDomainNameError('No domain name');
5932
+ }
5886
5933
  }
5887
5934
 
5888
5935
  this.authenticated = false;
@@ -5892,6 +5939,7 @@ class Auth {
5892
5939
  password,
5893
5940
  backend,
5894
5941
  tenantId,
5942
+ domainName,
5895
5943
  expiration: this.expiration,
5896
5944
  mobile: this.mobile,
5897
5945
  });
@@ -5900,7 +5948,13 @@ class Auth {
5900
5948
  getApiClient().setRefreshBackend(backend);
5901
5949
  }
5902
5950
 
5903
- getApiClient().setRefreshTenantId(tenantId);
5951
+ if (tenantId) {
5952
+ getApiClient().setRefreshTenantId(tenantId);
5953
+ }
5954
+
5955
+ if (domainName) {
5956
+ getApiClient().setRefreshDomainName(domainName);
5957
+ }
5904
5958
 
5905
5959
  return this._onAuthenticated(rawSession);
5906
5960
  }
@@ -5999,11 +6053,18 @@ class Auth {
5999
6053
  }
6000
6054
 
6001
6055
  setRefreshTenantId(refreshTenantId ) {
6056
+ console.warn('Use of `setRefreshTenantId` is deprecated, use `setRefreshDomainName` instead.');
6002
6057
  setRefreshTenantId(refreshTenantId);
6003
6058
 
6004
6059
  getApiClient().setRefreshTenantId(refreshTenantId);
6005
6060
  }
6006
6061
 
6062
+ setRefreshDomainName(domainName ) {
6063
+ setRefreshDomainName(domainName);
6064
+
6065
+ getApiClient().setRefreshDomainName(domainName);
6066
+ }
6067
+
6007
6068
  forceRefreshToken() {
6008
6069
  getApiClient().forceRefreshToken();
6009
6070
  }
@@ -7773,9 +7834,11 @@ class WebRTCClient extends Emitter {
7773
7834
  const videoTracks = localStream.getVideoTracks();
7774
7835
 
7775
7836
  // Remove video senders
7776
- pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7777
- videoSender.replaceTrack(null);
7778
- });
7837
+ if (pc.getSenders) {
7838
+ pc.getSenders().filter(sender => sender.track && sender.track.kind === 'video').forEach(videoSender => {
7839
+ videoSender.replaceTrack(null);
7840
+ });
7841
+ }
7779
7842
 
7780
7843
  videoTracks.forEach(videoTrack => {
7781
7844
  videoTrack.enabled = false;
@@ -8008,7 +8071,8 @@ class WebRTCClient extends Emitter {
8008
8071
  const constraints = { audio: { deviceId: { exact: deviceId } } };
8009
8072
  const stream = await navigator.mediaDevices.getUserMedia(constraints);
8010
8073
  const audioTrack = stream.getAudioTracks()[0];
8011
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8074
+ const sender = pc && pc.getSenders
8075
+ && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
8012
8076
 
8013
8077
  if (sender) {
8014
8078
  if (sender.track) {
@@ -8071,10 +8135,11 @@ class WebRTCClient extends Emitter {
8071
8135
  // $FlowFixMe
8072
8136
  return navigator.mediaDevices.getUserMedia(constraints).then(async stream => {
8073
8137
  const videoTrack = stream.getVideoTracks()[0];
8074
- let sender = pc && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8138
+ let sender = pc && pc.getSenders
8139
+ && pc.getSenders().find(s => videoTrack && s && s.track && s.track.kind === videoTrack.kind);
8075
8140
  let wasTrackEnabled = false;
8076
8141
  if (!sender) {
8077
- sender = pc && pc.getSenders().find(s => !s.track);
8142
+ sender = pc && pc.getSenders && pc.getSenders().find(s => !s.track);
8078
8143
  }
8079
8144
 
8080
8145
  if (sender) {
@@ -9608,7 +9673,7 @@ class WebRTCPhone extends Emitter {
9608
9673
  const screenTrack = screenShareStream.getVideoTracks()[0];
9609
9674
  const sipSession = this.currentSipSession;
9610
9675
  const pc = this.client.getPeerConnection(this.getSipSessionId(sipSession));
9611
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9676
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9612
9677
  const localStream = this.client.getLocalStream(this.getSipSessionId(sipSession));
9613
9678
  const videoTrack = localStream ? localStream.getTracks().find(track => track.kind === 'video') : null;
9614
9679
  const hadVideo = !!videoTrack;
@@ -9646,9 +9711,7 @@ class WebRTCPhone extends Emitter {
9646
9711
 
9647
9712
  try {
9648
9713
  if (this.currentScreenShare.stream) {
9649
- this.currentScreenShare.stream.getTracks()
9650
- .filter(track => track.kind === 'video')
9651
- .forEach(track => track.stop());
9714
+ this.currentScreenShare.stream.getTracks().forEach(track => track.stop());
9652
9715
  }
9653
9716
 
9654
9717
  if (restoreLocalStream) {
@@ -9692,7 +9755,7 @@ class WebRTCPhone extends Emitter {
9692
9755
  const screenTrack = screenStream.getVideoTracks()[0];
9693
9756
  const sipSessionId = this.getSipSessionId(sipSession);
9694
9757
  const pc = this.client.getPeerConnection(sipSessionId);
9695
- const sender = pc && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9758
+ const sender = pc && pc.getSenders && pc.getSenders().find(s => s && s.track && s.track.kind === 'video');
9696
9759
 
9697
9760
  logger$7.info('WebRTC phone - on screensharing', {
9698
9761
  hadVideo,
@@ -14308,6 +14371,7 @@ class Softphone {
14308
14371
  wrapUpDuration,
14309
14372
  enableAgent = true,
14310
14373
  tenantId,
14374
+ domainName,
14311
14375
  debug = false,
14312
14376
  } = {}) {
14313
14377
  this.url = url || 'https://softphone.wazo.io';
@@ -14332,8 +14396,12 @@ class Softphone {
14332
14396
  config.port = port;
14333
14397
  }
14334
14398
  if (tenantId) {
14399
+ console.warn('Use of `tenantId` is deprecated when calling `Softphone.init()`, use `domainName` instead');
14335
14400
  config.tenantId = tenantId;
14336
14401
  }
14402
+ if (domainName) {
14403
+ config.domainName = domainName;
14404
+ }
14337
14405
  if (wrapUpDuration) {
14338
14406
  config.wrapUpDuration = wrapUpDuration;
14339
14407
  }
@@ -14654,6 +14722,7 @@ const Wazo = {
14654
14722
  CanceledCallError,
14655
14723
  SFUNotAvailableError,
14656
14724
  NoTenantIdError,
14725
+ NoDomainNameError,
14657
14726
  };
14658
14727
 
14659
14728
  if (window) {