@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
@@ -3254,6 +3254,70 @@ class ExternalApp {
3254
3254
 
3255
3255
  //
3256
3256
 
3257
+ class MeetingAuthorization {
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+
3264
+ constructor({
3265
+ meetingUuid,
3266
+ uuid,
3267
+ userUuid,
3268
+ userName,
3269
+ } = {}) {
3270
+ this.meetingUuid = meetingUuid;
3271
+ this.uuid = uuid;
3272
+ this.userUuid = userUuid;
3273
+ this.userName = userName;
3274
+ }
3275
+
3276
+ setStatus(status ) {
3277
+ this.status = status;
3278
+ }
3279
+
3280
+ getStatus() {
3281
+ return this.status;
3282
+ }
3283
+
3284
+ static parse(plain ) {
3285
+ const {
3286
+ meeting_uuid: meetingUuid,
3287
+ uuid,
3288
+ guest_uuid: userUuid,
3289
+ guest_name: userName,
3290
+ } = plain;
3291
+
3292
+ return new MeetingAuthorization({
3293
+ meetingUuid,
3294
+ uuid,
3295
+ userUuid,
3296
+ userName,
3297
+ });
3298
+ }
3299
+
3300
+ static parseMany(items ) {
3301
+ if (!items) {
3302
+ return [];
3303
+ }
3304
+ return items.map(MeetingAuthorization.parse);
3305
+ }
3306
+ }
3307
+
3308
+ //
3309
+
3310
+
3311
+
3312
+
3313
+
3314
+
3315
+
3316
+
3317
+
3318
+
3319
+
3320
+
3257
3321
 
3258
3322
 
3259
3323
 
@@ -3264,6 +3328,7 @@ class ExternalApp {
3264
3328
 
3265
3329
 
3266
3330
 
3331
+
3267
3332
 
3268
3333
 
3269
3334
  class Meeting {
@@ -3278,6 +3343,8 @@ class Meeting {
3278
3343
 
3279
3344
 
3280
3345
 
3346
+
3347
+
3281
3348
 
3282
3349
  static parse(plain ) {
3283
3350
  return new Meeting({
@@ -3290,6 +3357,7 @@ class Meeting {
3290
3357
  extension: plain.exten,
3291
3358
  persistent: plain.persistent,
3292
3359
  creationTime: moment(plain.creation_time).toDate(),
3360
+ requireAuthorization: plain.require_authorization,
3293
3361
  });
3294
3362
  }
3295
3363
 
@@ -3314,6 +3382,7 @@ class Meeting {
3314
3382
  extension,
3315
3383
  persistent,
3316
3384
  creationTime,
3385
+ requireAuthorization,
3317
3386
  } = {}) {
3318
3387
  this.guestSipAuthorization = guestSipAuthorization;
3319
3388
  this.uri = uri;
@@ -3324,6 +3393,7 @@ class Meeting {
3324
3393
  this.extension = extension;
3325
3394
  this.persistent = persistent;
3326
3395
  this.creationTime = creationTime;
3396
+ this.requireAuthorization = requireAuthorization;
3327
3397
 
3328
3398
  // Useful to compare instead of instanceof with minified code
3329
3399
  this.type = 'Meeting';
@@ -3334,8 +3404,32 @@ class Meeting {
3334
3404
  const [username, secret] = atob(this.guestSipAuthorization).split(':');
3335
3405
  return { username, secret };
3336
3406
  }
3407
+
3337
3408
  }
3338
3409
 
3410
+ //
3411
+
3412
+ const camelToUnderscore = (key ) => {
3413
+ if (typeof key !== 'string') {
3414
+ throw new Error('Input is not a string');
3415
+ }
3416
+ return key.charAt(0).toLowerCase() + key.substring(1).replace(/([A-Z])/g, '_$1').toLowerCase();
3417
+ };
3418
+
3419
+ //
3420
+
3421
+ const convertKeysFromCamelToUnderscore = (args ) => {
3422
+ if (!args || typeof args !== 'object' || Array.isArray(args)) {
3423
+ throw new Error('Input is not an object');
3424
+ }
3425
+
3426
+ return Object.keys(args).reduce((acc, key) => {
3427
+ acc[camelToUnderscore(key)] = typeof args[key] === 'object' && !Array.isArray(args[key])
3428
+ ? convertKeysFromCamelToUnderscore(args[key]) : args[key];
3429
+ return acc;
3430
+ }, {});
3431
+ };
3432
+
3339
3433
  /* */
3340
3434
 
3341
3435
  var confdMethods = (client , baseUrl ) => ({
@@ -3404,8 +3498,18 @@ var confdMethods = (client , baseUrl ) => ({
3404
3498
  getMyMeetings: () =>
3405
3499
  client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
3406
3500
 
3407
- createMyMeeting: (name , persistent ) =>
3408
- client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
3501
+ createMyMeeting: (args ) =>
3502
+ client
3503
+ .post(`${baseUrl}/users/me/meetings`, convertKeysFromCamelToUnderscore(args))
3504
+ .then(Meeting.parse),
3505
+
3506
+ updateMyMeeting: (meetingUuid , data ) =>
3507
+ client.put(
3508
+ `${baseUrl}/users/me/meetings/${meetingUuid}`,
3509
+ convertKeysFromCamelToUnderscore(data),
3510
+ null,
3511
+ ApiRequester.successResponseParser,
3512
+ ),
3409
3513
 
3410
3514
  deleteMyMeeting: (meetingUuid ) =>
3411
3515
  client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
@@ -3413,8 +3517,36 @@ var confdMethods = (client , baseUrl ) => ({
3413
3517
  getMeeting: (meetingUuid ) =>
3414
3518
  client.get(`${baseUrl}/meetings/${meetingUuid}`, null).then(Meeting.parse),
3415
3519
 
3520
+ meetingAuthorizations: (meetingUuid ) =>
3521
+ client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations`, null).then(MeetingAuthorization.parseMany),
3522
+
3523
+ meetingAuthorizationReject: (meetingUuid , authorizationUuid ) =>
3524
+ client.put(
3525
+ `${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/reject`,
3526
+ {},
3527
+ null,
3528
+ ApiRequester.successResponseParser,
3529
+ ),
3530
+
3531
+ meetingAuthorizationAccept: (meetingUuid , authorizationUuid ) =>
3532
+ client.put(
3533
+ `${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/accept`,
3534
+ {},
3535
+ null,
3536
+ ApiRequester.successResponseParser,
3537
+ ),
3538
+
3416
3539
  guestGetMeeting: (meetingUuid ) =>
3417
3540
  client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}`, null).then(Meeting.parse),
3541
+
3542
+ guestAuthorizationRequest: (userUuid , meetingUuid , username ) =>
3543
+ client
3544
+ .post(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations`, { guest_name: username })
3545
+ .then(MeetingAuthorization.parse),
3546
+
3547
+ guestAuthorizationCheck: (userUuid , meetingUuid , authorizationUuid ) =>
3548
+ client.get(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations/${authorizationUuid}`, null),
3549
+
3418
3550
  });
3419
3551
 
3420
3552
  //
@@ -5056,6 +5188,14 @@ var calldMethods = (client , baseUrl ) => ({
5056
5188
  getMeetingParticipantsAsUser: async (meetingUuid ) =>
5057
5189
  client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/participants`),
5058
5190
 
5191
+ banMeetingParticipant: (meetingUuid , participantUuid ) =>
5192
+ client.delete(
5193
+ `${baseUrl}/users/me/meetings/${meetingUuid}/participants/${participantUuid}`,
5194
+ null,
5195
+ null,
5196
+ ApiRequester.successResponseParser,
5197
+ ),
5198
+
5059
5199
  listTrunks: () => client.get(`${baseUrl}/trunks`),
5060
5200
 
5061
5201
  mute: (callId ) =>
@@ -7513,7 +7653,7 @@ class WebRTCClient extends Emitter {
7513
7653
  });
7514
7654
  }
7515
7655
 
7516
- changeAudioInputDevice(id , session , force ) {
7656
+ async changeAudioInputDevice(id , session , force ) {
7517
7657
  const currentId = this.getAudioDeviceId();
7518
7658
  logger$9.info('setting audio input device', { id, currentId, session: !!session });
7519
7659
 
@@ -7521,33 +7661,50 @@ class WebRTCClient extends Emitter {
7521
7661
  return null;
7522
7662
  }
7523
7663
 
7664
+ // in order to handle an audio track change for default devices
7665
+ // we need the actual id of the device (not 'default')
7666
+ let deviceId = id;
7667
+ if (id === 'default' && navigator.mediaDevices) {
7668
+ const devices = await navigator.mediaDevices.enumerateDevices();
7669
+ const defaultDevice = devices.find(device => device.deviceId === 'default');
7670
+ if (defaultDevice) {
7671
+ const deviceLabel = defaultDevice.label.replace('Default - ', '');
7672
+ const targetDevice = devices.find(device => device.label === deviceLabel);
7673
+ if (targetDevice) {
7674
+ deviceId = targetDevice.deviceId;
7675
+ if (!force && deviceId === currentId) {
7676
+ return null;
7677
+ }
7678
+ }
7679
+ }
7680
+ }
7681
+
7524
7682
  // let's update the local audio value
7525
7683
  if (this.audio) {
7526
7684
  this.audio = {
7527
7685
  deviceId: {
7528
- exact: id,
7686
+ exact: deviceId,
7529
7687
  },
7530
7688
  };
7531
7689
  }
7532
7690
 
7533
- if (session) {
7691
+ if (session && navigator.mediaDevices) {
7534
7692
  const sdh = session.sessionDescriptionHandler;
7535
7693
  const pc = sdh.peerConnection;
7536
7694
 
7537
- // $FlowFixMe
7538
- return navigator.mediaDevices.getUserMedia({ audio: { deviceId: { exact: id } } }).then(async stream => {
7539
- const audioTrack = stream.getAudioTracks()[0];
7540
- const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7695
+ const constraints = { audio: { deviceId: { exact: deviceId } } };
7696
+ const stream = await navigator.mediaDevices.getUserMedia(constraints);
7697
+ const audioTrack = stream.getAudioTracks()[0];
7698
+ const sender = pc && pc.getSenders().find(s => audioTrack && s && s.track && s.track.kind === audioTrack.kind);
7541
7699
 
7542
- if (sender) {
7543
- if (sender.track) {
7544
- audioTrack.enabled = sender.track.enabled;
7545
- }
7546
- sender.replaceTrack(audioTrack);
7700
+ if (sender) {
7701
+ if (sender.track) {
7702
+ audioTrack.enabled = sender.track.enabled;
7547
7703
  }
7704
+ sender.replaceTrack(audioTrack);
7705
+ }
7548
7706
 
7549
- return stream;
7550
- });
7707
+ return stream;
7551
7708
  }
7552
7709
  }
7553
7710
 
@@ -7567,14 +7724,14 @@ class WebRTCClient extends Emitter {
7567
7724
  return null;
7568
7725
  }
7569
7726
 
7570
- // let's update the local video value
7571
- if (this.video) {
7572
- this.video = {
7573
- deviceId: {
7574
- exact: id,
7575
- },
7576
- };
7577
- }
7727
+ // let's make sure we don't lose other video constraints settings -- width, height, frameRate...
7728
+ const videoObject = typeof this.video === 'object' ? this.video : {};
7729
+ this.video = {
7730
+ ...videoObject,
7731
+ deviceId: {
7732
+ exact: id,
7733
+ },
7734
+ };
7578
7735
  }
7579
7736
 
7580
7737
  changeSessionVideoInputDevice(id , session ) {
@@ -10852,6 +11009,7 @@ const AGENT_UNPAUSED = 'agent_unpaused';
10852
11009
  const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
10853
11010
  const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
10854
11011
  const MEETING_USER_PROGRESS = 'meeting_user_progress';
11012
+ const MEETING_USER_GUEST_AUTHORIZATION_CREATED = 'meeting_user_guest_authorization_created';
10855
11013
 
10856
11014
  const BLACKLIST_EVENTS = [
10857
11015
  CHAT_MESSAGE_SENT,
@@ -11203,6 +11361,7 @@ WebSocketClient.eventLists = [
11203
11361
  CONFERENCE_ADHOC_PARTICIPANT_LEFT,
11204
11362
  CONFERENCE_ADHOC_DELETED,
11205
11363
  MEETING_USER_PROGRESS,
11364
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED,
11206
11365
  ];
11207
11366
 
11208
11367
  var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
@@ -11274,6 +11433,7 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
11274
11433
  CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
11275
11434
  CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
11276
11435
  MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
11436
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED: MEETING_USER_GUEST_AUTHORIZATION_CREATED,
11277
11437
  HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
11278
11438
  'default': WebSocketClient
11279
11439
  });
@@ -11378,6 +11538,7 @@ class Participant extends Emitter {
11378
11538
 
11379
11539
 
11380
11540
 
11541
+
11381
11542
 
11382
11543
 
11383
11544
 
@@ -11395,6 +11556,7 @@ class Participant extends Emitter {
11395
11556
 
11396
11557
 
11397
11558
 
11559
+
11398
11560
 
11399
11561
  /**
11400
11562
  * @param room Room The room where the participant is
@@ -11418,6 +11580,7 @@ class Participant extends Emitter {
11418
11580
  this.screensharing = false;
11419
11581
  this.isOnHold = false;
11420
11582
  this.extra = extra;
11583
+ this.banned = false;
11421
11584
 
11422
11585
  this.ON_UPDATED = 'participant/ON_UPDATED';
11423
11586
  this.ON_START_TALKING = 'participant/ON_START_TALKING';
@@ -11434,6 +11597,7 @@ class Participant extends Emitter {
11434
11597
  this.ON_EXTRA_CHANGE = 'participant/ON_EXTRA_CHANGE';
11435
11598
  this.ON_HOLD = 'participant/ON_HOLD';
11436
11599
  this.ON_RESUME = 'participant/ON_RESUME';
11600
+ this.ON_BAN = 'participant/ON_BAN';
11437
11601
  }
11438
11602
 
11439
11603
  triggerEvent(name , ...args ) {
@@ -11474,6 +11638,10 @@ class Participant extends Emitter {
11474
11638
  status.extra = this.extra;
11475
11639
  break;
11476
11640
  }
11641
+ case this.ON_BAN: {
11642
+ status.banned = true;
11643
+ break;
11644
+ }
11477
11645
  }
11478
11646
 
11479
11647
  if (broadcast) {
@@ -11576,6 +11744,11 @@ class Participant extends Emitter {
11576
11744
  this.triggerUpdate(this.ON_RESUME, broadcast);
11577
11745
  }
11578
11746
 
11747
+ onBan(broadcast = true) {
11748
+ this.banned = true;
11749
+ this.triggerUpdate(this.ON_BAN, broadcast);
11750
+ }
11751
+
11579
11752
  getStatus() {
11580
11753
  return {
11581
11754
  callId: this.callId,
@@ -11622,6 +11795,10 @@ class Participant extends Emitter {
11622
11795
  }
11623
11796
  }
11624
11797
 
11798
+ if (status.banned) {
11799
+ this.onBan(false);
11800
+ }
11801
+
11625
11802
  // Poor man's object comparison
11626
11803
  if (typeof status.extra !== 'undefined' && JSON.stringify(this.extra) !== JSON.stringify(status.extra)) {
11627
11804
  this.extra = { ...this.extra, ...status.extra };
@@ -11649,6 +11826,28 @@ class Participant extends Emitter {
11649
11826
  this.streams = streams;
11650
11827
  this.videoStreams = streams;
11651
11828
  }
11829
+
11830
+ async ban(apiRequestDelay = null) {
11831
+ const { meetingUuid } = this.room;
11832
+ if (!meetingUuid) {
11833
+ throw new Error('Attempting to ban a participant without a `meetingUuid`');
11834
+ }
11835
+
11836
+ // this notifies all that someone is being banned
11837
+ this.onBan(true);
11838
+
11839
+ // this allows to delay the actual ban, in order for the banned participant as well as others to react to the situation
11840
+ if (apiRequestDelay) {
11841
+ await this.delay(apiRequestDelay);
11842
+ }
11843
+
11844
+ // proceed with the actual kick
11845
+ return getApiClient().calld.banMeetingParticipant(meetingUuid, this.callId);
11846
+ }
11847
+
11848
+ async delay(ms ) {
11849
+ return new Promise(resolve => setTimeout(resolve, ms));
11850
+ }
11652
11851
  }
11653
11852
 
11654
11853
  //
@@ -11801,7 +12000,7 @@ class Room$1 extends Emitter {
11801
12000
  logger$3.info('connecting to room', { extension, audioOnly, room: !!room });
11802
12001
 
11803
12002
  if (!room) {
11804
- await Wazo.Phone.connect();
12003
+ await Wazo.Phone.connect({ media: constraints });
11805
12004
 
11806
12005
  const withCamera = constraints && !!constraints.video;
11807
12006
 
@@ -12246,7 +12445,7 @@ class Room$1 extends Emitter {
12246
12445
  const participant = this._getParticipantFromCallId(status.callId);
12247
12446
 
12248
12447
  if (participant) {
12249
- // we're received, so no need to broadcast, hence the input false arg
12448
+ // we're receiving, so no need to broadcast
12250
12449
  participant.updateStatus(status, false);
12251
12450
  }
12252
12451
  break;
@@ -12513,7 +12712,7 @@ class SipRoom extends Room$1 {
12513
12712
  logger$2.info('connecting to sip room', { extension, audioOnly, room: !!room });
12514
12713
 
12515
12714
  if (!room) {
12516
- await Wazo.Phone.connect();
12715
+ await Wazo.Phone.connect({ media: constraints });
12517
12716
 
12518
12717
  const withCamera = constraints && !!constraints.video;
12519
12718
 
@@ -607,6 +607,7 @@ const AGENT_UNPAUSED = 'agent_unpaused';
607
607
  const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
608
608
  const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
609
609
  const MEETING_USER_PROGRESS = 'meeting_user_progress';
610
+ const MEETING_USER_GUEST_AUTHORIZATION_CREATED = 'meeting_user_guest_authorization_created';
610
611
 
611
612
  const BLACKLIST_EVENTS = [
612
613
  CHAT_MESSAGE_SENT,
@@ -958,6 +959,7 @@ WebSocketClient.eventLists = [
958
959
  CONFERENCE_ADHOC_PARTICIPANT_LEFT,
959
960
  CONFERENCE_ADHOC_DELETED,
960
961
  MEETING_USER_PROGRESS,
962
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED,
961
963
  ];
962
964
 
963
965
  var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
@@ -1029,6 +1031,7 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
1029
1031
  CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
1030
1032
  CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
1031
1033
  MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
1034
+ MEETING_USER_GUEST_AUTHORIZATION_CREATED: MEETING_USER_GUEST_AUTHORIZATION_CREATED,
1032
1035
  HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
1033
1036
  'default': WebSocketClient
1034
1037
  });