@wazo/sdk 0.37.18 → 0.37.19

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 (158) hide show
  1. package/dist/wazo-sdk.js +13 -5
  2. package/esm/__tests__/api-client.test.js +9 -5
  3. package/esm/__tests__/web-rtc-client.test.js +10 -6
  4. package/esm/api/agentd.js +2 -2
  5. package/esm/api/amid.js +2 -2
  6. package/esm/api/application.js +2 -2
  7. package/esm/api/auth.js +4 -3
  8. package/esm/api/call-logd.js +4 -4
  9. package/esm/api/calld.js +2 -2
  10. package/esm/api/chatd.js +2 -2
  11. package/esm/api/confd.js +8 -4
  12. package/esm/api/ctid-ng.js +2 -2
  13. package/esm/api/dird.js +2 -2
  14. package/esm/api/webhookd.js +2 -2
  15. package/esm/api-client.js +11 -7
  16. package/esm/checker/Checker.js +11 -7
  17. package/esm/checker/checks/aor.js +11 -7
  18. package/esm/checker/checks/api.js +11 -7
  19. package/esm/checker/checks/ice-ipv4.js +1 -1
  20. package/esm/checker/checks/index.js +12 -8
  21. package/esm/checker/checks/symmetric-nat.js +1 -1
  22. package/esm/checker/checks/wazo-websocket.js +2 -2
  23. package/esm/checker/checks/webrtc-transport.js +12 -8
  24. package/esm/checker/checks/webrtc.js +12 -8
  25. package/esm/domain/AdHocAPIConference.js +11 -7
  26. package/esm/domain/Agent.js +1 -1
  27. package/esm/domain/BadResponse.js +1 -1
  28. package/esm/domain/Call.js +1 -1
  29. package/esm/domain/CallLog.js +3 -3
  30. package/esm/domain/CallSession.js +1 -1
  31. package/esm/domain/ChatMessage.js +1 -1
  32. package/esm/domain/ChatRoom.js +1 -1
  33. package/esm/domain/Contact.js +2 -1
  34. package/esm/domain/Country.js +1 -1
  35. package/esm/domain/Device/DebugDevice.js +1 -1
  36. package/esm/domain/ExternalApp.js +1 -1
  37. package/esm/domain/Features.js +11 -6
  38. package/esm/domain/ForwardOption.js +2 -1
  39. package/esm/domain/IndirectTransfer.js +1 -1
  40. package/esm/domain/Line.js +1 -1
  41. package/esm/domain/Meeting.js +7 -3
  42. package/esm/domain/NotificationOptions.js +1 -1
  43. package/esm/domain/Phone/CTIPhone.js +12 -7
  44. package/esm/domain/Phone/WebRTCPhone.js +3 -2
  45. package/esm/domain/Profile.js +2 -1
  46. package/esm/domain/Recording.js +2 -2
  47. package/esm/domain/Relocation.js +1 -1
  48. package/esm/domain/Room.js +1 -1
  49. package/esm/domain/ServerError.js +1 -1
  50. package/esm/domain/Session.js +2 -2
  51. package/esm/domain/SipLine.js +1 -1
  52. package/esm/domain/Subscription.js +1 -1
  53. package/esm/domain/SwitchboardCall.js +1 -1
  54. package/esm/domain/Voicemail.js +1 -1
  55. package/esm/domain/__tests__/CallLog.test.js +2 -2
  56. package/esm/index.js +12 -8
  57. package/esm/lib/WazoSessionDescriptionHandler.js +3 -2
  58. package/esm/service/CallApi.js +11 -7
  59. package/esm/service/IssueReporter.js +2 -2
  60. package/esm/service/__tests__/IssueReporter.test.js +1 -1
  61. package/esm/service/getApiClient.js +12 -7
  62. package/esm/simple/Auth.js +12 -7
  63. package/esm/simple/Configuration.js +11 -7
  64. package/esm/simple/Directory.js +10 -6
  65. package/esm/simple/Phone.js +11 -7
  66. package/esm/simple/Websocket.js +2 -2
  67. package/esm/simple/index.js +11 -7
  68. package/esm/simple/room/LocalParticipant.js +24 -24
  69. package/esm/simple/room/Participant.js +23 -21
  70. package/esm/simple/room/RemoteParticipant.js +25 -25
  71. package/esm/simple/room/Room.js +24 -21
  72. package/esm/simple/room/SipRoom.js +12 -10
  73. package/esm/simple/room/Stream.js +12 -10
  74. package/esm/simple/room/__tests__/RemoteParticipant.test.js +10 -6
  75. package/esm/simple/utils.js +10 -6
  76. package/esm/utils/Emitter.js +1 -1
  77. package/esm/utils/Heartbeat.js +1 -1
  78. package/esm/utils/__tests__/api-requester.test.js +1 -1
  79. package/esm/utils/api-requester.js +3 -2
  80. package/esm/utils/compare-version.js +1 -1
  81. package/esm/utils/isMobile.js +1 -1
  82. package/esm/utils/new-from.js +1 -1
  83. package/esm/utils/once.js +1 -1
  84. package/esm/utils/update-from.js +1 -1
  85. package/esm/web-rtc-client.js +13 -8
  86. package/esm/websocket-client.js +3 -2
  87. package/lib/__tests__/api-client.test.js +18 -14
  88. package/lib/__tests__/web-rtc-client.test.js +27 -23
  89. package/lib/api/agentd.js +2 -2
  90. package/lib/api/amid.js +2 -2
  91. package/lib/api/application.js +2 -2
  92. package/lib/api/auth.js +3 -3
  93. package/lib/api/call-logd.js +9 -9
  94. package/lib/api/calld.js +5 -5
  95. package/lib/api/chatd.js +3 -3
  96. package/lib/api/confd.js +8 -4
  97. package/lib/api/ctid-ng.js +5 -5
  98. package/lib/api/dird.js +2 -2
  99. package/lib/api/webhookd.js +2 -2
  100. package/lib/api-client.js +18 -14
  101. package/lib/checker/Checker.js +28 -24
  102. package/lib/checker/checks/aor.js +18 -14
  103. package/lib/checker/checks/api.js +18 -14
  104. package/lib/checker/checks/index.js +28 -24
  105. package/lib/checker/checks/wazo-websocket.js +4 -4
  106. package/lib/checker/checks/webrtc-transport.js +27 -23
  107. package/lib/checker/checks/webrtc.js +27 -23
  108. package/lib/domain/AdHocAPIConference.js +18 -14
  109. package/lib/domain/Call.js +1 -1
  110. package/lib/domain/CallLog.js +7 -7
  111. package/lib/domain/ChatMessage.js +1 -1
  112. package/lib/domain/Contact.js +1 -1
  113. package/lib/domain/Features.js +19 -15
  114. package/lib/domain/ForwardOption.js +1 -1
  115. package/lib/domain/Meeting.js +6 -2
  116. package/lib/domain/Phone/CTIPhone.js +20 -16
  117. package/lib/domain/Phone/WebRTCPhone.js +4 -4
  118. package/lib/domain/Profile.js +1 -1
  119. package/lib/domain/Recording.js +3 -3
  120. package/lib/domain/Voicemail.js +1 -1
  121. package/lib/domain/__tests__/Call.test.js +1 -1
  122. package/lib/domain/__tests__/CallLog.test.js +13 -13
  123. package/lib/domain/__tests__/Voicemail.test.js +1 -1
  124. package/lib/index.js +31 -27
  125. package/lib/lib/WazoSessionDescriptionHandler.js +7 -7
  126. package/lib/service/CallApi.js +18 -14
  127. package/lib/service/IssueReporter.js +2 -2
  128. package/lib/service/__tests__/IssueReporter.test.js +2 -2
  129. package/lib/service/getApiClient.js +19 -15
  130. package/lib/simple/Auth.js +30 -26
  131. package/lib/simple/Configuration.js +29 -25
  132. package/lib/simple/Directory.js +18 -14
  133. package/lib/simple/Phone.js +29 -25
  134. package/lib/simple/Websocket.js +4 -4
  135. package/lib/simple/index.js +29 -25
  136. package/lib/simple/room/LocalParticipant.js +43 -43
  137. package/lib/simple/room/Participant.js +41 -39
  138. package/lib/simple/room/RemoteParticipant.js +44 -44
  139. package/lib/simple/room/Room.js +42 -40
  140. package/lib/simple/room/SipRoom.js +31 -29
  141. package/lib/simple/room/Stream.js +31 -29
  142. package/lib/simple/room/__tests__/RemoteParticipant.test.js +29 -25
  143. package/lib/simple/utils.js +29 -25
  144. package/lib/utils/Emitter.js +1 -1
  145. package/lib/utils/PhoneNumberUtil.js +2 -2
  146. package/lib/utils/__tests__/PhoneNumberUtil.test.js +2 -2
  147. package/lib/utils/__tests__/api-requester.test.js +2 -2
  148. package/lib/utils/__tests__/sdp.test.js +12 -12
  149. package/lib/utils/api-requester.js +3 -3
  150. package/lib/utils/sdp.js +10 -10
  151. package/lib/web-rtc-client.js +28 -24
  152. package/lib/websocket-client.js +5 -5
  153. package/package.json +1 -1
  154. package/src/domain/CallLog.js +1 -1
  155. package/src/domain/Meeting.js +6 -2
  156. package/src/domain/Recording.js +1 -1
  157. package/src/service/IssueReporter.js +1 -1
  158. package/src/web-rtc-client.js +1 -1
