@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
package/lib/utils/sdp.js CHANGED
@@ -15,7 +15,7 @@ const getCandidates = (rawSdp ) => {
15
15
  return [];
16
16
  }
17
17
 
18
- const sdp = sdpParser__default["default"].parse(rawSdp);
18
+ const sdp = sdpParser__default['default'].parse(rawSdp);
19
19
  if (!sdp || !sdp.media) {
20
20
  return [];
21
21
  }
@@ -27,7 +27,7 @@ const parseCandidate = (candidate ) => {
27
27
  if (!candidate) {
28
28
  return null;
29
29
  }
30
- const result = sdpParser__default["default"].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
30
+ const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
31
31
 
32
32
  return result.candidates ? result.candidates[0] : null;
33
33
  };
@@ -47,28 +47,28 @@ const isSdpValid = (sdp ) => {
47
47
  };
48
48
 
49
49
  const fixBundle = (sdp ) => {
50
- const parsedSdp = sdpParser__default["default"].parse(sdp);
50
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
51
51
  const bundleIndex = parsedSdp.groups.findIndex(group => group.type === 'BUNDLE');
52
52
  if (bundleIndex !== -1) {
53
53
  parsedSdp.groups[bundleIndex].mids = parsedSdp.media
54
54
  .map((media, index) => ('mid' in media ? media.mid : index)).join(' ');
55
55
  }
56
56
 
57
- return sdpParser__default["default"].write(parsedSdp);
57
+ return sdpParser__default['default'].write(parsedSdp);
58
58
  };
59
59
 
60
60
  const toggleVideoDirection = (sdp , direction ) => {
61
- const parsedSdp = sdpParser__default["default"].parse(sdp);
61
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
62
62
  parsedSdp.media = parsedSdp.media.map(media => ({
63
63
  ...media,
64
64
  ...(media.type === 'video' ? { direction } : {}),
65
65
  }));
66
66
 
67
- return sdpParser__default["default"].write(parsedSdp);
67
+ return sdpParser__default['default'].write(parsedSdp);
68
68
  };
69
69
 
70
70
  const getVideoDirection = (sdp ) => {
71
- const parsedSdp = sdpParser__default["default"].parse(sdp);
71
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
72
72
  const videoMedia = parsedSdp.media.find(media => media.type === 'video');
73
73
  if (!videoMedia) {
74
74
  return null;
@@ -96,14 +96,14 @@ const hasAnActiveVideo = (sdp ) => {
96
96
  return false;
97
97
  }
98
98
 
99
- const parsedSdp = sdpParser__default["default"].parse(sdp);
99
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
100
100
 
101
101
  return !!parsedSdp.media.find(media =>
102
102
  media.type === 'video' && media.port > 10 && (!media.direction || media.direction !== 'inactive'));
103
103
  };
104
104
 
105
105
  const fixSdp = (sdp , candidates , forcePort = true) => {
106
- const parsedSdp = sdpParser__default["default"].parse(sdp);
106
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
107
107
  const mainCandidate = getSrflxOrRelay(candidates)[0];
108
108
  const ip = mainCandidate ? mainCandidate.ip : null;
109
109
 
@@ -121,7 +121,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
121
121
  };
122
122
  });
123
123
 
124
- let fixed = sdpParser__default["default"].write(parsedSdp);
124
+ let fixed = sdpParser__default['default'].write(parsedSdp);
125
125
 
126
126
  if (ip) {
127
127
  fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
@@ -498,7 +498,7 @@ class IssueReporter {
498
498
  args.splice(1, 1);
499
499
  }
500
500
 
501
- const date = moment__default["default"]().format('YYYY-MM-DD HH:mm:ss.SSS');
501
+ const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
502
502
  const message = args.join(', ');
503
503
  let consoleMessage = message;
504
504
 
@@ -675,7 +675,7 @@ class IssueReporter {
675
675
  payload._retry = retry + 1;
676
676
  }
677
677
 
678
- this._sendDebugToGrafana(body, retry + 1);
678
+ this._sendDebugToGrafana(payload, retry + 1);
679
679
  }, 5000 + retry * 1000);
