@wazo/sdk 0.38.7 → 0.38.8

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 (106) hide show
  1. package/dist/wazo-sdk.js +2 -2
  2. package/esm/__tests__/api-client.test.js +142 -2
  3. package/esm/__tests__/web-rtc-client.test.js +227 -27
  4. package/esm/api/calld.js +8 -0
  5. package/esm/api/confd.js +134 -2
  6. package/esm/api-client.js +142 -2
  7. package/esm/checker/Checker.js +183 -24
  8. package/esm/checker/checks/aor.js +142 -2
  9. package/esm/checker/checks/api.js +142 -2
  10. package/esm/checker/checks/index.js +183 -24
  11. package/esm/checker/checks/wazo-websocket.js +2 -0
  12. package/esm/checker/checks/webrtc-transport.js +181 -24
  13. package/esm/checker/checks/webrtc.js +181 -24
  14. package/esm/domain/AdHocAPIConference.js +142 -2
  15. package/esm/domain/Features.js +142 -2
  16. package/esm/domain/Meeting.js +18 -0
  17. package/esm/domain/MeetingAuthorization.js +70 -0
  18. package/esm/domain/Phone/CTIPhone.js +142 -2
  19. package/esm/domain/__tests__/Meeting.test.js +87 -1
  20. package/esm/domain/__tests__/MeetingAuthorization.test.js +109 -0
  21. package/esm/index.js +226 -27
  22. package/esm/service/CallApi.js +142 -2
  23. package/esm/service/getApiClient.js +142 -2
  24. package/esm/simple/Auth.js +226 -27
  25. package/esm/simple/Configuration.js +226 -27
  26. package/esm/simple/Directory.js +142 -2
  27. package/esm/simple/Phone.js +226 -27
  28. package/esm/simple/Websocket.js +3 -0
  29. package/esm/simple/index.js +226 -27
  30. package/esm/simple/room/LocalParticipant.js +226 -27
  31. package/esm/simple/room/Participant.js +226 -27
  32. package/esm/simple/room/RemoteParticipant.js +226 -27
  33. package/esm/simple/room/Room.js +226 -27
  34. package/esm/simple/room/SipRoom.js +226 -27
  35. package/esm/simple/room/Stream.js +226 -27
  36. package/esm/simple/room/__tests__/Participant.test.js +14747 -0
  37. package/esm/simple/room/__tests__/RemoteParticipant.test.js +226 -27
  38. package/esm/simple/utils.js +226 -27
  39. package/esm/utils/__tests__/object.test.js +57 -0
  40. package/esm/utils/__tests__/string.test.js +30 -0
  41. package/esm/utils/object.js +24 -0
  42. package/esm/utils/string.js +10 -0
  43. package/esm/web-rtc-client.js +181 -24
  44. package/esm/websocket-client.js +3 -1
  45. package/lib/__tests__/api-client.test.js +142 -2
  46. package/lib/__tests__/web-rtc-client.test.js +227 -27
  47. package/lib/api/calld.js +8 -0
  48. package/lib/api/confd.js +134 -2
  49. package/lib/api-client.js +142 -2
  50. package/lib/checker/Checker.js +183 -24
  51. package/lib/checker/checks/aor.js +142 -2
  52. package/lib/checker/checks/api.js +142 -2
  53. package/lib/checker/checks/index.js +183 -24
  54. package/lib/checker/checks/wazo-websocket.js +2 -0
  55. package/lib/checker/checks/webrtc-transport.js +181 -24
  56. package/lib/checker/checks/webrtc.js +181 -24
  57. package/lib/domain/AdHocAPIConference.js +142 -2
  58. package/lib/domain/Features.js +142 -2
  59. package/lib/domain/Meeting.js +18 -0
  60. package/lib/domain/MeetingAuthorization.js +79 -0
  61. package/lib/domain/Phone/CTIPhone.js +142 -2
  62. package/lib/domain/__tests__/Meeting.test.js +87 -1
  63. package/lib/domain/__tests__/MeetingAuthorization.test.js +111 -0
  64. package/lib/index.js +226 -27
  65. package/lib/service/CallApi.js +142 -2
  66. package/lib/service/getApiClient.js +142 -2
  67. package/lib/simple/Auth.js +226 -27
  68. package/lib/simple/Configuration.js +226 -27
  69. package/lib/simple/Directory.js +142 -2
  70. package/lib/simple/Phone.js +226 -27
  71. package/lib/simple/Websocket.js +3 -0
  72. package/lib/simple/index.js +226 -27
  73. package/lib/simple/room/LocalParticipant.js +226 -27
  74. package/lib/simple/room/Participant.js +226 -27
  75. package/lib/simple/room/RemoteParticipant.js +226 -27
  76. package/lib/simple/room/Room.js +226 -27
  77. package/lib/simple/room/SipRoom.js +226 -27
  78. package/lib/simple/room/Stream.js +226 -27
  79. package/lib/simple/room/__tests__/Participant.test.js +14757 -0
  80. package/lib/simple/room/__tests__/RemoteParticipant.test.js +226 -27
  81. package/lib/simple/utils.js +226 -27
  82. package/lib/utils/__tests__/object.test.js +59 -0
  83. package/lib/utils/__tests__/string.test.js +32 -0
  84. package/lib/utils/object.js +28 -0
  85. package/lib/utils/string.js +14 -0
  86. package/lib/web-rtc-client.js +181 -24
  87. package/lib/websocket-client.js +3 -0
  88. package/package.json +2 -2
  89. package/src/__tests__/web-rtc-client.test.js +46 -3
  90. package/src/api/calld.js +8 -0
  91. package/src/api/confd.js +43 -2
  92. package/src/domain/Meeting.js +20 -0
  93. package/src/domain/MeetingAuthorization.js +67 -0
  94. package/src/domain/__tests__/Meeting.test.js +70 -1
  95. package/src/domain/__tests__/MeetingAuthorization.test.js +58 -0
  96. package/src/simple/room/Participant.js +40 -0
  97. package/src/simple/room/Room.js +2 -2
  98. package/src/simple/room/SipRoom.js +1 -1
  99. package/src/simple/room/__tests__/Participant.test.js +81 -0
  100. package/src/types/WebSocketMessage.js +7 -1
  101. package/src/utils/__tests__/object.test.js +35 -0
  102. package/src/utils/__tests__/string.test.js +23 -0
  103. package/src/utils/object.js +15 -0
  104. package/src/utils/string.js +8 -0
  105. package/src/web-rtc-client.js +39 -22
  106. package/src/websocket-client.js +2 -0