@@ -499,7 +499,7 @@ class IssueReporter {
499
499
  args.splice(1, 1);
500
500
  }
501
501
 
502
- const date = moment__default["default"]().format('YYYY-MM-DD HH:mm:ss.SSS');
502
+ const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
503
503
  const message = args.join(', ');
504
504
  let consoleMessage = message;
505
505
 
@@ -676,7 +676,7 @@ class IssueReporter {
676
676
  payload._retry = retry + 1;
677
677
  }
678
678
 
679
- this._sendDebugToGrafana(body, retry + 1);
679
+ this._sendDebugToGrafana(payload, retry + 1);
680
680
  }, 5000 + retry * 1000);
681
681
  });
682
682
  }
@@ -2614,7 +2614,8 @@ class ExternalApp {
2614
2614
 
2615
2615
 
2616
2616
 
2617
-
2617
+
2618
+
2618
2619
 
2619
2620
 
2620
2621
  class Meeting {
@@ -2626,6 +2627,7 @@ class Meeting {
2626
2627
 
2627
2628
 
2628
2629
 
2630
+
2629
2631
 
2630
2632
 
2631
2633
  static parse(plain ) {
@@ -2637,6 +2639,7 @@ class Meeting {
2637
2639
  port: plain.port,
2638
2640
  uuid: plain.uuid,
2639
2641
  number: plain.number,
2642
+ persistent: plain.persistent,
2640
2643
  });
2641
2644
  }
2642
2645
 
@@ -2644,7 +2647,7 @@ class Meeting {
2644
2647
  return newFrom(meeting, Meeting);
2645
2648
  }
2646
2649
 
2647
- constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
2650
+ constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
2648
2651
  this.guestSipAuthorization = guestSipAuthorization;
2649
2652
  this.uri = uri;
2650
2653
  this.name = name;
@@ -2652,6 +2655,7 @@ class Meeting {
2652
2655
  this.port = port;
2653
2656
  this.uuid = uuid;
2654
2657
  this.number = number;
2658
+ this.persistent = persistent;
2655
2659
 
2656
2660
  // Useful to compare instead of instanceof with minified code
2657
2661
  this.type = 'Meeting';
@@ -2832,7 +2836,7 @@ class ChatMessage {
2832
2836
  static parse(plain ) {
2833
2837
  return new ChatMessage({
2834
2838
  uuid: plain.uuid,
2835
- date: moment__default["default"](plain.created_at).toDate(),
2839
+ date: moment__default['default'](plain.created_at).toDate(),
2836
2840
  content: plain.content,
2837
2841
  alias: plain.alias,
2838
2842
  userUuid: plain.user_uuid,
@@ -2924,7 +2928,7 @@ class Voicemail {
2924
2928
  static parse(plain ) {
2925
2929
  return new Voicemail({
2926
2930
  id: plain.id,
2927
- date: moment__default["default"](plain.timestamp * 1000).toDate(),
2931
+ date: moment__default['default'](plain.timestamp * 1000).toDate(),
2928
2932
  duration: plain.duration * 1000,
2929
2933
  caller: {
2930
2934
  name: plain.caller_id_name,
@@ -3061,7 +3065,7 @@ class Call {
3061
3065
  onHold: plain.on_hold,
3062
3066
  status: plain.status,
3063
3067
  lineId: plain.line_id,
3064
- startingTime: moment__default["default"](plain.creation_time).toDate(),
3068
+ startingTime: moment__default['default'](plain.creation_time).toDate(),
3065
3069
  talkingToIds: Object.keys(plain.talking_to || {}),
3066
3070
  recording: plain.record_state === RECORD_STATE_ACTIVE,
3067
3071
  });
@@ -3541,7 +3545,7 @@ class Emitter {
3541
3545
 
3542
3546
 
3543
3547
  constructor() {
3544
- this.eventEmitter = new EventEmitter__default["default"]();
3548
+ this.eventEmitter = new EventEmitter__default['default']();
3545
3549
  }
3546
3550
 
3547
3551
  on(event , callback ) {
@@ -3586,7 +3590,7 @@ class Recording {
3586
3590
 
3587
3591
 
3588
3592
 
3589
- static parseMany(recordings ) {
3593
+ static parseMany(recordings = []) {
3590
3594
  return recordings.map(item => Recording.parse(item));
3591
3595
  }
3592
3596
 
@@ -3594,8 +3598,8 @@ class Recording {
3594
3598
  return new Recording({
3595
3599
  deleted: plain.deleted,
3596
3600
  fileName: plain.filename,
3597
- end: plain.end_time ? moment__default["default"](plain.end_time).toDate() : null,
3598
- start: moment__default["default"](plain.start_time).toDate(),
3601
+ end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
3602
+ start: moment__default['default'](plain.start_time).toDate(),
3599
3603
  uuid: plain.uuid,
3600
3604
  });
3601
3605
  }
@@ -3693,7 +3697,7 @@ class CallLog {
3693
3697
 
3694
3698
  static parse(plain ) {
3695
3699
  return new CallLog({
3696
- answer: plain.answer ? moment__default["default"](plain.answer).toDate() : null,
3700
+ answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
3697
3701
  answered: plain.answered,
3698
3702
  callDirection: plain.call_direction,
3699
3703
  destination: {
@@ -3710,9 +3714,9 @@ class CallLog {
3710
3714
  },
3711
3715
  id: plain.id,
3712
3716
  duration: (plain.duration || 0) * 1000, // duration is in seconds
3713
- start: moment__default["default"](plain.start).toDate(),
3714
- end: plain.end ? moment__default["default"](plain.end).toDate() : null,
3715
- recordings: Recording.parseMany(plain.recordings),
3717
+ start: moment__default['default'](plain.start).toDate(),
3718
+ end: plain.end ? moment__default['default'](plain.end).toDate() : null,
3719
+ recordings: Recording.parseMany(plain.recordings || []),
3716
3720
  });
3717
3721
  }
3718
3722
 
@@ -5886,7 +5890,7 @@ const parseCandidate$1 = (candidate ) => {
5886
5890
  if (!candidate) {
5887
5891
  return null;
5888
5892
  }
5889
- const result = sdpParser__default["default"].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
5893
+ const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
5890
5894
 
5891
5895
  return result.candidates ? result.candidates[0] : null;
5892
5896
  };
@@ -5900,7 +5904,7 @@ const areCandidateValid = (candidates ) =>
5900
5904
  .length > 0;
5901
5905
 
5902
5906
  const getVideoDirection = (sdp ) => {
5903
- const parsedSdp = sdpParser__default["default"].parse(sdp);
5907
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
5904
5908
  const videoMedia = parsedSdp.media.find(media => media.type === 'video');
5905
5909
  if (!videoMedia) {
5906
5910
  return null;
@@ -5914,14 +5918,14 @@ const hasAnActiveVideo = (sdp ) => {
5914
5918
  return false;
5915
5919
  }
5916
5920
 
5917
- const parsedSdp = sdpParser__default["default"].parse(sdp);
5921
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
5918
5922
 
5919
5923
  return !!parsedSdp.media.find(media =>
5920
5924
  media.type === 'video' && media.port > 10 && (!media.direction || media.direction !== 'inactive'));
5921
5925
  };
5922
5926
 
5923
5927
  const fixSdp = (sdp , candidates , forcePort = true) => {
5924
- const parsedSdp = sdpParser__default["default"].parse(sdp);
5928
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
5925
5929
  const mainCandidate = getSrflxOrRelay(candidates)[0];
5926
5930
  const ip = mainCandidate ? mainCandidate.ip : null;
5927
5931
 
@@ -5939,7 +5943,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
5939
5943
  };
5940
5944
  });
5941
5945
 
5942
- let fixed = sdpParser__default["default"].write(parsedSdp);
5946
+ let fixed = sdpParser__default['default'].write(parsedSdp);
5943
5947
 
5944
5948
  if (ip) {
5945
5949
  fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
@@ -5985,7 +5989,7 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
5985
5989
  ) {
5986
5990
  super(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
5987
5991
 
5988
- this.eventEmitter = new EventEmitter__default["default"]();
5992
+ this.eventEmitter = new EventEmitter__default['default']();
5989
5993
  this.isWeb = isWeb;
5990
5994
  this.session = session;
5991
5995
  }
@@ -7302,7 +7306,7 @@ class WebRTCClient extends Emitter {
7302
7306
  // We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
7303
7307
  const transceivers = pc.getTransceivers();
7304
7308
  const transceiverIdx = lastIndexOf(transceivers, transceiver =>
7305
- transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
7309
+ transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
7306
7310
 
7307
7311
  videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
7308
7312
  } else {
@@ -8507,7 +8511,7 @@ class WebRTCClient extends Emitter {
8507
8511
  }
8508
8512
  const sessionId = this.getSipSessionId(session);
8509
8513
 
8510
- getStats__default["default"](pc, (result ) => {
8514
+ getStats__default['default'](pc, (result ) => {
8511
8515
  const { results, internal, nomore, ...stats } = result;
8512
8516
  this.statsIntervals[sessionId] = nomore;
8513
8517
 
@@ -10889,7 +10893,7 @@ class WebSocketClient extends Emitter {
10889
10893
 
10890
10894
  connect() {
10891
10895
  logger$5.info('connect method started', { host: this.host, token: this.token });
10892
- this.socket = new ReconnectingWebSocket__default["default"](this._getUrl.bind(this), [], this.options);
10896
+ this.socket = new ReconnectingWebSocket__default['default'](this._getUrl.bind(this), [], this.options);
10893
10897
  if (this.options.binaryType) {
10894
10898
  this.socket.binaryType = this.options.binaryType;
10895
10899
  }
@@ -12142,7 +12146,7 @@ class Room$1 extends Emitter {
12142
12146
  }
12143
12147
 
12144
12148
  _mapMsid(rawSdp ) {
12145
- const sdp = sdpParser__default["default"].parse(rawSdp);
12149
+ const sdp = sdpParser__default['default'].parse(rawSdp);
12146
12150
  const labelMsidArray = sdp.media.filter(media => !!media.label).map(({ label, msid }) => ({
12147
12151
  label: String(label),
12148
12152
  streamId: msid.split(' ')[0],
@@ -13430,7 +13434,7 @@ const Wazo = {
13430
13434
  Phone: Phone$1,
13431
13435
  Websocket: Websocket$1,
13432
13436
  Room: Room$1,
13433
- SipRoom: SipRoom$1,
13437
+ SipRoom,
13434
13438
  RemoteParticipant,
13435
13439
  LocalParticipant,
13436
13440
  Stream,
@@ -13635,6 +13639,4 @@ class SipRoom extends Room$1 {
13635
13639
 
13636
13640
  }
13637
13641
 
13638
- var SipRoom$1 = SipRoom;
13639
-
13640
- module.exports = SipRoom$1;
13642
+ module.exports = SipRoom;
@@ -1719,7 +1719,7 @@ class IssueReporter {
1719
1719
  args.splice(1, 1);
1720
1720
  }
1721
1721
 
1722
- const date = moment__default["default"]().format('YYYY-MM-DD HH:mm:ss.SSS');
1722
+ const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
1723
1723
  const message = args.join(', ');
1724
1724
  let consoleMessage = message;
1725
1725
 
@@ -1896,7 +1896,7 @@ class IssueReporter {
1896
1896
  payload._retry = retry + 1;
1897
1897
  }
1898
1898
 
1899
- this._sendDebugToGrafana(body, retry + 1);
1899
+ this._sendDebugToGrafana(payload, retry + 1);
1900
1900
  }, 5000 + retry * 1000);
1901
1901
  });
1902
1902
  }
@@ -2614,7 +2614,8 @@ class ExternalApp {
2614
2614
 
2615
2615
 
2616
2616
 
2617
-
2617
+
2618
+
2618
2619
 
2619
2620
 
2620
2621
  class Meeting {
@@ -2626,6 +2627,7 @@ class Meeting {
2626
2627
 
2627
2628
 
2628
2629
 
2630
+
2629
2631
 
2630
2632
 
2631
2633
  static parse(plain ) {
@@ -2637,6 +2639,7 @@ class Meeting {
2637
2639
  port: plain.port,
2638
2640
  uuid: plain.uuid,
2639
2641
  number: plain.number,
2642
+ persistent: plain.persistent,
2640
2643
  });
2641
2644
  }
2642
2645
 
@@ -2644,7 +2647,7 @@ class Meeting {
2644
2647
  return newFrom(meeting, Meeting);
2645
2648
  }
2646
2649
 
2647
- constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
2650
+ constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
2648
2651
  this.guestSipAuthorization = guestSipAuthorization;
2649
2652
  this.uri = uri;
2650
2653
  this.name = name;
@@ -2652,6 +2655,7 @@ class Meeting {
2652
2655
  this.port = port;
2653
2656
  this.uuid = uuid;
2654
2657
  this.number = number;
2658
+ this.persistent = persistent;
2655
2659
 
2656
2660
  // Useful to compare instead of instanceof with minified code
2657
2661
  this.type = 'Meeting';
@@ -2832,7 +2836,7 @@ class ChatMessage {
2832
2836
  static parse(plain ) {
2833
2837
  return new ChatMessage({
2834
2838
  uuid: plain.uuid,
2835
- date: moment__default["default"](plain.created_at).toDate(),
2839
+ date: moment__default['default'](plain.created_at).toDate(),
2836
2840
  content: plain.content,
2837
2841
  alias: plain.alias,
2838
2842
  userUuid: plain.user_uuid,
@@ -2924,7 +2928,7 @@ class Voicemail {
2924
2928
  static parse(plain ) {
2925
2929
  return new Voicemail({
2926
2930
  id: plain.id,
2927
- date: moment__default["default"](plain.timestamp * 1000).toDate(),
2931
+ date: moment__default['default'](plain.timestamp * 1000).toDate(),
2928
2932
  duration: plain.duration * 1000,
2929
2933
  caller: {
2930
2934
  name: plain.caller_id_name,
@@ -3061,7 +3065,7 @@ class Call {
3061
3065
  onHold: plain.on_hold,
3062
3066
  status: plain.status,
3063
3067
  lineId: plain.line_id,
3064
- startingTime: moment__default["default"](plain.creation_time).toDate(),
3068
+ startingTime: moment__default['default'](plain.creation_time).toDate(),
3065
3069
  talkingToIds: Object.keys(plain.talking_to || {}),
3066
3070
  recording: plain.record_state === RECORD_STATE_ACTIVE,
3067
3071
  });
@@ -3541,7 +3545,7 @@ class Emitter {
3541
3545
 
3542
3546
 
3543
3547
  constructor() {
3544
- this.eventEmitter = new EventEmitter__default["default"]();
3548
+ this.eventEmitter = new EventEmitter__default['default']();
3545
3549
  }
3546
3550
 
3547
3551
  on(event , callback ) {
@@ -3586,7 +3590,7 @@ class Recording {
3586
3590
 
3587
3591
 
3588
3592
 
3589
- static parseMany(recordings ) {
3593
+ static parseMany(recordings = []) {
3590
3594
  return recordings.map(item => Recording.parse(item));
3591
3595
  }
3592
3596
 
@@ -3594,8 +3598,8 @@ class Recording {
3594
3598
  return new Recording({
3595
3599
  deleted: plain.deleted,
3596
3600
  fileName: plain.filename,
3597
- end: plain.end_time ? moment__default["default"](plain.end_time).toDate() : null,
3598
- start: moment__default["default"](plain.start_time).toDate(),
3601
+ end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
3602
+ start: moment__default['default'](plain.start_time).toDate(),
3599
3603
  uuid: plain.uuid,
3600
3604
  });
3601
3605
  }
@@ -3693,7 +3697,7 @@ class CallLog {
3693
3697
 
3694
3698
  static parse(plain ) {
3695
3699
  return new CallLog({
3696
- answer: plain.answer ? moment__default["default"](plain.answer).toDate() : null,
3700
+ answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
3697
3701
  answered: plain.answered,
3698
3702
  callDirection: plain.call_direction,
3699
3703
  destination: {
@@ -3710,9 +3714,9 @@ class CallLog {
3710
3714
  },
3711
3715
  id: plain.id,
3712
3716
  duration: (plain.duration || 0) * 1000, // duration is in seconds
3713
- start: moment__default["default"](plain.start).toDate(),
3714
- end: plain.end ? moment__default["default"](plain.end).toDate() : null,
3715
- recordings: Recording.parseMany(plain.recordings),
3717
+ start: moment__default['default'](plain.start).toDate(),
3718
+ end: plain.end ? moment__default['default'](plain.end).toDate() : null,
3719
+ recordings: Recording.parseMany(plain.recordings || []),
3716
3720
  });
3717
3721
  }
3718
3722
 
@@ -5886,7 +5890,7 @@ const parseCandidate$1 = (candidate ) => {
5886
5890
  if (!candidate) {
5887
5891
  return null;
5888
5892
  }
5889
- const result = sdpParser__default["default"].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
5893
+ const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
5890
5894
 
5891
5895
  return result.candidates ? result.candidates[0] : null;
5892
5896
  };
@@ -5900,7 +5904,7 @@ const areCandidateValid = (candidates ) =>
5900
5904
  .length > 0;
5901
5905
 
5902
5906
  const getVideoDirection = (sdp ) => {
5903
- const parsedSdp = sdpParser__default["default"].parse(sdp);
5907
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
5904
5908
  const videoMedia = parsedSdp.media.find(media => media.type === 'video');
5905
5909
  if (!videoMedia) {
5906
5910
  return null;
@@ -5914,14 +5918,14 @@ const hasAnActiveVideo = (sdp ) => {
5914
5918
  return false;
5915
5919
  }
5916
5920
 
5917
- const parsedSdp = sdpParser__default["default"].parse(sdp);
5921
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
5918
5922
 
5919
5923
  return !!parsedSdp.media.find(media =>
5920
5924
  media.type === 'video' && media.port > 10 && (!media.direction || media.direction !== 'inactive'));
5921
5925
  };
5922
5926
 
5923
5927
  const fixSdp = (sdp , candidates , forcePort = true) => {
5924
- const parsedSdp = sdpParser__default["default"].parse(sdp);
5928
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
5925
5929
  const mainCandidate = getSrflxOrRelay(candidates)[0];
5926
5930
  const ip = mainCandidate ? mainCandidate.ip : null;
5927
5931
 
@@ -5939,7 +5943,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
5939
5943
  };
5940
5944
  });
5941
5945
 
5942
- let fixed = sdpParser__default["default"].write(parsedSdp);
5946
+ let fixed = sdpParser__default['default'].write(parsedSdp);
5943
5947
 
5944
5948
  if (ip) {
5945
5949
  fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
@@ -5985,7 +5989,7 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
5985
5989
  ) {
5986
5990
  super(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
5987
5991
 
5988
- this.eventEmitter = new EventEmitter__default["default"]();
5992
+ this.eventEmitter = new EventEmitter__default['default']();
5989
5993
  this.isWeb = isWeb;
5990
5994
  this.session = session;
5991
5995
  }
@@ -7302,7 +7306,7 @@ class WebRTCClient extends Emitter {
7302
7306
  // We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
7303
7307
  const transceivers = pc.getTransceivers();
7304
7308
  const transceiverIdx = lastIndexOf(transceivers, transceiver =>
7305
- transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
7309
+ transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
7306
7310
 
7307
7311
  videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
7308
7312
  } else {
@@ -8507,7 +8511,7 @@ class WebRTCClient extends Emitter {
8507
8511
  }
8508
8512
  const sessionId = this.getSipSessionId(session);
8509
8513
 
8510
- getStats__default["default"](pc, (result ) => {
8514
+ getStats__default['default'](pc, (result ) => {
8511
8515
  const { results, internal, nomore, ...stats } = result;
8512
8516
  this.statsIntervals[sessionId] = nomore;
8513
8517
 
@@ -10889,7 +10893,7 @@ class WebSocketClient extends Emitter {
10889
10893
 
10890
10894
  connect() {
10891
10895
  logger$5.info('connect method started', { host: this.host, token: this.token });
10892
- this.socket = new ReconnectingWebSocket__default["default"](this._getUrl.bind(this), [], this.options);
10896
+ this.socket = new ReconnectingWebSocket__default['default'](this._getUrl.bind(this), [], this.options);
10893
10897
  if (this.options.binaryType) {
10894
10898
  this.socket.binaryType = this.options.binaryType;
10895
10899
  }
@@ -12142,7 +12146,7 @@ class Room$1 extends Emitter {
12142
12146
  }
12143
12147
 
12144
12148
  _mapMsid(rawSdp ) {
12145
- const sdp = sdpParser__default["default"].parse(rawSdp);
12149
+ const sdp = sdpParser__default['default'].parse(rawSdp);
12146
12150
  const labelMsidArray = sdp.media.filter(media => !!media.label).map(({ label, msid }) => ({
12147
12151
  label: String(label),
12148
12152
  streamId: msid.split(' ')[0],
@@ -13514,7 +13518,7 @@ const Wazo = {
13514
13518
  SipRoom,
13515
13519
  RemoteParticipant,
13516
13520
  LocalParticipant,
13517
- Stream: Stream$1,
13521
+ Stream,
13518
13522
  createLocalVideoStream,
13519
13523
  createLocalAudioStream,
13520
13524
  Configuration: Configuration$1,
@@ -13635,6 +13639,4 @@ class Stream {
13635
13639
  }
13636
13640
  }
13637
13641
 
13638
- var Stream$1 = Stream;
13639
-
13640
- module.exports = Stream$1;
13642
+ module.exports = Stream;