680
680
  });
681
681
  }
@@ -703,7 +703,7 @@ const parseCandidate = (candidate ) => {
703
703
  if (!candidate) {
704
704
  return null;
705
705
  }
706
- const result = sdpParser__default["default"].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
706
+ const result = sdpParser__default['default'].parse(candidate.indexOf('a=') === 0 ? candidate : `a=${candidate}`);
707
707
 
708
708
  return result.candidates ? result.candidates[0] : null;
709
709
  };
@@ -717,7 +717,7 @@ const areCandidateValid = (candidates ) =>
717
717
  .length > 0;
718
718
 
719
719
  const getVideoDirection = (sdp ) => {
720
- const parsedSdp = sdpParser__default["default"].parse(sdp);
720
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
721
721
  const videoMedia = parsedSdp.media.find(media => media.type === 'video');
722
722
  if (!videoMedia) {
723
723
  return null;
@@ -731,14 +731,14 @@ const hasAnActiveVideo = (sdp ) => {
731
731
  return false;
732
732
  }
733
733
 
734
- const parsedSdp = sdpParser__default["default"].parse(sdp);
734
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
735
735
 
736
736
  return !!parsedSdp.media.find(media =>
737
737
  media.type === 'video' && media.port > 10 && (!media.direction || media.direction !== 'inactive'));
738
738
  };
739
739
 
740
740
  const fixSdp = (sdp , candidates , forcePort = true) => {
741
- const parsedSdp = sdpParser__default["default"].parse(sdp);
741
+ const parsedSdp = sdpParser__default['default'].parse(sdp);
742
742
  const mainCandidate = getSrflxOrRelay(candidates)[0];
743
743
  const ip = mainCandidate ? mainCandidate.ip : null;
744
744
 
@@ -756,7 +756,7 @@ const fixSdp = (sdp , candidates , forcePort = true)
756
756
  };
757
757
  });
758
758
 
759
- let fixed = sdpParser__default["default"].write(parsedSdp);
759
+ let fixed = sdpParser__default['default'].write(parsedSdp);
760
760
 
761
761
  if (ip) {
762
762
  fixed = fixed.replace(/IN IP4 0.0.0.0/g, `IN IP4 ${ip}`);
@@ -802,7 +802,7 @@ class WazoSessionDescriptionHandler extends sessionDescriptionHandler.SessionDes
802
802
  ) {
803
803
  super(logger, mediaStreamFactory, sessionDescriptionHandlerConfiguration);
804
804
 
805
- this.eventEmitter = new EventEmitter__default["default"]();
805
+ this.eventEmitter = new EventEmitter__default['default']();
806
806
  this.isWeb = isWeb;
807
807
  this.session = session;
808
808
  }
