@wazo/sdk 0.38.13 → 0.38.16

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 (70) hide show
  1. package/dist/wazo-sdk.js +2 -2
  2. package/esm/__tests__/api-client.test.js +5 -0
  3. package/esm/__tests__/web-rtc-client.test.js +12 -0
  4. package/esm/api/dird.js +5 -0
  5. package/esm/api-client.js +5 -0
  6. package/esm/checker/Checker.js +12 -0
  7. package/esm/checker/checks/aor.js +5 -0
  8. package/esm/checker/checks/api.js +5 -0
  9. package/esm/checker/checks/index.js +12 -0
  10. package/esm/checker/checks/webrtc-transport.js +12 -0
  11. package/esm/checker/checks/webrtc.js +12 -0
  12. package/esm/domain/AdHocAPIConference.js +5 -0
  13. package/esm/domain/Features.js +5 -0
  14. package/esm/domain/Phone/CTIPhone.js +7 -0
  15. package/esm/index.js +22 -3
  16. package/esm/service/CallApi.js +5 -0
  17. package/esm/service/getApiClient.js +5 -0
  18. package/esm/simple/Auth.js +22 -3
  19. package/esm/simple/Configuration.js +22 -3
  20. package/esm/simple/Directory.js +5 -0
  21. package/esm/simple/Phone.js +22 -3
  22. package/esm/simple/index.js +22 -3
  23. package/esm/simple/room/LocalParticipant.js +5528 -5509
  24. package/esm/simple/room/Participant.js +5531 -5512
  25. package/esm/simple/room/RemoteParticipant.js +22 -3
  26. package/esm/simple/room/Room.js +22 -3
  27. package/esm/simple/room/SipRoom.js +22 -3
  28. package/esm/simple/room/Stream.js +22 -3
  29. package/esm/simple/room/__tests__/Participant.test.js +22 -3
  30. package/esm/simple/room/__tests__/RemoteParticipant.test.js +22 -3
  31. package/esm/simple/utils.js +22 -3
  32. package/esm/web-rtc-client.js +12 -0
  33. package/lib/__tests__/api-client.test.js +5 -0
  34. package/lib/__tests__/web-rtc-client.test.js +12 -0
  35. package/lib/api/dird.js +5 -0
  36. package/lib/api-client.js +5 -0
  37. package/lib/checker/Checker.js +12 -0
  38. package/lib/checker/checks/aor.js +5 -0
  39. package/lib/checker/checks/api.js +5 -0
  40. package/lib/checker/checks/index.js +12 -0
  41. package/lib/checker/checks/webrtc-transport.js +12 -0
  42. package/lib/checker/checks/webrtc.js +12 -0
  43. package/lib/domain/AdHocAPIConference.js +5 -0
  44. package/lib/domain/Features.js +5 -0
  45. package/lib/domain/Phone/CTIPhone.js +7 -0
  46. package/lib/index.js +22 -3
  47. package/lib/service/CallApi.js +5 -0
  48. package/lib/service/getApiClient.js +5 -0
  49. package/lib/simple/Auth.js +22 -3
  50. package/lib/simple/Configuration.js +22 -3
  51. package/lib/simple/Directory.js +5 -0
  52. package/lib/simple/Phone.js +22 -3
  53. package/lib/simple/index.js +22 -3
  54. package/lib/simple/room/LocalParticipant.js +6444 -6425
  55. package/lib/simple/room/Participant.js +6447 -6428
  56. package/lib/simple/room/RemoteParticipant.js +22 -3
  57. package/lib/simple/room/Room.js +22 -3
  58. package/lib/simple/room/SipRoom.js +22 -3
  59. package/lib/simple/room/Stream.js +22 -3
  60. package/lib/simple/room/__tests__/Participant.test.js +22 -3
  61. package/lib/simple/room/__tests__/RemoteParticipant.test.js +22 -3
  62. package/lib/simple/utils.js +22 -3
  63. package/lib/web-rtc-client.js +12 -0
  64. package/package.json +1 -1
  65. package/src/api/dird.js +5 -0
  66. package/src/domain/Phone/CTIPhone.js +2 -0
  67. package/src/domain/Phone/Phone.js +2 -0
  68. package/src/simple/room/Participant.js +7 -1
  69. package/src/simple/room/Room.js +2 -2
  70. package/src/web-rtc-client.js +7 -0
