@wazo/sdk 0.38.7 → 0.38.10

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 (121) hide show
  1. package/dist/wazo-sdk.js +2 -2
  2. package/esm/__tests__/api-client.test.js +163 -2
  3. package/esm/__tests__/web-rtc-client.test.js +248 -27
  4. package/esm/api/auth.js +12 -0
  5. package/esm/api/calld.js +8 -0
  6. package/esm/api/confd.js +134 -2
  7. package/esm/api/ctid-ng.js +1 -0
  8. package/esm/api-client.js +163 -2
  9. package/esm/checker/Checker.js +204 -24
  10. package/esm/checker/checks/aor.js +163 -2
  11. package/esm/checker/checks/api.js +163 -2
  12. package/esm/checker/checks/index.js +204 -24
  13. package/esm/checker/checks/wazo-websocket.js +2 -0
  14. package/esm/checker/checks/webrtc-transport.js +202 -24
  15. package/esm/checker/checks/webrtc.js +202 -24
  16. package/esm/domain/AdHocAPIConference.js +170 -4
  17. package/esm/domain/Features.js +170 -4
  18. package/esm/domain/Meeting.js +18 -0
  19. package/esm/domain/MeetingAuthorization.js +70 -0
  20. package/esm/domain/Phone/CTIPhone.js +170 -4
  21. package/esm/domain/Phone/WebRTCPhone.js +2 -3
  22. package/esm/domain/__tests__/Meeting.test.js +87 -1
  23. package/esm/domain/__tests__/MeetingAuthorization.test.js +109 -0
  24. package/esm/index.js +300 -36
  25. package/esm/service/CallApi.js +170 -4
  26. package/esm/service/getApiClient.js +176 -5
  27. package/esm/simple/Auth.js +301 -37
  28. package/esm/simple/Configuration.js +300 -36
  29. package/esm/simple/Directory.js +170 -4
  30. package/esm/simple/Phone.js +300 -36
  31. package/esm/simple/Softphone.js +5 -0
  32. package/esm/simple/Websocket.js +3 -0
  33. package/esm/simple/index.js +300 -36
  34. package/esm/simple/room/LocalParticipant.js +300 -36
  35. package/esm/simple/room/Participant.js +300 -36
  36. package/esm/simple/room/RemoteParticipant.js +300 -36
  37. package/esm/simple/room/Room.js +300 -36
  38. package/esm/simple/room/SipRoom.js +300 -36
  39. package/esm/simple/room/Stream.js +300 -36
  40. package/esm/simple/room/__tests__/Participant.test.js +14812 -0
  41. package/esm/simple/room/__tests__/RemoteParticipant.test.js +300 -36
  42. package/esm/simple/utils.js +300 -36
  43. package/esm/utils/__tests__/object.test.js +57 -0
  44. package/esm/utils/__tests__/string.test.js +30 -0
  45. package/esm/utils/object.js +24 -0
  46. package/esm/utils/string.js +10 -0
  47. package/esm/web-rtc-client.js +202 -24
  48. package/esm/websocket-client.js +3 -1
  49. package/lib/__tests__/api-client.test.js +163 -2
  50. package/lib/__tests__/web-rtc-client.test.js +248 -27
  51. package/lib/api/auth.js +12 -0
  52. package/lib/api/calld.js +8 -0
  53. package/lib/api/confd.js +134 -2
  54. package/lib/api/ctid-ng.js +1 -0
  55. package/lib/api-client.js +163 -2
  56. package/lib/checker/Checker.js +204 -24
  57. package/lib/checker/checks/aor.js +163 -2
  58. package/lib/checker/checks/api.js +163 -2
  59. package/lib/checker/checks/index.js +204 -24
  60. package/lib/checker/checks/wazo-websocket.js +2 -0
  61. package/lib/checker/checks/webrtc-transport.js +202 -24
  62. package/lib/checker/checks/webrtc.js +202 -24
  63. package/lib/domain/AdHocAPIConference.js +170 -4
  64. package/lib/domain/Features.js +170 -4
  65. package/lib/domain/Meeting.js +18 -0
  66. package/lib/domain/MeetingAuthorization.js +79 -0
  67. package/lib/domain/Phone/CTIPhone.js +170 -4
  68. package/lib/domain/Phone/WebRTCPhone.js +2 -3
  69. package/lib/domain/__tests__/Meeting.test.js +87 -1
  70. package/lib/domain/__tests__/MeetingAuthorization.test.js +111 -0
  71. package/lib/index.js +300 -36
  72. package/lib/service/CallApi.js +170 -4
  73. package/lib/service/getApiClient.js +176 -4
  74. package/lib/simple/Auth.js +301 -36
  75. package/lib/simple/Configuration.js +300 -36
  76. package/lib/simple/Directory.js +170 -4
  77. package/lib/simple/Phone.js +300 -36
  78. package/lib/simple/Softphone.js +5 -0
  79. package/lib/simple/Websocket.js +3 -0
  80. package/lib/simple/index.js +300 -36
  81. package/lib/simple/room/LocalParticipant.js +300 -36
  82. package/lib/simple/room/Participant.js +300 -36
  83. package/lib/simple/room/RemoteParticipant.js +300 -36
  84. package/lib/simple/room/Room.js +300 -36
  85. package/lib/simple/room/SipRoom.js +300 -36
  86. package/lib/simple/room/Stream.js +300 -36
  87. package/lib/simple/room/__tests__/Participant.test.js +14822 -0
  88. package/lib/simple/room/__tests__/RemoteParticipant.test.js +300 -36
  89. package/lib/simple/utils.js +300 -36
  90. package/lib/utils/__tests__/object.test.js +59 -0
  91. package/lib/utils/__tests__/string.test.js +32 -0
  92. package/lib/utils/object.js +28 -0
  93. package/lib/utils/string.js +14 -0
  94. package/lib/web-rtc-client.js +202 -24
  95. package/lib/websocket-client.js +3 -0
  96. package/package.json +1 -1
  97. package/src/__tests__/web-rtc-client.test.js +46 -3
  98. package/src/api/auth.js +12 -0
  99. package/src/api/calld.js +8 -0
  100. package/src/api/confd.js +43 -2
  101. package/src/api-client.js +8 -0
  102. package/src/domain/Meeting.js +20 -0
  103. package/src/domain/MeetingAuthorization.js +67 -0
  104. package/src/domain/Phone/WebRTCPhone.js +1 -3
  105. package/src/domain/__tests__/Meeting.test.js +70 -1
  106. package/src/domain/__tests__/MeetingAuthorization.test.js +58 -0
  107. package/src/service/getApiClient.js +13 -2
  108. package/src/simple/Auth.js +35 -4
  109. package/src/simple/Softphone.js +5 -0
  110. package/src/simple/index.js +2 -1
  111. package/src/simple/room/Participant.js +40 -0
  112. package/src/simple/room/Room.js +2 -2
  113. package/src/simple/room/SipRoom.js +1 -1
  114. package/src/simple/room/__tests__/Participant.test.js +81 -0
  115. package/src/types/WebSocketMessage.js +7 -1
  116. package/src/utils/__tests__/object.test.js +35 -0
  117. package/src/utils/__tests__/string.test.js +23 -0
  118. package/src/utils/object.js +15 -0
  119. package/src/utils/string.js +8 -0
  120. package/src/web-rtc-client.js +39 -22
  121. package/src/websocket-client.js +2 -0