@@ -1241,7 +1241,7 @@ class Emitter {
1241
1241
 
1242
1242
 
1243
1243
  constructor() {
1244
- this.eventEmitter = new EventEmitter__default["default"]();
1244
+ this.eventEmitter = new EventEmitter__default['default']();
1245
1245
  }
1246
1246
 
1247
1247
  on(event , callback ) {
@@ -3177,7 +3177,8 @@ class ExternalApp {
3177
3177
 
3178
3178
 
3179
3179
 
3180
-
3180
+
3181
+
3181
3182
 
3182
3183
 
3183
3184
  class Meeting {
@@ -3189,6 +3190,7 @@ class Meeting {
3189
3190
 
3190
3191
 
3191
3192
 
3193
+
3192
3194
 
3193
3195
 
3194
3196
  static parse(plain ) {
@@ -3200,6 +3202,7 @@ class Meeting {
3200
3202
  port: plain.port,
3201
3203
  uuid: plain.uuid,
3202
3204
  number: plain.number,
3205
+ persistent: plain.persistent,
3203
3206
  });
3204
3207
  }
3205
3208
 
@@ -3207,7 +3210,7 @@ class Meeting {
3207
3210
  return newFrom(meeting, Meeting);
3208
3211
  }
3209
3212
 
3210
- constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number } = {}) {
3213
+ constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
3211
3214
  this.guestSipAuthorization = guestSipAuthorization;
3212
3215
  this.uri = uri;
3213
3216
  this.name = name;
@@ -3215,6 +3218,7 @@ class Meeting {
3215
3218
  this.port = port;
3216
3219
  this.uuid = uuid;
3217
3220
  this.number = number;
3221
+ this.persistent = persistent;
3218
3222
 
3219
3223
  // Useful to compare instead of instanceof with minified code
3220
3224
  this.type = 'Meeting';
@@ -3395,7 +3399,7 @@ class ChatMessage {
3395
3399
  static parse(plain ) {
3396
3400
  return new ChatMessage({
3397
3401
  uuid: plain.uuid,
3398
- date: moment__default["default"](plain.created_at).toDate(),
3402
+ date: moment__default['default'](plain.created_at).toDate(),
3399
3403
  content: plain.content,
3400
3404
  alias: plain.alias,
3401
3405
  userUuid: plain.user_uuid,
@@ -3487,7 +3491,7 @@ class Voicemail {
3487
3491
  static parse(plain ) {
3488
3492
  return new Voicemail({
3489
3493
  id: plain.id,
3490
- date: moment__default["default"](plain.timestamp * 1000).toDate(),
3494
+ date: moment__default['default'](plain.timestamp * 1000).toDate(),
3491
3495
  duration: plain.duration * 1000,
3492
3496
  caller: {
3493
3497
  name: plain.caller_id_name,
@@ -3624,7 +3628,7 @@ class Call {
3624
3628
  onHold: plain.on_hold,
3625
3629
  status: plain.status,
3626
3630
  lineId: plain.line_id,
3627
- startingTime: moment__default["default"](plain.creation_time).toDate(),
3631
+ startingTime: moment__default['default'](plain.creation_time).toDate(),
3628
3632
  talkingToIds: Object.keys(plain.talking_to || {}),
3629
3633
  recording: plain.record_state === RECORD_STATE_ACTIVE,
3630
3634
  });
@@ -3778,7 +3782,7 @@ class Recording {
3778
3782
 
3779
3783
 
3780
3784
 
3781
- static parseMany(recordings ) {
3785
+ static parseMany(recordings = []) {
3782
3786
  return recordings.map(item => Recording.parse(item));
3783
3787
  }
3784
3788
 
@@ -3786,8 +3790,8 @@ class Recording {
3786
3790
  return new Recording({
3787
3791
  deleted: plain.deleted,
3788
3792
  fileName: plain.filename,
3789
- end: plain.end_time ? moment__default["default"](plain.end_time).toDate() : null,
3790
- start: moment__default["default"](plain.start_time).toDate(),
3793
+ end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
3794
+ start: moment__default['default'](plain.start_time).toDate(),
3791
3795
  uuid: plain.uuid,
3792
3796
  });
3793
3797
  }
@@ -3885,7 +3889,7 @@ class CallLog {
3885
3889
 
3886
3890
  static parse(plain ) {
3887
3891
  return new CallLog({
3888
- answer: plain.answer ? moment__default["default"](plain.answer).toDate() : null,
3892
+ answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
3889
3893
  answered: plain.answered,
3890
3894
  callDirection: plain.call_direction,
3891
3895
  destination: {
@@ -3902,9 +3906,9 @@ class CallLog {
3902
3906
  },
3903
3907
  id: plain.id,
3904
3908
  duration: (plain.duration || 0) * 1000, // duration is in seconds
3905
- start: moment__default["default"](plain.start).toDate(),
3906
- end: plain.end ? moment__default["default"](plain.end).toDate() : null,
3907
- recordings: Recording.parseMany(plain.recordings),
3909
+ start: moment__default['default'](plain.start).toDate(),
3910
+ end: plain.end ? moment__default['default'](plain.end).toDate() : null,
3911
+ recordings: Recording.parseMany(plain.recordings || []),
3908
3912
  });
3909
3913
  }
3910
3914
 
@@ -6044,7 +6048,7 @@ class WebRTCClient extends Emitter {
6044
6048
  // We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
6045
6049
  const transceivers = pc.getTransceivers();
6046
6050
  const transceiverIdx = lastIndexOf(transceivers, transceiver =>
6047
- transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
6051
+ transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
6048
6052
 
6049
6053
  videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
6050
6054
  } else {
@@ -7249,7 +7253,7 @@ class WebRTCClient extends Emitter {
7249
7253
  }
7250
7254
  const sessionId = this.getSipSessionId(session);
7251
7255
 
7252
- getStats__default["default"](pc, (result ) => {
7256
+ getStats__default['default'](pc, (result ) => {
7253
7257
  const { results, internal, nomore, ...stats } = result;
7254
7258
  this.statsIntervals[sessionId] = nomore;
7255
7259
 
@@ -7378,7 +7382,7 @@ class WebRTCClient extends Emitter {
7378
7382
  }
7379
7383
 
7380
7384
  exports.CanceledCallError = CanceledCallError;
7381
- exports["default"] = WebRTCClient;
7385
+ exports.default = WebRTCClient;
7382
7386
  exports.events = events;
7383
7387
  exports.replaceLocalIpModifier = replaceLocalIpModifier;
7384
7388
  exports.transportEvents = transportEvents;
@@ -19,7 +19,7 @@ class Emitter {
19
19
 
20
20
 
21
21
  constructor() {
22
- this.eventEmitter = new EventEmitter__default["default"]();
22
+ this.eventEmitter = new EventEmitter__default['default']();
23
23
  }
24
24
 
25
25
  on(event , callback ) {
@@ -206,7 +206,7 @@ class IssueReporter {
206
206
  args.splice(1, 1);
207
207
  }
208
208
 
209
- const date = moment__default["default"]().format('YYYY-MM-DD HH:mm:ss.SSS');
209
+ const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
210
210
  const message = args.join(', ');
211
211
  let consoleMessage = message;
212
212
 
@@ -383,7 +383,7 @@ class IssueReporter {
383
383
  payload._retry = retry + 1;
384
384
  }
385
385
 
386
- this._sendDebugToGrafana(body, retry + 1);
386
+ this._sendDebugToGrafana(payload, retry + 1);
387
387
  }, 5000 + retry * 1000);
388
388
  });
389
389
  }
@@ -647,7 +647,7 @@ class WebSocketClient extends Emitter {
647
647
 
648
648
  connect() {
649
649
  logger.info('connect method started', { host: this.host, token: this.token });
650
- this.socket = new ReconnectingWebSocket__default["default"](this._getUrl.bind(this), [], this.options);
650
+ this.socket = new ReconnectingWebSocket__default['default'](this._getUrl.bind(this), [], this.options);
651
651
  if (this.options.binaryType) {
652
652
  this.socket.binaryType = this.options.binaryType;
653
653
  }
@@ -1007,4 +1007,4 @@ exports.USER_STATUS_UPDATE = USER_STATUS_UPDATE;
1007
1007
  exports.USER_VOICEMAIL_MESSAGE_CREATED = USER_VOICEMAIL_MESSAGE_CREATED;
1008
1008
  exports.USER_VOICEMAIL_MESSAGE_DELETED = USER_VOICEMAIL_MESSAGE_DELETED;
1009
1009
  exports.USER_VOICEMAIL_MESSAGE_UPDATED = USER_VOICEMAIL_MESSAGE_UPDATED;
1010
- exports["default"] = WebSocketClient;
1010
+ exports.default = WebSocketClient;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wazo/sdk",
3
- "version": "0.37.18",
3
+ "version": "0.37.19",
4
4
  "description": "Wazo's JavaScript Software Development Kit.",
5
5
  "main": "dist/wazo-sdk.js",
6
6
  "author": "Wazo (http://wazo.io)",
@@ -108,7 +108,7 @@ export default class CallLog {
108
108
  duration: (plain.duration || 0) * 1000, // duration is in seconds
109
109
  start: moment(plain.start).toDate(),
110
110
  end: plain.end ? moment(plain.end).toDate() : null,
111
- recordings: Recording.parseMany(plain.recordings),
111
+ recordings: Recording.parseMany(plain.recordings || []),
112
112
  });
113
113
  }
114
114
 
@@ -8,7 +8,8 @@ export type MeetingCreationResponse = {
8
8
  owner_uuids: Array<string>,
9
9
  port: string,
10
10
  uuid: string,
11
- number: string
11
+ number: string,
12
+ persistent: boolean,
12
13
  }
13
14
 
14
15
  export default class Meeting {
@@ -20,6 +21,7 @@ export default class Meeting {
20
21
  name: string;
21
22
  port: string;
22
23
  number: string;
24
+ persistent: boolean;
23
25
  ownerUuids: Array<string>;
24
26
 
25
27
  static parse(plain: MeetingCreationResponse): Meeting {
@@ -31,6 +33,7 @@ export default class Meeting {
31
33
  port: plain.port,
32
34
  uuid: plain.uuid,
33
35
  number: plain.number,
36
+ persistent: plain.persistent,
34
37
  });
35
38
  }
36
39
 
@@ -38,7 +41,7 @@ export default class Meeting {
38
41
  return newFrom(meeting, Meeting);
39
42
  }
40
43
 
41
- constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number }: Object = {}) {
44
+ constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent }: Object = {}) {
42
45
  this.guestSipAuthorization = guestSipAuthorization;
43
46
  this.uri = uri;
44
47
  this.name = name;
@@ -46,6 +49,7 @@ export default class Meeting {
46
49
  this.port = port;
47
50
  this.uuid = uuid;
48
51
  this.number = number;
52
+ this.persistent = persistent;
49
53
 
50
54
  // Useful to compare instead of instanceof with minified code
51
55
  this.type = 'Meeting';
@@ -24,7 +24,7 @@ export default class Recording {
24
24
  start: Date;
25
25
  uuid: string;
26
26
 
27
- static parseMany(recordings: RecordingResponse[]): Recording[] {
27
+ static parseMany(recordings: RecordingResponse[] = []): Recording[] {
28
28
  return recordings.map(item => Recording.parse(item));
29
29
  }
30
30
 
@@ -316,7 +316,7 @@ class IssueReporter {
316
316
  payload._retry = retry + 1;
317
317
  }
318
318
 
319
- this._sendDebugToGrafana(body, retry + 1);
319
+ this._sendDebugToGrafana(payload, retry + 1);
320
320
  }, 5000 + retry * 1000);
321
321
  });
322
322
  }
@@ -814,7 +814,7 @@ export default class WebRTCClient extends Emitter {
814
814
  // We search for the last transceiver without `video-` in the mid (video- means remote transceiver)
815
815
  const transceivers = pc.getTransceivers();
816
816
  const transceiverIdx = lastIndexOf(transceivers, transceiver =>
817
- transceiver.sender.track === null && transceiver.mid.indexOf('video') === -1);
817
+ transceiver.sender.track === null && transceiver.mid && transceiver.mid.indexOf('video') === -1);
818
818
 
819
819
  videoSender = transceiverIdx !== -1 ? transceivers[transceiverIdx].sender : null;
820
820
  } else {