@@ -4606,6 +4606,8 @@ class CTIPhone extends Emitter {
4606
4606
  }
4607
4607
 
4608
4608
  useLocalVideoElement() {}
4609
+
4610
+ setMediaConstraints() {}
4609
4611
  }
4610
4612
 
4611
4613
  /* */
@@ -4783,6 +4785,11 @@ var dirdMethods = (client , baseUrl ) => ({
4783
4785
  listPersonalContacts: (queryParams = null) =>
4784
4786
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4785
4787
 
4788
+ fetchPersonalContact: (contactUuid ) =>
4789
+ client
4790
+ .get(`${baseUrl}/personal/${contactUuid}`)
4791
+ .then(Contact.parsePersonal),
4792
+
4786
4793
  addContact: (contact ) =>
4787
4794
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4788
4795
 
@@ -7196,6 +7203,12 @@ class WebRTCClient extends Emitter {
7196
7203
  };
7197
7204
 
7198
7205
  const ua = new UserAgent(webRTCConfiguration);
7206
+ if (ua.transport && ua.transport.connectPromise) {
7207
+ ua.transport.connectPromise.catch((e => {
7208
+ logger$8.warn('Transport connect error', e);
7209
+ }));
7210
+ }
7211
+
7199
7212
  ua.transport.onMessage = (rawMessage ) => {
7200
7213
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
7201
7214
 
@@ -7417,6 +7430,7 @@ class WebRTCClient extends Emitter {
7417
7430
  conference,
7418
7431
  audioOnly,
7419
7432
  },
7433
+ earlyMedia: true,
7420
7434
  };
7421
7435
 
7422
7436
  if (audioOnly) {
@@ -12431,10 +12445,15 @@ class Participant extends Emitter {
12431
12445
  }
12432
12446
  }
12433
12447
 
12434
- broadcastStatus(inboundStatus = null) {
12448
+ broadcastStatus(inboundStatus = null, sendReinvite ) {
12435
12449
  const status = inboundStatus || this.getStatus();
12436
12450
  logger$2.info('broadcasting participant status', { callId: this.callId, status });
12437
12451
 
12452
+ if (sendReinvite && !this.streams.length && Phone$1.phone) {
12453
+ // eslint-disable-next-line no-underscore-dangle
12454
+ Phone$1.phone._sendReinviteMessage(this.room.callSession, false);
12455
+ }
12456
+
12438
12457
  this.room.sendSignal({
12439
12458
  type: SIGNAL_TYPE_PARTICIPANT_UPDATE,
12440
12459
  origin: this.callId,
@@ -14484,7 +14503,7 @@ class Room extends Emitter {
14484
14503
  // callId is null, someone's requesting everyone's state;
14485
14504
  // or callId is set and matches ours;
14486
14505
  if (this.localParticipant && (!callId || callId === this.localParticipant.callId)) {
14487
- this.localParticipant.broadcastStatus();
14506
+ this.localParticipant.broadcastStatus(null, true);
14488
14507
  }
14489
14508
 
14490
14509
  // might as well update the requester's status
@@ -14586,7 +14605,7 @@ class Room extends Emitter {
14586
14605
 
14587
14606
  this.connected = true;
14588
14607
 
14589
- localParticipant.broadcastStatus();
14608
+ localParticipant.broadcastStatus(null, true);
14590
14609
 
14591
14610
  // we're in the room, now let's request everyone's status
14592
14611
  if (this.localParticipant) {
@@ -4606,6 +4606,8 @@ class CTIPhone extends Emitter {
4606
4606
  }
4607
4607
 
4608
4608
  useLocalVideoElement() {}
4609
+
4610
+ setMediaConstraints() {}
4609
4611
  }
4610
4612
 
4611
4613
  /* */
@@ -4783,6 +4785,11 @@ var dirdMethods = (client , baseUrl ) => ({
4783
4785
  listPersonalContacts: (queryParams = null) =>
4784
4786
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4785
4787
 
4788
+ fetchPersonalContact: (contactUuid ) =>
4789
+ client
4790
+ .get(`${baseUrl}/personal/${contactUuid}`)
4791
+ .then(Contact.parsePersonal),
4792
+
4786
4793
  addContact: (contact ) =>
4787
4794
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4788
4795
 
@@ -7196,6 +7203,12 @@ class WebRTCClient extends Emitter {
7196
7203
  };
7197
7204
 
7198
7205
  const ua = new UserAgent(webRTCConfiguration);
7206
+ if (ua.transport && ua.transport.connectPromise) {
7207
+ ua.transport.connectPromise.catch((e => {
7208
+ logger$8.warn('Transport connect error', e);
7209
+ }));
7210
+ }
7211
+
7199
7212
  ua.transport.onMessage = (rawMessage ) => {
7200
7213
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
7201
7214
 
@@ -7417,6 +7430,7 @@ class WebRTCClient extends Emitter {
7417
7430
  conference,
7418
7431
  audioOnly,
7419
7432
  },
7433
+ earlyMedia: true,
7420
7434
  };
7421
7435
 
7422
7436
  if (audioOnly) {
@@ -12431,10 +12445,15 @@ class Participant extends Emitter {
12431
12445
  }
12432
12446
  }
12433
12447
 
12434
- broadcastStatus(inboundStatus = null) {
12448
+ broadcastStatus(inboundStatus = null, sendReinvite ) {
12435
12449
  const status = inboundStatus || this.getStatus();
12436
12450
  logger$2.info('broadcasting participant status', { callId: this.callId, status });
12437
12451
 
12452
+ if (sendReinvite && !this.streams.length && Phone$1.phone) {
12453
+ // eslint-disable-next-line no-underscore-dangle
12454
+ Phone$1.phone._sendReinviteMessage(this.room.callSession, false);
12455
+ }
12456
+
12438
12457
  this.room.sendSignal({
12439
12458
  type: SIGNAL_TYPE_PARTICIPANT_UPDATE,
12440
12459
  origin: this.callId,
@@ -14495,7 +14514,7 @@ class Room extends Emitter {
14495
14514
  // callId is null, someone's requesting everyone's state;
14496
14515
  // or callId is set and matches ours;
14497
14516
  if (this.localParticipant && (!callId || callId === this.localParticipant.callId)) {
14498
- this.localParticipant.broadcastStatus();
14517
+ this.localParticipant.broadcastStatus(null, true);
14499
14518
  }
14500
14519
 
14501
14520
  // might as well update the requester's status
@@ -14597,7 +14616,7 @@ class Room extends Emitter {
14597
14616
 
14598
14617
  this.connected = true;
14599
14618
 
14600
- localParticipant.broadcastStatus();
14619
+ localParticipant.broadcastStatus(null, true);
14601
14620
 
14602
14621
  // we're in the room, now let's request everyone's status
14603
14622
  if (this.localParticipant) {
@@ -4606,6 +4606,8 @@ class CTIPhone extends Emitter {
4606
4606
  }
4607
4607
 
4608
4608
  useLocalVideoElement() {}
4609
+
4610
+ setMediaConstraints() {}
4609
4611
  }
4610
4612
 
4611
4613
  /* */
@@ -4783,6 +4785,11 @@ var dirdMethods = (client , baseUrl ) => ({
4783
4785
  listPersonalContacts: (queryParams = null) =>
4784
4786
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4785
4787
 
4788
+ fetchPersonalContact: (contactUuid ) =>
4789
+ client
4790
+ .get(`${baseUrl}/personal/${contactUuid}`)
4791
+ .then(Contact.parsePersonal),
4792
+
4786
4793
  addContact: (contact ) =>
4787
4794
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4788
4795
 
@@ -7196,6 +7203,12 @@ class WebRTCClient extends Emitter {
7196
7203
  };
7197
7204
 
7198
7205
  const ua = new UserAgent(webRTCConfiguration);
7206
+ if (ua.transport && ua.transport.connectPromise) {
7207
+ ua.transport.connectPromise.catch((e => {
7208
+ logger$8.warn('Transport connect error', e);
7209
+ }));
7210
+ }
7211
+
7199
7212
  ua.transport.onMessage = (rawMessage ) => {
7200
7213
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
7201
7214
 
@@ -7417,6 +7430,7 @@ class WebRTCClient extends Emitter {
7417
7430
  conference,
7418
7431
  audioOnly,
7419
7432
  },
7433
+ earlyMedia: true,
7420
7434
  };
7421
7435
 
7422
7436
  if (audioOnly) {
@@ -12292,10 +12306,15 @@ class Participant extends Emitter {
12292
12306
  }
12293
12307
  }
12294
12308
 
12295
- broadcastStatus(inboundStatus = null) {
12309
+ broadcastStatus(inboundStatus = null, sendReinvite ) {
12296
12310
  const status = inboundStatus || this.getStatus();
12297
12311
  logger$3.info('broadcasting participant status', { callId: this.callId, status });
12298
12312
 
12313
+ if (sendReinvite && !this.streams.length && Phone$1.phone) {
12314
+ // eslint-disable-next-line no-underscore-dangle
12315
+ Phone$1.phone._sendReinviteMessage(this.room.callSession, false);
12316
+ }
12317
+
12299
12318
  this.room.sendSignal({
12300
12319
  type: SIGNAL_TYPE_PARTICIPANT_UPDATE,
12301
12320
  origin: this.callId,
@@ -12938,7 +12957,7 @@ class Room$1 extends Emitter {
12938
12957
  // callId is null, someone's requesting everyone's state;
12939
12958
  // or callId is set and matches ours;
12940
12959
  if (this.localParticipant && (!callId || callId === this.localParticipant.callId)) {
12941
- this.localParticipant.broadcastStatus();
12960
+ this.localParticipant.broadcastStatus(null, true);
12942
12961
  }
12943
12962
 
12944
12963
  // might as well update the requester's status
@@ -13040,7 +13059,7 @@ class Room$1 extends Emitter {
13040
13059
 
13041
13060
  this.connected = true;
13042
13061
 
13043
- localParticipant.broadcastStatus();
13062
+ localParticipant.broadcastStatus(null, true);
13044
13063
 
13045
13064
  // we're in the room, now let's request everyone's status
13046
13065
  if (this.localParticipant) {
@@ -4606,6 +4606,8 @@ class CTIPhone extends Emitter {
4606
4606
  }
4607
4607
 
4608
4608
  useLocalVideoElement() {}
4609
+
4610
+ setMediaConstraints() {}
4609
4611
  }
4610
4612
 
4611
4613
  /* */
@@ -4783,6 +4785,11 @@ var dirdMethods = (client , baseUrl ) => ({
4783
4785
  listPersonalContacts: (queryParams = null) =>
4784
4786
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4785
4787
 
4788
+ fetchPersonalContact: (contactUuid ) =>
4789
+ client
4790
+ .get(`${baseUrl}/personal/${contactUuid}`)
4791
+ .then(Contact.parsePersonal),
4792
+
4786
4793
  addContact: (contact ) =>
4787
4794
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4788
4795
 
@@ -7196,6 +7203,12 @@ class WebRTCClient extends Emitter {
7196
7203
  };
7197
7204
 
7198
7205
  const ua = new UserAgent(webRTCConfiguration);
7206
+ if (ua.transport && ua.transport.connectPromise) {
7207
+ ua.transport.connectPromise.catch((e => {
7208
+ logger$8.warn('Transport connect error', e);
7209
+ }));
7210
+ }
7211
+
7199
7212
  ua.transport.onMessage = (rawMessage ) => {
7200
7213
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
7201
7214
 
@@ -7417,6 +7430,7 @@ class WebRTCClient extends Emitter {
7417
7430
  conference,
7418
7431
  audioOnly,
7419
7432
  },
7433
+ earlyMedia: true,
7420
7434
  };
7421
7435
 
7422
7436
  if (audioOnly) {
@@ -12292,10 +12306,15 @@ class Participant extends Emitter {
12292
12306
  }
12293
12307
  }
12294
12308
 
12295
- broadcastStatus(inboundStatus = null) {
12309
+ broadcastStatus(inboundStatus = null, sendReinvite ) {
12296
12310
  const status = inboundStatus || this.getStatus();
12297
12311
  logger$3.info('broadcasting participant status', { callId: this.callId, status });
12298
12312
 
12313
+ if (sendReinvite && !this.streams.length && Phone$1.phone) {
12314
+ // eslint-disable-next-line no-underscore-dangle
12315
+ Phone$1.phone._sendReinviteMessage(this.room.callSession, false);
12316
+ }
12317
+
12299
12318
  this.room.sendSignal({
12300
12319
  type: SIGNAL_TYPE_PARTICIPANT_UPDATE,
12301
12320
  origin: this.callId,
@@ -12938,7 +12957,7 @@ class Room$1 extends Emitter {
12938
12957
  // callId is null, someone's requesting everyone's state;
12939
12958
  // or callId is set and matches ours;
12940
12959
  if (this.localParticipant && (!callId || callId === this.localParticipant.callId)) {
12941
- this.localParticipant.broadcastStatus();
12960
+ this.localParticipant.broadcastStatus(null, true);
12942
12961
  }
12943
12962
 
12944
12963
  // might as well update the requester's status
@@ -13040,7 +13059,7 @@ class Room$1 extends Emitter {
13040
13059
 
13041
13060
  this.connected = true;
13042
13061
 
13043
- localParticipant.broadcastStatus();
13062
+ localParticipant.broadcastStatus(null, true);
13044
13063
 
13045
13064
  // we're in the room, now let's request everyone's status
13046
13065
  if (this.localParticipant) {
@@ -4606,6 +4606,8 @@ class CTIPhone extends Emitter {
4606
4606
  }
4607
4607
 
4608
4608
  useLocalVideoElement() {}
4609
+
4610
+ setMediaConstraints() {}
4609
4611
  }
4610
4612
 
4611
4613
  /* */
@@ -4783,6 +4785,11 @@ var dirdMethods = (client , baseUrl ) => ({
4783
4785
  listPersonalContacts: (queryParams = null) =>
4784
4786
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4785
4787
 
4788
+ fetchPersonalContact: (contactUuid ) =>
4789
+ client
4790
+ .get(`${baseUrl}/personal/${contactUuid}`)
4791
+ .then(Contact.parsePersonal),
4792
+
4786
4793
  addContact: (contact ) =>
4787
4794
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4788
4795
 
@@ -7196,6 +7203,12 @@ class WebRTCClient extends Emitter {
7196
7203
  };
7197
7204
 
7198
7205
  const ua = new UserAgent(webRTCConfiguration);
7206
+ if (ua.transport && ua.transport.connectPromise) {
7207
+ ua.transport.connectPromise.catch((e => {
7208
+ logger$8.warn('Transport connect error', e);
7209
+ }));
7210
+ }
7211
+
7199
7212
  ua.transport.onMessage = (rawMessage ) => {
7200
7213
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
7201
7214
 
@@ -7417,6 +7430,7 @@ class WebRTCClient extends Emitter {
7417
7430
  conference,
7418
7431
  audioOnly,
7419
7432
  },
7433
+ earlyMedia: true,
7420
7434
  };
7421
7435
 
7422
7436
  if (audioOnly) {
@@ -12292,10 +12306,15 @@ class Participant extends Emitter {
12292
12306
  }
12293
12307
  }
12294
12308
 
12295
- broadcastStatus(inboundStatus = null) {
12309
+ broadcastStatus(inboundStatus = null, sendReinvite ) {
12296
12310
  const status = inboundStatus || this.getStatus();
12297
12311
  logger$3.info('broadcasting participant status', { callId: this.callId, status });
12298
12312
 
12313
+ if (sendReinvite && !this.streams.length && Phone$1.phone) {
12314
+ // eslint-disable-next-line no-underscore-dangle
12315
+ Phone$1.phone._sendReinviteMessage(this.room.callSession, false);
12316
+ }
12317
+
12299
12318
  this.room.sendSignal({
12300
12319
  type: SIGNAL_TYPE_PARTICIPANT_UPDATE,
12301
12320
  origin: this.callId,
@@ -12938,7 +12957,7 @@ class Room$1 extends Emitter {
12938
12957
  // callId is null, someone's requesting everyone's state;
12939
12958
  // or callId is set and matches ours;
12940
12959
  if (this.localParticipant && (!callId || callId === this.localParticipant.callId)) {
12941
- this.localParticipant.broadcastStatus();
12960
+ this.localParticipant.broadcastStatus(null, true);
12942
12961
  }
12943
12962
 
12944
12963
  // might as well update the requester's status
@@ -13040,7 +13059,7 @@ class Room$1 extends Emitter {
13040
13059
 
13041
13060
  this.connected = true;
13042
13061
 
13043
- localParticipant.broadcastStatus();
13062
+ localParticipant.broadcastStatus(null, true);
13044
13063
 
13045
13064
  // we're in the room, now let's request everyone's status
13046
13065
  if (this.localParticipant) {
@@ -4606,6 +4606,8 @@ class CTIPhone extends Emitter {
4606
4606
  }
4607
4607
 
4608
4608
  useLocalVideoElement() {}
4609
+
4610
+ setMediaConstraints() {}
4609
4611
  }
4610
4612
 
4611
4613
  /* */
@@ -4783,6 +4785,11 @@ var dirdMethods = (client , baseUrl ) => ({
4783
4785
  listPersonalContacts: (queryParams = null) =>
4784
4786
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4785
4787
 
4788
+ fetchPersonalContact: (contactUuid ) =>
4789
+ client
4790
+ .get(`${baseUrl}/personal/${contactUuid}`)
4791
+ .then(Contact.parsePersonal),
4792
+
4786
4793
  addContact: (contact ) =>
4787
4794
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4788
4795
 
@@ -7196,6 +7203,12 @@ class WebRTCClient extends Emitter {
7196
7203
  };
7197
7204
 
7198
7205
  const ua = new UserAgent(webRTCConfiguration);
7206
+ if (ua.transport && ua.transport.connectPromise) {
7207
+ ua.transport.connectPromise.catch((e => {
7208
+ logger$8.warn('Transport connect error', e);
7209
+ }));
7210
+ }
7211
+
7199
7212
  ua.transport.onMessage = (rawMessage ) => {
7200
7213
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
7201
7214
 
@@ -7417,6 +7430,7 @@ class WebRTCClient extends Emitter {
7417
7430
  conference,
7418
7431
  audioOnly,
7419
7432
  },
7433
+ earlyMedia: true,
7420
7434
  };
7421
7435
 
7422
7436
  if (audioOnly) {
@@ -12292,10 +12306,15 @@ class Participant extends Emitter {
12292
12306
  }
12293
12307
  }
12294
12308
 
12295
- broadcastStatus(inboundStatus = null) {
12309
+ broadcastStatus(inboundStatus = null, sendReinvite ) {
12296
12310
  const status = inboundStatus || this.getStatus();
12297
12311
  logger$3.info('broadcasting participant status', { callId: this.callId, status });
12298
12312
 
12313
+ if (sendReinvite && !this.streams.length && Phone$1.phone) {
12314
+ // eslint-disable-next-line no-underscore-dangle
12315
+ Phone$1.phone._sendReinviteMessage(this.room.callSession, false);
12316
+ }
12317
+
12299
12318
  this.room.sendSignal({
12300
12319
  type: SIGNAL_TYPE_PARTICIPANT_UPDATE,
12301
12320
  origin: this.callId,
@@ -12938,7 +12957,7 @@ class Room$1 extends Emitter {
12938
12957
  // callId is null, someone's requesting everyone's state;
12939
12958
  // or callId is set and matches ours;
12940
12959
  if (this.localParticipant && (!callId || callId === this.localParticipant.callId)) {
12941
- this.localParticipant.broadcastStatus();
12960
+ this.localParticipant.broadcastStatus(null, true);
12942
12961
  }
12943
12962
 
12944
12963
  // might as well update the requester's status
@@ -13040,7 +13059,7 @@ class Room$1 extends Emitter {
13040
13059
 
13041
13060
  this.connected = true;
13042
13061
 
13043
- localParticipant.broadcastStatus();
13062
+ localParticipant.broadcastStatus(null, true);
13044
13063
 
13045
13064
  // we're in the room, now let's request everyone's status
13046
13065
  if (this.localParticipant) {
@@ -4606,6 +4606,8 @@ class CTIPhone extends Emitter {
4606
4606
  }
4607
4607
 
4608
4608
  useLocalVideoElement() {}
4609
+
4610
+ setMediaConstraints() {}
4609
4611
  }
4610
4612
 
4611
4613
  /* */
@@ -4783,6 +4785,11 @@ var dirdMethods = (client , baseUrl ) => ({
4783
4785
  listPersonalContacts: (queryParams = null) =>
4784
4786
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4785
4787
 
4788
+ fetchPersonalContact: (contactUuid ) =>
4789
+ client
4790
+ .get(`${baseUrl}/personal/${contactUuid}`)
4791
+ .then(Contact.parsePersonal),
4792
+
4786
4793
  addContact: (contact ) =>
4787
4794
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4788
4795
 
@@ -7196,6 +7203,12 @@ class WebRTCClient extends Emitter {
7196
7203
  };
7197
7204
 
7198
7205
  const ua = new UserAgent(webRTCConfiguration);
7206
+ if (ua.transport && ua.transport.connectPromise) {
7207
+ ua.transport.connectPromise.catch((e => {
7208
+ logger$8.warn('Transport connect error', e);
7209
+ }));
7210
+ }
7211
+
7199
7212
  ua.transport.onMessage = (rawMessage ) => {
7200
7213
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
7201
7214
 
@@ -7417,6 +7430,7 @@ class WebRTCClient extends Emitter {
7417
7430
  conference,
7418
7431
  audioOnly,
7419
7432
  },
7433
+ earlyMedia: true,
7420
7434
  };
7421
7435
 
7422
7436
  if (audioOnly) {
@@ -12292,10 +12306,15 @@ class Participant extends Emitter {
12292
12306
  }
12293
12307
  }
12294
12308
 
12295
- broadcastStatus(inboundStatus = null) {
12309
+ broadcastStatus(inboundStatus = null, sendReinvite ) {
12296
12310
  const status = inboundStatus || this.getStatus();
12297
12311
  logger$3.info('broadcasting participant status', { callId: this.callId, status });
12298
12312
 
12313
+ if (sendReinvite && !this.streams.length && Phone$1.phone) {
12314
+ // eslint-disable-next-line no-underscore-dangle
12315
+ Phone$1.phone._sendReinviteMessage(this.room.callSession, false);
12316
+ }
12317
+
12299
12318
  this.room.sendSignal({
12300
12319
  type: SIGNAL_TYPE_PARTICIPANT_UPDATE,
12301
12320
  origin: this.callId,
@@ -12938,7 +12957,7 @@ class Room$1 extends Emitter {
12938
12957
  // callId is null, someone's requesting everyone's state;
12939
12958
  // or callId is set and matches ours;
12940
12959
  if (this.localParticipant && (!callId || callId === this.localParticipant.callId)) {
12941
- this.localParticipant.broadcastStatus();
12960
+ this.localParticipant.broadcastStatus(null, true);
12942
12961
  }
12943
12962
 
12944
12963
  // might as well update the requester's status
@@ -13040,7 +13059,7 @@ class Room$1 extends Emitter {
13040
13059
 
13041
13060
  this.connected = true;
13042
13061
 
13043
- localParticipant.broadcastStatus();
13062
+ localParticipant.broadcastStatus(null, true);
13044
13063
 
13045
13064
  // we're in the room, now let's request everyone's status
13046
13065
  if (this.localParticipant) {
@@ -4529,6 +4529,11 @@ var dirdMethods = (client , baseUrl ) => ({
4529
4529
  listPersonalContacts: (queryParams = null) =>
4530
4530
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4531
4531
 
4532
+ fetchPersonalContact: (contactUuid ) =>
4533
+ client
4534
+ .get(`${baseUrl}/personal/${contactUuid}`)
4535
+ .then(Contact.parsePersonal),
4536
+
4532
4537
  addContact: (contact ) =>
4533
4538
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4534
4539
 
@@ -5786,6 +5791,12 @@ class WebRTCClient extends Emitter {
5786
5791
  };
5787
5792
 
5788
5793
  const ua = new UserAgent(webRTCConfiguration);
5794
+ if (ua.transport && ua.transport.connectPromise) {
5795
+ ua.transport.connectPromise.catch((e => {
5796
+ logger.warn('Transport connect error', e);
5797
+ }));
5798
+ }
5799
+
5789
5800
  ua.transport.onMessage = (rawMessage ) => {
5790
5801
  const message = Parser.parseMessage(rawMessage, ua.transport.logger);
5791
5802
 
@@ -6007,6 +6018,7 @@ class WebRTCClient extends Emitter {
6007
6018
  conference,
6008
6019
  audioOnly,
6009
6020
  },
6021
+ earlyMedia: true,
6010
6022
  };
6011
6023
 
6012
6024
  if (audioOnly) {
@@ -3958,6 +3958,11 @@ var dirdMethods = (client , baseUrl ) => ({
3958
3958
  listPersonalContacts: (queryParams = null) =>
3959
3959
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
3960
3960
 
3961
+ fetchPersonalContact: (contactUuid ) =>
3962
+ client
3963
+ .get(`${baseUrl}/personal/${contactUuid}`)
3964
+ .then(Contact.parsePersonal),
3965
+
3961
3966
  addContact: (contact ) =>
3962
3967
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
3963
3968
 
@@ -4538,6 +4538,11 @@ var dirdMethods = (client , baseUrl ) => ({
4538
4538
  listPersonalContacts: (queryParams = null) =>
4539
4539
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4540
4540
 
4541
+ fetchPersonalContact: (contactUuid ) =>
4542
+ client
4543
+ .get(`${baseUrl}/personal/${contactUuid}`)
4544
+ .then(Contact.parsePersonal),
4545
+
4541
4546
  addContact: (contact ) =>
4542
4547
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4543
4548
 
@@ -5792,6 +5797,12 @@ class WebRTCClient extends Emitter {
5792
5797
  };
5793
5798
 
5794
5799
  const ua = new userAgent.UserAgent(webRTCConfiguration);
5800
+ if (ua.transport && ua.transport.connectPromise) {
5801
+ ua.transport.connectPromise.catch((e => {
5802
+ logger.warn('Transport connect error', e);
5803
+ }));
5804
+ }
5805
+
5795
5806
  ua.transport.onMessage = (rawMessage ) => {
5796
5807
  const message = parser.Parser.parseMessage(rawMessage, ua.transport.logger);
5797
5808
 
@@ -6013,6 +6024,7 @@ class WebRTCClient extends Emitter {
6013
6024
  conference,
6014
6025
  audioOnly,
6015
6026
  },
6027
+ earlyMedia: true,
6016
6028
  };
6017
6029
 
6018
6030
  if (audioOnly) {
package/lib/api/dird.js CHANGED
@@ -1476,6 +1476,11 @@ var dird = (client , baseUrl ) => ({
1476
1476
  listPersonalContacts: (queryParams = null) =>
1477
1477
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
1478
1478
 
1479
+ fetchPersonalContact: (contactUuid ) =>
1480
+ client
1481
+ .get(`${baseUrl}/personal/${contactUuid}`)
1482
+ .then(Contact.parsePersonal),
1483
+
1479
1484
  addContact: (contact ) =>
1480
1485
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
1481
1486
 
package/lib/api-client.js CHANGED
@@ -3958,6 +3958,11 @@ var dirdMethods = (client , baseUrl ) => ({
3958
3958
  listPersonalContacts: (queryParams = null) =>
3959
3959
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
3960
3960
 
3961
+ fetchPersonalContact: (contactUuid ) =>
3962
+ client
3963
+ .get(`${baseUrl}/personal/${contactUuid}`)
3964
+ .then(Contact.parsePersonal),
3965
+
3961
3966
  addContact: (contact ) =>
3962
3967
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
3963
3968
 
@@ -4006,6 +4006,11 @@ var dirdMethods = (client , baseUrl ) => ({
4006
4006
  listPersonalContacts: (queryParams = null) =>
4007
4007
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
4008
4008
 
4009
+ fetchPersonalContact: (contactUuid ) =>
4010
+ client
4011
+ .get(`${baseUrl}/personal/${contactUuid}`)
4012
+ .then(Contact.parsePersonal),
4013
+
4009
4014
  addContact: (contact ) =>
4010
4015
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
4011
4016
 
@@ -6380,6 +6385,12 @@ class WebRTCClient extends Emitter {
6380
6385
  };
6381
6386
 
6382
6387
  const ua = new userAgent.UserAgent(webRTCConfiguration);
6388
+ if (ua.transport && ua.transport.connectPromise) {
6389
+ ua.transport.connectPromise.catch((e => {
6390
+ logger$1.warn('Transport connect error', e);
6391
+ }));
6392
+ }
6393
+
6383
6394
  ua.transport.onMessage = (rawMessage ) => {
6384
6395
  const message = parser.Parser.parseMessage(rawMessage, ua.transport.logger);
6385
6396
 
@@ -6601,6 +6612,7 @@ class WebRTCClient extends Emitter {
6601
6612
  conference,
6602
6613
  audioOnly,
6603
6614
  },
6615
+ earlyMedia: true,
6604
6616
  };
6605
6617
 
6606
6618
  if (audioOnly) {
@@ -3958,6 +3958,11 @@ var dirdMethods = (client , baseUrl ) => ({
3958
3958
  listPersonalContacts: (queryParams = null) =>
3959
3959
  client.get(`${baseUrl}/personal`, queryParams).then(response => Contact.parseManyPersonal(response.items)),
3960
3960
 
3961
+ fetchPersonalContact: (contactUuid ) =>
3962
+ client
3963
+ .get(`${baseUrl}/personal/${contactUuid}`)
3964
+ .then(Contact.parsePersonal),
3965
+
3961
3966
  addContact: (contact ) =>
3962
3967
  client.post(`${baseUrl}/personal`, getContactPayload(contact)).then(Contact.parsePersonal),
3963
3968