@@ -2237,6 +2237,7 @@ var authMethods = (client , baseUrl ) => ({
2237
2237
 
2238
2238
 
2239
2239
 
2240
+
2240
2241
  ) {
2241
2242
  const body = {
2242
2243
  backend: params.backend || DEFAULT_BACKEND_USER,
@@ -2257,9 +2258,14 @@ var authMethods = (client , baseUrl ) => ({
2257
2258
  }
2258
2259
 
2259
2260
  if (params.tenantId) {
2261
+ console.warn('Use of `tenantId` is deprecated when calling logIn() method, use `domainName` instead.');
2260
2262
  body.tenant_id = params.tenantId;
2261
2263
  }
2262
2264
 
2265
+ if (params.domainName) {
2266
+ body.domain_name = params.domainName;
2267
+ }
2268
+
2263
2269
  return client.post(`${baseUrl}/token`, body, headers).then(response => Session.parse(response));
2264
2270
  },
2265
2271
 
@@ -2272,6 +2278,7 @@ var authMethods = (client , baseUrl ) => ({
2272
2278
  expiration ,
2273
2279
  isMobile = false,
2274
2280
  tenantId ,
2281
+ domainName ,
2275
2282
  ) => {
2276
2283
  const body = {
2277
2284
  backend: backend || DEFAULT_BACKEND_USER,
@@ -2281,9 +2288,14 @@ var authMethods = (client , baseUrl ) => ({
2281
2288
  };
2282
2289
 
2283
2290
  if (tenantId) {
2291
+ console.warn('Use of `tenantId` is deprecated when calling refreshToken() method, use `domainName` instead.');
2284
2292
  body.tenant_id = tenantId;
2285
2293
  }
2286
2294
 
2295
+ if (domainName) {
2296
+ body.domain_name = domainName;
2297
+ }
2298
+
2287
2299
  const headers = {
2288
2300
  'Content-Type': 'application/json',
2289
2301
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -2653,6 +2665,70 @@ class ExternalApp {
2653
2665
 
2654
2666
  //
2655
2667
 
2668
+ class MeetingAuthorization {
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+ constructor({
2676
+ meetingUuid,
2677
+ uuid,
2678
+ userUuid,
2679
+ userName,
2680
+ } = {}) {
2681
+ this.meetingUuid = meetingUuid;
2682
+ this.uuid = uuid;
2683
+ this.userUuid = userUuid;
2684
+ this.userName = userName;
2685
+ }
2686
+
2687
+ setStatus(status ) {
2688
+ this.status = status;
2689
+ }
2690
+
2691
+ getStatus() {
2692
+ return this.status;
2693
+ }
2694
+
2695
+ static parse(plain ) {
2696
+ const {
2697
+ meeting_uuid: meetingUuid,
2698
+ uuid,
2699
+ guest_uuid: userUuid,
2700
+ guest_name: userName,
2701
+ } = plain;
2702
+
2703
+ return new MeetingAuthorization({
2704
+ meetingUuid,
2705
+ uuid,
2706
+ userUuid,
2707
+ userName,
2708
+ });
2709
+ }
2710
+
2711
+ static parseMany(items ) {
2712
+ if (!items) {
2713
+ return [];
2714
+ }
2715
+ return items.map(MeetingAuthorization.parse);
2716
+ }
2717
+ }
2718
+
2719
+ //
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2656
2732
 
2657
2733
 
2658
2734
 
@@ -2663,6 +2739,7 @@ class ExternalApp {
2663
2739
 
2664
2740
 
2665
2741
 
2742
+
2666
2743
 
2667
2744
 
2668
2745
  class Meeting {
@@ -2677,6 +2754,8 @@ class Meeting {
2677
2754
 
2678
2755
 
2679
2756
 
2757
+
2758
+
2680
2759
 
2681
2760
  static parse(plain ) {
2682
2761
  return new Meeting({
@@ -2689,6 +2768,7 @@ class Meeting {
2689
2768
  extension: plain.exten,
2690
2769
  persistent: plain.persistent,
2691
2770
  creationTime: moment__default['default'](plain.creation_time).toDate(),
2771
+ requireAuthorization: plain.require_authorization,
2692
2772
  });
2693
2773
  }
2694
2774
 
@@ -2713,6 +2793,7 @@ class Meeting {
2713
2793
  extension,
2714
2794
  persistent,
2715
2795
  creationTime,
2796
+ requireAuthorization,
2716
2797
  } = {}) {
2717
2798
  this.guestSipAuthorization = guestSipAuthorization;
2718
2799
  this.uri = uri;
@@ -2723,6 +2804,7 @@ class Meeting {
2723
2804
  this.extension = extension;
2724
2805
  this.persistent = persistent;
2725
2806
  this.creationTime = creationTime;
2807
+ this.requireAuthorization = requireAuthorization;
2726
2808
 
2727
2809
  // Useful to compare instead of instanceof with minified code
2728
2810
  this.type = 'Meeting';
@@ -2733,8 +2815,32 @@ class Meeting {
2733
2815
  const [username, secret] = atob(this.guestSipAuthorization).split(':');
2734
2816
  return { username, secret };
2735
2817
  }
2818
+
2736
2819
  }
2737
2820
 
2821
+ //
2822
+
2823
+ const camelToUnderscore = (key ) => {
2824
+ if (typeof key !== 'string') {
2825
+ throw new Error('Input is not a string');
2826
+ }
2827
+ return key.charAt(0).toLowerCase() + key.substring(1).replace(/([A-Z])/g, '_$1').toLowerCase();
2828
+ };
2829
+
2830
+ //
2831
+
2832
+ const convertKeysFromCamelToUnderscore = (args ) => {
2833
+ if (!args || typeof args !== 'object' || Array.isArray(args)) {
2834
+ throw new Error('Input is not an object');
2835
+ }
2836
+
2837
+ return Object.keys(args).reduce((acc, key) => {
2838
+ acc[camelToUnderscore(key)] = typeof args[key] === 'object' && !Array.isArray(args[key])
2839
+ ? convertKeysFromCamelToUnderscore(args[key]) : args[key];
2840
+ return acc;
2841
+ }, {});
2842
+ };
2843
+
2738
2844
  /* */
2739
2845
 
2740
2846
  var confdMethods = (client , baseUrl ) => ({
@@ -2803,8 +2909,18 @@ var confdMethods = (client , baseUrl ) => ({
2803
2909
  getMyMeetings: () =>
2804
2910
  client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
2805
2911
 
2806
- createMyMeeting: (name , persistent ) =>
2807
- client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
2912
+ createMyMeeting: (args ) =>
2913
+ client
2914
+ .post(`${baseUrl}/users/me/meetings`, convertKeysFromCamelToUnderscore(args))
2915
+ .then(Meeting.parse),
2916
+
2917
+ updateMyMeeting: (meetingUuid , data ) =>
2918
+ client.put(
2919
+ `${baseUrl}/users/me/meetings/${meetingUuid}`,
2920
+ convertKeysFromCamelToUnderscore(data),
2921
+ null,
2922
+ ApiRequester.successResponseParser,
2923
+ ),
2808
2924
 
2809
2925
  deleteMyMeeting: (meetingUuid ) =>
2810
2926
  client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
@@ -2812,8 +2928,36 @@ var confdMethods = (client , baseUrl ) => ({
2812
2928
  getMeeting: (meetingUuid ) =>
2813
2929
  client.get(`${baseUrl}/meetings/${meetingUuid}`, null).then(Meeting.parse),
2814
2930
 
2931
+ meetingAuthorizations: (meetingUuid ) =>
2932
+ client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations`, null).then(MeetingAuthorization.parseMany),
2933
+
2934
+ meetingAuthorizationReject: (meetingUuid , authorizationUuid ) =>
2935
+ client.put(
2936
+ `${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/reject`,
2937
+ {},
2938
+ null,
2939
+ ApiRequester.successResponseParser,
2940
+ ),
2941
+
2942
+ meetingAuthorizationAccept: (meetingUuid , authorizationUuid ) =>
2943
+ client.put(
2944
+ `${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/accept`,
2945
+ {},
2946
+ null,
2947
+ ApiRequester.successResponseParser,
2948
+ ),
2949
+
2815
2950
  guestGetMeeting: (meetingUuid ) =>
2816
2951
  client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}`, null).then(Meeting.parse),
2952
+
2953
+ guestAuthorizationRequest: (userUuid , meetingUuid , username ) =>
2954
+ client
2955
+ .post(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations`, { guest_name: username })
2956
+ .then(MeetingAuthorization.parse),
2957
+
2958
+ guestAuthorizationCheck: (userUuid , meetingUuid , authorizationUuid ) =>
2959
+ client.get(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations/${authorizationUuid}`, null),
2960
+
2817
2961
  });
2818
2962
 
2819
2963
  //
@@ -3604,6 +3748,7 @@ global.wazoClientId = global.wazoClientId || {};
3604
3748
  global.wazoClientToken = global.wazoClientToken || {};
3605
3749
  global.wazoRefreshToken = global.wazoRefreshToken || {};
3606
3750
  global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
3751
+ global.wazoRefreshDomainName = global.wazoRefreshDomainName || {};
3607
3752
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
3608
3753
  global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
3609
3754
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
@@ -4278,6 +4423,14 @@ var calldMethods = (client , baseUrl ) => ({
4278
4423
  getMeetingParticipantsAsUser: async (meetingUuid ) =>
4279
4424
  client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/participants`),
4280
4425
 
4426
+ banMeetingParticipant: (meetingUuid , participantUuid ) =>
4427
+ client.delete(
4428
+ `${baseUrl}/users/me/meetings/${meetingUuid}/participants/${participantUuid}`,
4429
+ null,
4430
+ null,
4431
+ ApiRequester.successResponseParser,
4432
+ ),
4433
+
4281
4434
  listTrunks: () => client.get(`${baseUrl}/trunks`),
4282
4435
 
4283
4436
  mute: (callId ) =>
@@ -4655,6 +4808,7 @@ class ApiClient {
4655
4808
 
4656
4809
 
4657
4810
 
4811
+
4658
4812
 
4659
4813
 
4660
4814
 
@@ -4696,6 +4850,7 @@ class ApiClient {
4696
4850
  refreshToken: this.refreshToken,
4697
4851
  refreshBackend: this.refreshBackend,
4698
4852
  refreshTenantId: this.refreshTenantId,
4853
+ refreshDomainName: this.refreshDomainName,
4699
4854
  refreshExpiration: this.refreshExpiration,
4700
4855
  isMobile: this.isMobile,
4701
4856
  });
@@ -4711,6 +4866,7 @@ class ApiClient {
4711
4866
  this.refreshExpiration,
4712
4867
  this.isMobile,
4713
4868
  this.refreshTenantId,
4869
+ this.refreshDomainName,
4714
4870
  );
4715
4871
 
4716
4872
  logger$2.info('token refreshed', { token: session.token });
@@ -4764,9 +4920,14 @@ class ApiClient {
4764
4920
  }
4765
4921
 
4766
4922
  setRefreshTenantId(tenantId ) {
4923
+ console.warn('Use of `setRefreshTenantId` is deprecated, use `setRefreshDomainName` instead');
4767
4924
  this.refreshTenantId = tenantId;
4768
4925
  }
4769
4926
 
4927
+ setRefreshDomainName(domainName ) {
4928
+ this.refreshDomainName = domainName;
4929
+ }
4930
+
4770
4931
  setIsMobile(isMobile ) {
4771
4932
  this.isMobile = isMobile;
4772
4933
  }
@@ -5069,6 +5230,7 @@ const AGENT_UNPAUSED = 'agent_unpaused';
5069
5230
  const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
5070
5231
  const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
5071
5232
  const MEETING_USER_PROGRESS = 'meeting_user_progress';
5233
+ const MEETING_USER_GUEST_AUTHORIZATION_CREATED = 'meeting_user_guest_authorization_created';
5072
5234
 
5073
5235
  const BLACKLIST_EVENTS = [
5074
5236
  CHAT_MESSAGE_SENT,
@@ -5420,6 +5582,7 @@ WebSocketClient.eventLists = [
5420
5582
  CONFERENCE_ADHOC_PARTICIPANT_LEFT,
5421
5583
  CONFERENCE_ADHOC_DELETED,
5422
5584
  MEETING_USER_PROGRESS,
5585
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED,
5423
5586
  ];
5424
5587
 
5425
5588
  var wazoWebsocket = {
@@ -7036,7 +7199,7 @@ class WebRTCClient extends Emitter {
7036
7199
  });
7037
7200
  }
7038
7201
 
7039
- changeAudioInputDevice(id , session , force ) {
7202
+ async changeAudioInputDevice(id , session , force ) {
7040
7203
  const currentId = this.getAudioDeviceId();
7041
7204
  logger.info('setting audio input device', { id, currentId, session: !!session });
7042
7205
 
@@ -7044,33 +7207,50 @@ class WebRTCClient extends Emitter {
7044
7207
  return null;
7045
7208
  }
7046
7209
 
7210
+ // in order to handle an audio track change for default devices
7211
+ // we need the actual id of the device (not 'default')
7212
+ let deviceId = id;
7213
+ if (id === 'default' && navigator.mediaDevices) {
7214
+ const devices = await navigator.mediaDevices.enumerateDevices();
7215
+ const defaultDevice = devices.find(device => device.deviceId === 'default');
7216
+ if (defaultDevice) {
7217
+ const deviceLabel = defaultDevice.label.replace('Default - ', '');
7218
+ const targetDevice = devices.find(device => device.label === deviceLabel);
7219
+ if (targetDevice) {
7220
+ deviceId = targetDevice.deviceId;
7221
+ if (!force && deviceId === currentId) {
7222
+ return null;
7223
+ }
7224
+ }
7225
+ }
7226
+ }
7227
+
7047
7228
  // let's update the local audio value
7048
7229
  if (this.audio) {
7049
7230
  this.audio = {
7050
7231
  deviceId: {
7051
- exact: id,
7232
+ exact: deviceId,
7052
7233
  },
7053
7234
  };
7054
7235
  }
7055
7236
 
7056
- if (session) {
7237
+ if (session && navigator.mediaDevices) {
7057
7238
  const sdh = session.sessionDescriptionHandler;
7058
7239
  const pc = sdh.peerConnection;
7059
7240
 
7060
- // $FlowFixMe
7061
- return navigator.mediaDevices.getUserMedia({ audio: { deviceId: { exact: id } } }).then(async stream => {
7062
- const audioTrack = stream.getAudioTracks()[0];
7063
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7241
+ const constraints = { audio: { deviceId: { exact: deviceId } } };
7242
+ const stream = await navigator.mediaDevices.getUserMedia(constraints);
7243
+ const audioTrack = stream.getAudioTracks()[0];
7244
+ const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7064
7245
 
7065
- if (sender) {
7066
- if (sender.track) {
7067
- audioTrack.enabled = sender.track.enabled;
7068
- }
7069
- sender.replaceTrack(audioTrack);
7246
+ if (sender) {
7247
+ if (sender.track) {
7248
+ audioTrack.enabled = sender.track.enabled;
7070
7249
  }
7250
+ sender.replaceTrack(audioTrack);
7251
+ }
7071
7252
 
7072
- return stream;
7073
- });
7253
+ return stream;
7074
7254
  }
7075
7255
  }
7076
7256
 
@@ -7090,14 +7270,14 @@ class WebRTCClient extends Emitter {
7090
7270
  return null;
7091
7271
  }
7092
7272
 
7093
- // let's update the local video value
7094
- if (this.video) {
7095
- this.video = {
7096
- deviceId: {
7097
- exact: id,
7098
- },
7099
- };
7100
- }
7273
+ // let's make sure we don't lose other video constraints settings -- width, height, frameRate...
7274
+ const videoObject = typeof this.video === 'object' ? this.video : {};
7275
+ this.video = {
7276
+ ...videoObject,
7277
+ deviceId: {
7278
+ exact: id,
7279
+ },
7280
+ };
7101
7281
  }
7102
7282
 
7103
7283
  changeSessionVideoInputDevice(id , session ) {
@@ -615,6 +615,7 @@ const AGENT_UNPAUSED = 'agent_unpaused';
615
615
  const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
616
616
  const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
617
617
  const MEETING_USER_PROGRESS = 'meeting_user_progress';
618
+ const MEETING_USER_GUEST_AUTHORIZATION_CREATED = 'meeting_user_guest_authorization_created';
618
619
 
619
620
  const BLACKLIST_EVENTS = [
620
621
  CHAT_MESSAGE_SENT,
@@ -966,6 +967,7 @@ WebSocketClient.eventLists = [
966
967
  CONFERENCE_ADHOC_PARTICIPANT_LEFT,
967
968
  CONFERENCE_ADHOC_DELETED,
968
969
  MEETING_USER_PROGRESS,
970
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED,
969
971
  ];
970
972
 
971
973
  var wazoWebsocket = {