@@ -3264,6 +3264,70 @@ class ExternalApp {
3264
3264
 
3265
3265
  //
3266
3266
 
3267
+ class MeetingAuthorization {
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+ constructor({
3275
+ meetingUuid,
3276
+ uuid,
3277
+ userUuid,
3278
+ userName,
3279
+ } = {}) {
3280
+ this.meetingUuid = meetingUuid;
3281
+ this.uuid = uuid;
3282
+ this.userUuid = userUuid;
3283
+ this.userName = userName;
3284
+ }
3285
+
3286
+ setStatus(status ) {
3287
+ this.status = status;
3288
+ }
3289
+
3290
+ getStatus() {
3291
+ return this.status;
3292
+ }
3293
+
3294
+ static parse(plain ) {
3295
+ const {
3296
+ meeting_uuid: meetingUuid,
3297
+ uuid,
3298
+ guest_uuid: userUuid,
3299
+ guest_name: userName,
3300
+ } = plain;
3301
+
3302
+ return new MeetingAuthorization({
3303
+ meetingUuid,
3304
+ uuid,
3305
+ userUuid,
3306
+ userName,
3307
+ });
3308
+ }
3309
+
3310
+ static parseMany(items ) {
3311
+ if (!items) {
3312
+ return [];
3313
+ }
3314
+ return items.map(MeetingAuthorization.parse);
3315
+ }
3316
+ }
3317
+
3318
+ //
3319
+
3320
+
3321
+
3322
+
3323
+
3324
+
3325
+
3326
+
3327
+
3328
+
3329
+
3330
+
3267
3331
 
3268
3332
 
3269
3333
 
@@ -3274,6 +3338,7 @@ class ExternalApp {
3274
3338
 
3275
3339
 
3276
3340
 
3341
+
3277
3342
 
3278
3343
 
3279
3344
  class Meeting {
@@ -3288,6 +3353,8 @@ class Meeting {
3288
3353
 
3289
3354
 
3290
3355
 
3356
+
3357
+
3291
3358
 
3292
3359
  static parse(plain ) {
3293
3360
  return new Meeting({
@@ -3300,6 +3367,7 @@ class Meeting {
3300
3367
  extension: plain.exten,
3301
3368
  persistent: plain.persistent,
3302
3369
  creationTime: moment__default['default'](plain.creation_time).toDate(),
3370
+ requireAuthorization: plain.require_authorization,
3303
3371
  });
3304
3372
  }
3305
3373
 
@@ -3324,6 +3392,7 @@ class Meeting {
3324
3392
  extension,
3325
3393
  persistent,
3326
3394
  creationTime,
3395
+ requireAuthorization,
3327
3396
  } = {}) {
3328
3397
  this.guestSipAuthorization = guestSipAuthorization;
3329
3398
  this.uri = uri;
@@ -3334,6 +3403,7 @@ class Meeting {
3334
3403
  this.extension = extension;
3335
3404
  this.persistent = persistent;
3336
3405
  this.creationTime = creationTime;
3406
+ this.requireAuthorization = requireAuthorization;
3337
3407
 
3338
3408
  // Useful to compare instead of instanceof with minified code
3339
3409
  this.type = 'Meeting';
@@ -3344,8 +3414,32 @@ class Meeting {
3344
3414
  const [username, secret] = atob(this.guestSipAuthorization).split(':');
3345
3415
  return { username, secret };
3346
3416
  }
3417
+
3347
3418
  }
3348
3419
 
3420
+ //
3421
+
3422
+ const camelToUnderscore = (key ) => {
3423
+ if (typeof key !== 'string') {
3424
+ throw new Error('Input is not a string');
3425
+ }
3426
+ return key.charAt(0).toLowerCase() + key.substring(1).replace(/([A-Z])/g, '_$1').toLowerCase();
3427
+ };
3428
+
3429
+ //
3430
+
3431
+ const convertKeysFromCamelToUnderscore = (args ) => {
3432
+ if (!args || typeof args !== 'object' || Array.isArray(args)) {
3433
+ throw new Error('Input is not an object');
3434
+ }
3435
+
3436
+ return Object.keys(args).reduce((acc, key) => {
3437
+ acc[camelToUnderscore(key)] = typeof args[key] === 'object' && !Array.isArray(args[key])
3438
+ ? convertKeysFromCamelToUnderscore(args[key]) : args[key];
3439
+ return acc;
3440
+ }, {});
3441
+ };
3442
+
3349
3443
  /* */
3350
3444
 
3351
3445
  var confdMethods = (client , baseUrl ) => ({
@@ -3414,8 +3508,18 @@ var confdMethods = (client , baseUrl ) => ({
3414
3508
  getMyMeetings: () =>
3415
3509
  client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
3416
3510
 
3417
- createMyMeeting: (name , persistent ) =>
3418
- client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
3511
+ createMyMeeting: (args ) =>
3512
+ client
3513
+ .post(`${baseUrl}/users/me/meetings`, convertKeysFromCamelToUnderscore(args))
3514
+ .then(Meeting.parse),
3515
+
3516
+ updateMyMeeting: (meetingUuid , data ) =>
3517
+ client.put(
3518
+ `${baseUrl}/users/me/meetings/${meetingUuid}`,
3519
+ convertKeysFromCamelToUnderscore(data),
3520
+ null,
3521
+ ApiRequester.successResponseParser,
3522
+ ),
3419
3523
 
3420
3524
  deleteMyMeeting: (meetingUuid ) =>
3421
3525
  client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
@@ -3423,8 +3527,36 @@ var confdMethods = (client , baseUrl ) => ({
3423
3527
  getMeeting: (meetingUuid ) =>
3424
3528
  client.get(`${baseUrl}/meetings/${meetingUuid}`, null).then(Meeting.parse),
3425
3529
 
3530
+ meetingAuthorizations: (meetingUuid ) =>
3531
+ client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations`, null).then(MeetingAuthorization.parseMany),
3532
+
3533
+ meetingAuthorizationReject: (meetingUuid , authorizationUuid ) =>
3534
+ client.put(
3535
+ `${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/reject`,
3536
+ {},
3537
+ null,
3538
+ ApiRequester.successResponseParser,
3539
+ ),
3540
+
3541
+ meetingAuthorizationAccept: (meetingUuid , authorizationUuid ) =>
3542
+ client.put(
3543
+ `${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/accept`,
3544
+ {},
3545
+ null,
3546
+ ApiRequester.successResponseParser,
3547
+ ),
3548
+
3426
3549
  guestGetMeeting: (meetingUuid ) =>
3427
3550
  client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}`, null).then(Meeting.parse),
3551
+
3552
+ guestAuthorizationRequest: (userUuid , meetingUuid , username ) =>
3553
+ client
3554
+ .post(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations`, { guest_name: username })
3555
+ .then(MeetingAuthorization.parse),
3556
+
3557
+ guestAuthorizationCheck: (userUuid , meetingUuid , authorizationUuid ) =>
3558
+ client.get(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations/${authorizationUuid}`, null),
3559
+
3428
3560
  });
3429
3561
 
3430
3562
  //
@@ -5066,6 +5198,14 @@ var calldMethods = (client , baseUrl ) => ({
5066
5198
  getMeetingParticipantsAsUser: async (meetingUuid ) =>
5067
5199
  client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/participants`),
5068
5200
 
5201
+ banMeetingParticipant: (meetingUuid , participantUuid ) =>
5202
+ client.delete(
5203
+ `${baseUrl}/users/me/meetings/${meetingUuid}/participants/${participantUuid}`,
5204
+ null,
5205
+ null,
5206
+ ApiRequester.successResponseParser,
5207
+ ),
5208
+
5069
5209
  listTrunks: () => client.get(`${baseUrl}/trunks`),
5070
5210
 
5071
5211
  mute: (callId ) =>
@@ -7523,7 +7663,7 @@ class WebRTCClient extends Emitter {
7523
7663
  });
7524
7664
  }
7525
7665
 
7526
- changeAudioInputDevice(id , session , force ) {
7666
+ async changeAudioInputDevice(id , session , force ) {
7527
7667
  const currentId = this.getAudioDeviceId();
7528
7668
  logger$9.info('setting audio input device', { id, currentId, session: !!session });
7529
7669
 
@@ -7531,33 +7671,50 @@ class WebRTCClient extends Emitter {
7531
7671
  return null;
7532
7672
  }
7533
7673
 
7674
+ // in order to handle an audio track change for default devices
7675
+ // we need the actual id of the device (not 'default')
7676
+ let deviceId = id;
7677
+ if (id === 'default' && navigator.mediaDevices) {
7678
+ const devices = await navigator.mediaDevices.enumerateDevices();
7679
+ const defaultDevice = devices.find(device => device.deviceId === 'default');
7680
+ if (defaultDevice) {
7681
+ const deviceLabel = defaultDevice.label.replace('Default - ', '');
7682
+ const targetDevice = devices.find(device => device.label === deviceLabel);
7683
+ if (targetDevice) {
7684
+ deviceId = targetDevice.deviceId;
7685
+ if (!force && deviceId === currentId) {
7686
+ return null;
7687
+ }
7688
+ }
7689
+ }
7690
+ }
7691
+
7534
7692
  // let's update the local audio value
7535
7693
  if (this.audio) {
7536
7694
  this.audio = {
7537
7695
  deviceId: {
7538
- exact: id,
7696
+ exact: deviceId,
7539
7697
  },
7540
7698
  };
7541
7699
  }
7542
7700
 
7543
- if (session) {
7701
+ if (session && navigator.mediaDevices) {
7544
7702
  const sdh = session.sessionDescriptionHandler;
7545
7703
  const pc = sdh.peerConnection;
7546
7704
 
7547
- // $FlowFixMe
7548
- return navigator.mediaDevices.getUserMedia({ audio: { deviceId: { exact: id } } }).then(async stream => {
7549
- const audioTrack = stream.getAudioTracks()[0];
7550
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7705
+ const constraints = { audio: { deviceId: { exact: deviceId } } };
7706
+ const stream = await navigator.mediaDevices.getUserMedia(constraints);
7707
+ const audioTrack = stream.getAudioTracks()[0];
7708
+ const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7551
7709
 
7552
- if (sender) {
7553
- if (sender.track) {
7554
- audioTrack.enabled = sender.track.enabled;
7555
- }
7556
- sender.replaceTrack(audioTrack);
7710
+ if (sender) {
7711
+ if (sender.track) {
7712
+ audioTrack.enabled = sender.track.enabled;
7557
7713
  }
7714
+ sender.replaceTrack(audioTrack);
7715
+ }
7558
7716
 
7559
- return stream;
7560
- });
7717
+ return stream;
7561
7718
  }
7562
7719
  }
7563
7720
 
@@ -7577,14 +7734,14 @@ class WebRTCClient extends Emitter {
7577
7734
  return null;
7578
7735
  }
7579
7736
 
7580
- // let's update the local video value
7581
- if (this.video) {
7582
- this.video = {
7583
- deviceId: {
7584
- exact: id,
7585
- },
7586
- };
7587
- }
7737
+ // let's make sure we don't lose other video constraints settings -- width, height, frameRate...
7738
+ const videoObject = typeof this.video === 'object' ? this.video : {};
7739
+ this.video = {
7740
+ ...videoObject,
7741
+ deviceId: {
7742
+ exact: id,
7743
+ },
7744
+ };
7588
7745
  }
7589
7746
 
7590
7747
  changeSessionVideoInputDevice(id , session ) {
@@ -10862,6 +11019,7 @@ const AGENT_UNPAUSED = 'agent_unpaused';
10862
11019
  const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
10863
11020
  const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
10864
11021
  const MEETING_USER_PROGRESS = 'meeting_user_progress';
11022
+ const MEETING_USER_GUEST_AUTHORIZATION_CREATED = 'meeting_user_guest_authorization_created';
10865
11023
 
10866
11024
  const BLACKLIST_EVENTS = [
10867
11025
  CHAT_MESSAGE_SENT,
@@ -11213,6 +11371,7 @@ WebSocketClient.eventLists = [
11213
11371
  CONFERENCE_ADHOC_PARTICIPANT_LEFT,
11214
11372
  CONFERENCE_ADHOC_DELETED,
11215
11373
  MEETING_USER_PROGRESS,
11374
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED,
11216
11375
  ];
11217
11376
 
11218
11377
  var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
@@ -11284,6 +11443,7 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
11284
11443
  CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
11285
11444
  CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
11286
11445
  MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
11446
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED: MEETING_USER_GUEST_AUTHORIZATION_CREATED,
11287
11447
  HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
11288
11448
  'default': WebSocketClient
11289
11449
  });
@@ -11388,6 +11548,7 @@ class Participant extends Emitter {
11388
11548
 
11389
11549
 
11390
11550
 
11551
+
11391
11552
 
11392
11553
 
11393
11554
 
@@ -11405,6 +11566,7 @@ class Participant extends Emitter {
11405
11566
 
11406
11567
 
11407
11568
 
11569
+
11408
11570
 
11409
11571
  /**
11410
11572
  * @param room Room The room where the participant is
@@ -11428,6 +11590,7 @@ class Participant extends Emitter {
11428
11590
  this.screensharing = false;
11429
11591
  this.isOnHold = false;
11430
11592
  this.extra = extra;
11593
+ this.banned = false;
11431
11594
 
11432
11595
  this.ON_UPDATED = 'participant/ON_UPDATED';
11433
11596
  this.ON_START_TALKING = 'participant/ON_START_TALKING';
@@ -11444,6 +11607,7 @@ class Participant extends Emitter {
11444
11607
  this.ON_EXTRA_CHANGE = 'participant/ON_EXTRA_CHANGE';
11445
11608
  this.ON_HOLD = 'participant/ON_HOLD';
11446
11609
  this.ON_RESUME = 'participant/ON_RESUME';
11610
+ this.ON_BAN = 'participant/ON_BAN';
11447
11611
  }
11448
11612
 
11449
11613
  triggerEvent(name , ...args ) {
@@ -11484,6 +11648,10 @@ class Participant extends Emitter {
11484
11648
  status.extra = this.extra;
11485
11649
  break;
11486
11650
  }
11651
+ case this.ON_BAN: {
11652
+ status.banned = true;
11653
+ break;
11654
+ }
11487
11655
  }
11488
11656
 
11489
11657
  if (broadcast) {
@@ -11586,6 +11754,11 @@ class Participant extends Emitter {
11586
11754
  this.triggerUpdate(this.ON_RESUME, broadcast);
11587
11755
  }
11588
11756
 
11757
+ onBan(broadcast = true) {
11758
+ this.banned = true;
11759
+ this.triggerUpdate(this.ON_BAN, broadcast);
11760
+ }
11761
+
11589
11762
  getStatus() {
11590
11763
  return {
11591
11764
  callId: this.callId,
@@ -11632,6 +11805,10 @@ class Participant extends Emitter {
11632
11805
  }
11633
11806
  }
11634
11807
 
11808
+ if (status.banned) {
11809
+ this.onBan(false);
11810
+ }
11811
+
11635
11812
  // Poor man's object comparison
11636
11813
  if (typeof status.extra !== 'undefined' && JSON.stringify(this.extra) !== JSON.stringify(status.extra)) {
11637
11814
  this.extra = { ...this.extra, ...status.extra };
@@ -11659,6 +11836,28 @@ class Participant extends Emitter {
11659
11836
  this.streams = streams;
11660
11837
  this.videoStreams = streams;
11661
11838
  }
11839
+
11840
+ async ban(apiRequestDelay = null) {
11841
+ const { meetingUuid } = this.room;
11842
+ if (!meetingUuid) {
11843
+ throw new Error('Attempting to ban a participant without a `meetingUuid`');
11844
+ }
11845
+
11846
+ // this notifies all that someone is being banned
11847
+ this.onBan(true);
11848
+
11849
+ // this allows to delay the actual ban, in order for the banned participant as well as others to react to the situation
11850
+ if (apiRequestDelay) {
11851
+ await this.delay(apiRequestDelay);
11852
+ }
11853
+
11854
+ // proceed with the actual kick
11855
+ return getApiClient().calld.banMeetingParticipant(meetingUuid, this.callId);
11856
+ }
11857
+
11858
+ async delay(ms ) {
11859
+ return new Promise(resolve => setTimeout(resolve, ms));
11860
+ }
11662
11861
  }
11663
11862
 
11664
11863
  //
@@ -11811,7 +12010,7 @@ class Room$1 extends Emitter {
11811
12010
  logger$3.info('connecting to room', { extension, audioOnly, room: !!room });
11812
12011
 
11813
12012
  if (!room) {
11814
- await Wazo.Phone.connect();
12013
+ await Wazo.Phone.connect({ media: constraints });
11815
12014
 
11816
12015
  const withCamera = constraints && !!constraints.video;
11817
12016
 
@@ -12256,7 +12455,7 @@ class Room$1 extends Emitter {
12256
12455
  const participant = this._getParticipantFromCallId(status.callId);
12257
12456
 
12258
12457
  if (participant) {
12259
- // we're received, so no need to broadcast, hence the input false arg
12458
+ // we're receiving, so no need to broadcast
12260
12459
  participant.updateStatus(status, false);
12261
12460
  }
12262
12461
  break;
@@ -12523,7 +12722,7 @@ class SipRoom extends Room$1 {
12523
12722
  logger$2.info('connecting to sip room', { extension, audioOnly, room: !!room });
12524
12723
 
12525
12724
  if (!room) {
12526
- await Wazo.Phone.connect();
12725
+ await Wazo.Phone.connect({ media: constraints });
12527
12726
 
12528
12727
  const withCamera = constraints && !!constraints.video;
12529
12728
 
@@ -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 WebSocketClient$1 = /*#__PURE__*/Object.freeze({
@@ -1037,6 +1039,7 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
1037
1039
  CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
1038
1040
  CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
1039
1041
  MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
1042
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED: MEETING_USER_GUEST_AUTHORIZATION_CREATED,
1040
1043
  HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
1041
1044
  'default': WebSocketClient
1042
1045
  });