@wazo/sdk 0.37.20 → 0.37.24

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 (147) hide show
  1. package/dist/wazo-sdk.js +6 -6
  2. package/esm/__tests__/api-client.test.js +91 -21
  3. package/esm/__tests__/web-rtc-client.test.js +214 -165
  4. package/esm/api/agentd.js +25 -2
  5. package/esm/api/amid.js +26 -3
  6. package/esm/api/application.js +25 -2
  7. package/esm/api/auth.js +25 -2
  8. package/esm/api/call-logd.js +34 -4
  9. package/esm/api/calld.js +35 -2
  10. package/esm/api/chatd.js +32 -2
  11. package/esm/api/confd.js +56 -9
  12. package/esm/api/ctid-ng.js +38 -5
  13. package/esm/api/dird.js +29 -3
  14. package/esm/api/webhookd.js +26 -3
  15. package/esm/api-client.js +91 -21
  16. package/esm/checker/Checker.js +241 -190
  17. package/esm/checker/checks/aor.js +91 -21
  18. package/esm/checker/checks/api.js +91 -21
  19. package/esm/checker/checks/index.js +231 -180
  20. package/esm/checker/checks/wazo-websocket.js +42 -17
  21. package/esm/checker/checks/webrtc-transport.js +214 -165
  22. package/esm/checker/checks/webrtc.js +214 -165
  23. package/esm/domain/AdHocAPIConference.js +91 -21
  24. package/esm/domain/Call.js +3 -0
  25. package/esm/domain/CallLog.js +8 -1
  26. package/esm/domain/ChatMessage.js +4 -0
  27. package/esm/domain/ChatRoom.js +3 -0
  28. package/esm/domain/Contact.js +4 -1
  29. package/esm/domain/Features.js +91 -21
  30. package/esm/domain/Meeting.js +28 -5
  31. package/esm/domain/Phone/CTIPhone.js +109 -35
  32. package/esm/domain/Phone/WebRTCPhone.js +159 -102
  33. package/esm/domain/Recording.js +3 -0
  34. package/esm/domain/Voicemail.js +3 -0
  35. package/esm/domain/__tests__/Call.test.js +3 -0
  36. package/esm/domain/__tests__/CallLog.test.js +8 -1
  37. package/esm/domain/__tests__/Contact.test.js +4 -1
  38. package/esm/domain/__tests__/Meeting.test.js +144 -0
  39. package/esm/domain/__tests__/Voicemail.test.js +3 -0
  40. package/esm/index.js +509 -414
  41. package/esm/lib/WazoSessionDescriptionHandler.js +26 -41
  42. package/esm/service/CallApi.js +91 -21
  43. package/esm/service/IssueReporter.js +26 -3
  44. package/esm/service/__tests__/IssueReporter.test.js +26 -3
  45. package/esm/service/getApiClient.js +91 -21
  46. package/esm/simple/Auth.js +499 -404
  47. package/esm/simple/Configuration.js +499 -404
  48. package/esm/simple/Directory.js +91 -21
  49. package/esm/simple/Phone.js +499 -404
  50. package/esm/simple/Websocket.js +45 -19
  51. package/esm/simple/index.js +503 -408
  52. package/esm/simple/room/LocalParticipant.js +503 -408
  53. package/esm/simple/room/Participant.js +503 -408
  54. package/esm/simple/room/RemoteParticipant.js +503 -408
  55. package/esm/simple/room/Room.js +504 -409
  56. package/esm/simple/room/SipRoom.js +503 -408
  57. package/esm/simple/room/Stream.js +503 -408
  58. package/esm/simple/room/__tests__/RemoteParticipant.test.js +503 -408
  59. package/esm/simple/utils.js +503 -408
  60. package/esm/types/WebSocketMessage.js +1 -1
  61. package/esm/utils/__tests__/api-requester.test.js +25 -2
  62. package/esm/utils/api-requester.js +25 -2
  63. package/esm/web-rtc-client.js +214 -165
  64. package/esm/websocket-client.js +43 -18
  65. package/lib/__tests__/api-client.test.js +91 -21
  66. package/lib/__tests__/web-rtc-client.test.js +214 -165
  67. package/lib/api/agentd.js +25 -2
  68. package/lib/api/amid.js +26 -3
  69. package/lib/api/application.js +25 -2
  70. package/lib/api/auth.js +25 -2
  71. package/lib/api/call-logd.js +34 -4
  72. package/lib/api/calld.js +35 -2
  73. package/lib/api/chatd.js +32 -2
  74. package/lib/api/confd.js +56 -9
  75. package/lib/api/ctid-ng.js +38 -5
  76. package/lib/api/dird.js +29 -3
  77. package/lib/api/webhookd.js +26 -3
  78. package/lib/api-client.js +91 -21
  79. package/lib/checker/Checker.js +241 -190
  80. package/lib/checker/checks/aor.js +91 -21
  81. package/lib/checker/checks/api.js +91 -21
  82. package/lib/checker/checks/index.js +231 -180
  83. package/lib/checker/checks/wazo-websocket.js +42 -17
  84. package/lib/checker/checks/webrtc-transport.js +214 -165
  85. package/lib/checker/checks/webrtc.js +214 -165
  86. package/lib/domain/AdHocAPIConference.js +91 -21
  87. package/lib/domain/Call.js +3 -0
  88. package/lib/domain/CallLog.js +8 -1
  89. package/lib/domain/ChatMessage.js +4 -0
  90. package/lib/domain/ChatRoom.js +3 -0
  91. package/lib/domain/Contact.js +4 -1
  92. package/lib/domain/Features.js +91 -21
  93. package/lib/domain/Meeting.js +32 -5
  94. package/lib/domain/Phone/CTIPhone.js +109 -35
  95. package/lib/domain/Phone/WebRTCPhone.js +159 -102
  96. package/lib/domain/Recording.js +3 -0
  97. package/lib/domain/Voicemail.js +3 -0
  98. package/lib/domain/__tests__/Call.test.js +3 -0
  99. package/lib/domain/__tests__/CallLog.test.js +8 -1
  100. package/lib/domain/__tests__/Contact.test.js +4 -1
  101. package/lib/domain/__tests__/Meeting.test.js +150 -0
  102. package/lib/domain/__tests__/Voicemail.test.js +3 -0
  103. package/lib/index.js +509 -414
  104. package/lib/lib/WazoSessionDescriptionHandler.js +26 -41
  105. package/lib/service/CallApi.js +91 -21
  106. package/lib/service/IssueReporter.js +26 -3
  107. package/lib/service/__tests__/IssueReporter.test.js +26 -3
  108. package/lib/service/getApiClient.js +91 -21
  109. package/lib/simple/Auth.js +499 -404
  110. package/lib/simple/Configuration.js +499 -404
  111. package/lib/simple/Directory.js +91 -21
  112. package/lib/simple/Phone.js +499 -404
  113. package/lib/simple/Websocket.js +45 -19
  114. package/lib/simple/index.js +503 -408
  115. package/lib/simple/room/LocalParticipant.js +503 -408
  116. package/lib/simple/room/Participant.js +503 -408
  117. package/lib/simple/room/RemoteParticipant.js +503 -408
  118. package/lib/simple/room/Room.js +504 -409
  119. package/lib/simple/room/SipRoom.js +503 -408
  120. package/lib/simple/room/Stream.js +503 -408
  121. package/lib/simple/room/__tests__/RemoteParticipant.test.js +503 -408
  122. package/lib/simple/utils.js +503 -408
  123. package/lib/types/WebSocketMessage.js +2 -0
  124. package/lib/utils/__tests__/api-requester.test.js +25 -2
  125. package/lib/utils/api-requester.js +25 -2
  126. package/lib/web-rtc-client.js +214 -165
  127. package/lib/websocket-client.js +43 -17
  128. package/package.json +1 -1
  129. package/src/api/confd.js +5 -2
  130. package/src/domain/Call.js +3 -0
  131. package/src/domain/CallLog.js +4 -0
  132. package/src/domain/ChatMessage.js +4 -0
  133. package/src/domain/ChatRoom.js +3 -0
  134. package/src/domain/Contact.js +3 -0
  135. package/src/domain/Meeting.js +28 -5
  136. package/src/domain/Phone/CTIPhone.js +4 -0
  137. package/src/domain/Phone/Phone.js +2 -0
  138. package/src/domain/Phone/WebRTCPhone.js +49 -15
  139. package/src/domain/Recording.js +3 -0
  140. package/src/domain/Voicemail.js +3 -0
  141. package/src/domain/__tests__/Meeting.test.js +50 -0
  142. package/src/lib/WazoSessionDescriptionHandler.js +1 -35
  143. package/src/service/IssueReporter.js +25 -2
  144. package/src/simple/Phone.js +5 -0
  145. package/src/types/WebSocketMessage.js +5 -1
  146. package/src/web-rtc-client.js +41 -24
  147. package/src/websocket-client.js +2 -0
@@ -853,6 +853,9 @@ class Contact {
853
853
  }
854
854
 
855
855
  static parseMany(response ) {
856
+ if (!response || !response.results) {
857
+ return [];
858
+ }
856
859
  return response.results.map(r => Contact.parse(r, response.column_types));
857
860
  }
858
861
 
@@ -1559,6 +1562,9 @@ class Call {
1559
1562
 
1560
1563
 
1561
1564
  static parseMany(plain ) {
1565
+ if (!plain) {
1566
+ return [];
1567
+ }
1562
1568
  return plain.map((plainCall ) => Call.parse(plainCall));
1563
1569
  }
1564
1570
 
@@ -2102,6 +2108,9 @@ class Recording {
2102
2108
 
2103
2109
 
2104
2110
  static parseMany(recordings = []) {
2111
+ if (!recordings) {
2112
+ return [];
2113
+ }
2105
2114
  return recordings.map(item => Recording.parse(item));
2106
2115
  }
2107
2116
 
@@ -2203,6 +2212,10 @@ class CallLog {
2203
2212
  }
2204
2213
 
2205
2214
  static parseMany(plain ) {
2215
+ if (!plain || !plain.items) {
2216
+ return [];
2217
+ }
2218
+
2206
2219
  return plain.items.map(item => CallLog.parse(item));
2207
2220
  }
2208
2221
 
@@ -2519,6 +2532,7 @@ class IssueReporter {
2519
2532
 
2520
2533
 
2521
2534
 
2535
+
2522
2536
 
2523
2537
  constructor() {
2524
2538
  addLevelsTo(this);
@@ -2530,12 +2544,17 @@ class IssueReporter {
2530
2544
  this.bufferTimeout = null;
2531
2545
  this._boundProcessBuffer = this._processBuffer.bind(this);
2532
2546
  this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
2547
+ this._callback = null;
2533
2548
  }
2534
2549
 
2535
2550
  init() {
2536
2551
  this._catchConsole();
2537
2552
  }
2538
2553
 
2554
+ setCallback(cb ) {
2555
+ this._callback = cb;
2556
+ }
2557
+
2539
2558
  configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
2540
2559
  this.remoteClientConfiguration = configuration;
2541
2560
  }
@@ -2571,6 +2590,7 @@ class IssueReporter {
2571
2590
 
2572
2591
  // Handle category label
2573
2592
  let category = null;
2593
+ let skipSendToRemote = false;
2574
2594
  let extra = {};
2575
2595
  if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
2576
2596
  category = args[0].split('=')[1];
@@ -2586,6 +2606,7 @@ class IssueReporter {
2586
2606
  errorMessage: lastArg.message,
2587
2607
  errorStack: lastArg.stack,
2588
2608
  errorType: lastArg.constructor.name,
2609
+ skipSendToRemote: lastArg.skipSendToRemote,
2589
2610
  };
2590
2611
  } else {
2591
2612
  extra = lastArg;
@@ -2594,6 +2615,11 @@ class IssueReporter {
2594
2615
  args.splice(1, 1);
2595
2616
  }
2596
2617
 
2618
+ if (extra.skipSendToRemote) {
2619
+ skipSendToRemote = true;
2620
+ delete extra.skipSendToRemote;
2621
+ }
2622
+
2597
2623
  const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
2598
2624
  const message = args.join(', ');
2599
2625
  let consoleMessage = message;
@@ -2614,7 +2640,13 @@ class IssueReporter {
2614
2640
  const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
2615
2641
  oldMethod.apply(oldMethod, [date, consoleMessage]);
2616
2642
 
2617
- this._sendToRemoteLogger(level, { date, message, category, ...extra });
2643
+ if (this._callback) {
2644
+ this._callback(level, consoleMessage);
2645
+ }
2646
+
2647
+ if (!skipSendToRemote) {
2648
+ this._sendToRemoteLogger(level, { date, message, category, ...extra });
2649
+ }
2618
2650
  }
2619
2651
 
2620
2652
  logRequest(url , options , response , start ) {
@@ -2759,7 +2791,11 @@ class IssueReporter {
2759
2791
  },
2760
2792
  // $FlowFixMe
2761
2793
  body,
2762
- }).catch(() => {
2794
+ }).catch((e ) => {
2795
+ // $FlowFixMe
2796
+ e.skipSendToRemote = true;
2797
+ this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
2798
+
2763
2799
  setTimeout(() => {
2764
2800
  if (isArray) {
2765
2801
  payload = payload.map(message => {
@@ -2806,7 +2842,7 @@ var IssueReporter$1 = new IssueReporter();
2806
2842
 
2807
2843
  const methods = ['head', 'get', 'post', 'put', 'delete'];
2808
2844
 
2809
- const logger$2 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
2845
+ const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
2810
2846
 
2811
2847
  // Use a function here to be able to mock it in tests
2812
2848
  const realFetch = () => {
@@ -2945,7 +2981,7 @@ class ApiRequester {
2945
2981
  };
2946
2982
 
2947
2983
  if (this.refreshTokenPromise) {
2948
- logger$2.info('A token is already refreshing, waiting ...', { url });
2984
+ logger.info('A token is already refreshing, waiting ...', { url });
2949
2985
  await this.refreshTokenPromise;
2950
2986
  }
2951
2987
 
@@ -2965,7 +3001,7 @@ class ApiRequester {
2965
3001
  return promise.then(async (err ) => {
2966
3002
  // Check if the token is still valid
2967
3003
  if (firstCall && this._checkTokenExpired(response, err)) {
2968
- logger$2.warn('token expired', { error: err.reason });
3004
+ logger.warn('token expired', { error: err.reason });
2969
3005
  // Replay the call after refreshing the token
2970
3006
  return this._replayWithNewToken(err, path, method, body, headers, parse);
2971
3007
  }
@@ -2975,7 +3011,7 @@ class ApiRequester {
2975
3011
  : exceptionClass.fromResponse(err, response.status);
2976
3012
 
2977
3013
  if (this.shouldLogErrors) {
2978
- logger$2.error('API error', error);
3014
+ logger.error('API error', error);
2979
3015
  }
2980
3016
 
2981
3017
  throw error;
@@ -2985,7 +3021,7 @@ class ApiRequester {
2985
3021
  return newParse(response, isJson);
2986
3022
  }).catch(error => {
2987
3023
  if (this.shouldLogErrors) {
2988
- logger$2.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
3024
+ logger.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
2989
3025
  }
2990
3026
 
2991
3027
  throw error;
@@ -3013,13 +3049,13 @@ class ApiRequester {
3013
3049
  ) {
3014
3050
  const isTokenNotFound = this._isTokenNotFound(err);
3015
3051
  let newPath = path;
3016
- logger$2.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
3052
+ logger.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
3017
3053
 
3018
3054
  this.refreshTokenPromise = this.refreshTokenPromise || this.refreshTokenCallback();
3019
3055
 
3020
3056
  return this.refreshTokenPromise.then(() => {
3021
3057
  this.refreshTokenPromise = null;
3022
- logger$2.info('token refreshed', { isTokenNotFound });
3058
+ logger.info('token refreshed', { isTokenNotFound });
3023
3059
  if (isTokenNotFound) {
3024
3060
  const pathParts = path.split('/');
3025
3061
  pathParts.pop();
@@ -3489,8 +3525,9 @@ class ExternalApp {
3489
3525
 
3490
3526
 
3491
3527
 
3492
-
3528
+
3493
3529
 
3530
+
3494
3531
 
3495
3532
 
3496
3533
  class Meeting {
@@ -3501,9 +3538,10 @@ class Meeting {
3501
3538
 
3502
3539
 
3503
3540
 
3504
-
3541
+
3505
3542
 
3506
3543
 
3544
+
3507
3545
 
3508
3546
  static parse(plain ) {
3509
3547
  return new Meeting({
@@ -3513,24 +3551,43 @@ class Meeting {
3513
3551
  ownerUuids: plain.owner_uuids,
3514
3552
  port: plain.port,
3515
3553
  uuid: plain.uuid,
3516
- number: plain.number,
3554
+ extension: plain.exten,
3517
3555
  persistent: plain.persistent,
3556
+ creationTime: moment__default['default'](plain.creation_time).toDate(),
3518
3557
  });
3519
3558
  }
3520
3559
 
3560
+ static parseMany(items ) {
3561
+ if (!items) {
3562
+ return [];
3563
+ }
3564
+ return items.map(plain => Meeting.parse(plain));
3565
+ }
3566
+
3521
3567
  static newFrom(meeting ) {
3522
3568
  return newFrom(meeting, Meeting);
3523
3569
  }
3524
3570
 
3525
- constructor({ uuid, name, guestSipAuthorization, ownerUuids, port, uri, number, persistent } = {}) {
3571
+ constructor({
3572
+ uuid,
3573
+ name,
3574
+ guestSipAuthorization,
3575
+ ownerUuids,
3576
+ port,
3577
+ uri,
3578
+ extension,
3579
+ persistent,
3580
+ creationTime,
3581
+ } = {}) {
3526
3582
  this.guestSipAuthorization = guestSipAuthorization;
3527
3583
  this.uri = uri;
3528
3584
  this.name = name;
3529
3585
  this.ownerUuids = ownerUuids;
3530
3586
  this.port = port;
3531
3587
  this.uuid = uuid;
3532
- this.number = number;
3588
+ this.extension = extension;
3533
3589
  this.persistent = persistent;
3590
+ this.creationTime = creationTime;
3534
3591
 
3535
3592
  // Useful to compare instead of instanceof with minified code
3536
3593
  this.type = 'Meeting';
@@ -3608,8 +3665,11 @@ var confdMethods = (client , baseUrl ) => ({
3608
3665
  }
3609
3666
  },
3610
3667
 
3611
- createMyMeeting: (name ) =>
3612
- client.post(`${baseUrl}/users/me/meetings`, { name }).then(Meeting.parse),
3668
+ getMyMeetings: () =>
3669
+ client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
3670
+
3671
+ createMyMeeting: (name , persistent ) =>
3672
+ client.post(`${baseUrl}/users/me/meetings`, { name, persistent }).then(Meeting.parse),
3613
3673
 
3614
3674
  deleteMyMeeting: (meetingUuid ) =>
3615
3675
  client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
@@ -3662,6 +3722,10 @@ class ChatMessage {
3662
3722
 
3663
3723
 
3664
3724
  static parseMany(plain ) {
3725
+ if (!plain || !plain.items) {
3726
+ return [];
3727
+ }
3728
+
3665
3729
  return plain.items.map(item => ChatMessage.parse(item));
3666
3730
  }
3667
3731
 
@@ -3771,6 +3835,9 @@ class Voicemail {
3771
3835
  }
3772
3836
 
3773
3837
  static parseMany(plain ) {
3838
+ if (!plain) {
3839
+ return [];
3840
+ }
3774
3841
  const plainUnread = plain.folders.filter(folder => folder.type === 'new')[0].messages;
3775
3842
  const plainRead = plain.folders.filter(folder => folder.type === 'old')[0].messages;
3776
3843
 
@@ -4154,6 +4221,9 @@ class ChatRoom {
4154
4221
 
4155
4222
 
4156
4223
  static parseMany(plain ) {
4224
+ if (!plain || !plain.items) {
4225
+ return [];
4226
+ }
4157
4227
  return plain.items.map(item => ChatRoom.parse(item));
4158
4228
  }
4159
4229
 
@@ -5073,7 +5143,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
5073
5143
 
5074
5144
  // const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
5075
5145
 
5076
- const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
5146
+ const logger$2 = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
5077
5147
 
5078
5148
  class CTIPhone extends Emitter {
5079
5149
 
@@ -5086,7 +5156,7 @@ class CTIPhone extends Emitter {
5086
5156
 
5087
5157
  constructor(session , isMobile = false, callbackAllLines = false) {
5088
5158
  super();
5089
- logger.info('CTI Phone created');
5159
+ logger$2.info('CTI Phone created');
5090
5160
  this.session = session;
5091
5161
  this.isMobile = isMobile;
5092
5162
  this.callbackAllLines = callbackAllLines;
@@ -5147,7 +5217,7 @@ class CTIPhone extends Emitter {
5147
5217
  }
5148
5218
 
5149
5219
  async makeCall(number , line ) {
5150
- logger.info('make CTI call', { number });
5220
+ logger$2.info('make CTI call', { number });
5151
5221
 
5152
5222
  if (!number) {
5153
5223
  return null;
@@ -5170,7 +5240,7 @@ class CTIPhone extends Emitter {
5170
5240
  if (!callSession) {
5171
5241
  return Promise.resolve(null);
5172
5242
  }
5173
- logger.info('accept CTI call', { callId: callSession.getId(), number: callSession.number });
5243
+ logger$2.info('accept CTI call', { callId: callSession.getId(), number: callSession.number });
5174
5244
 
5175
5245
  if (!this.currentCall) {
5176
5246
  this.currentCall = callSession.call;
@@ -5183,7 +5253,7 @@ class CTIPhone extends Emitter {
5183
5253
  if (!callSession) {
5184
5254
  return;
5185
5255
  }
5186
- logger.info('end current CTI call', { callId: callSession.getId(), number: callSession.number });
5256
+ logger$2.info('end current CTI call', { callId: callSession.getId(), number: callSession.number });
5187
5257
 
5188
5258
  this.currentCall = undefined;
5189
5259
  this.eventEmitter.emit('onCallEnded', callSession);
@@ -5193,7 +5263,7 @@ class CTIPhone extends Emitter {
5193
5263
  if (!callSession) {
5194
5264
  return Promise.resolve(false);
5195
5265
  }
5196
- logger.info('hangup CTI call', { callId: callSession.getId(), number: callSession.number });
5266
+ logger$2.info('hangup CTI call', { callId: callSession.getId(), number: callSession.number });
5197
5267
 
5198
5268
  try {
5199
5269
  await CallApi.cancelCall(callSession);
@@ -5204,7 +5274,7 @@ class CTIPhone extends Emitter {
5204
5274
  this.eventEmitter.emit('onCallEnded', callSession);
5205
5275
  return true;
5206
5276
  } catch (e) {
5207
- logger.error('hangup CTI call, error', e);
5277
+ logger$2.error('hangup CTI call, error', e);
5208
5278
 
5209
5279
  this.eventEmitter.emit('onCallFailed', callSession);
5210
5280
  return false;
@@ -5217,7 +5287,7 @@ class CTIPhone extends Emitter {
5217
5287
  if (!callSession) {
5218
5288
  return;
5219
5289
  }
5220
- logger.info('reject CTI call', { callId: callSession.getId(), number: callSession.number });
5290
+ logger$2.info('reject CTI call', { callId: callSession.getId(), number: callSession.number });
5221
5291
 
5222
5292
  await CallApi.cancelCall(callSession);
5223
5293
  this.eventEmitter.emit('onCallEnded', callSession);
@@ -5227,7 +5297,7 @@ class CTIPhone extends Emitter {
5227
5297
  if (!callSession) {
5228
5298
  return;
5229
5299
  }
5230
- logger.info('transfer CTI call', { callId: callSession.getId(), number: callSession.number, to: number });
5300
+ logger$2.info('transfer CTI call', { callId: callSession.getId(), number: callSession.number, to: number });
5231
5301
 
5232
5302
  await CallApi.transferCall(callSession.callId, number, TRANSFER_FLOW_BLIND);
5233
5303
  }
@@ -5240,19 +5310,19 @@ class CTIPhone extends Emitter {
5240
5310
  if (!callSession) {
5241
5311
  return;
5242
5312
  }
5243
- logger.info('indirect CTI transfer', { callId: callSession.getId(), number: callSession.number, to: number });
5313
+ logger$2.info('indirect CTI transfer', { callId: callSession.getId(), number: callSession.number, to: number });
5244
5314
 
5245
5315
  return CallApi.transferCall(callSession.callId, number, TRANSFER_FLOW_ATTENDED);
5246
5316
  }
5247
5317
 
5248
5318
  async cancelCTIIndirectTransfer(transferId ) {
5249
- logger.info('cancel CTI transfer', { transferId });
5319
+ logger$2.info('cancel CTI transfer', { transferId });
5250
5320
 
5251
5321
  return CallApi.cancelCallTransfer(transferId);
5252
5322
  }
5253
5323
 
5254
5324
  async confirmCTIIndirectTransfer(transferId ) {
5255
- logger.info('confirm CTI transfer', { transferId });
5325
+ logger$2.info('confirm CTI transfer', { transferId });
5256
5326
 
5257
5327
  return CallApi.confirmCallTransfer(transferId);
5258
5328
  }
@@ -5261,19 +5331,19 @@ class CTIPhone extends Emitter {
5261
5331
  if (!callSession) {
5262
5332
  return;
5263
5333
  }
5264
- logger.info('send CTI key', { callId: callSession.getId(), number: callSession.number, digits });
5334
+ logger$2.info('send CTI key', { callId: callSession.getId(), number: callSession.number, digits });
5265
5335
 
5266
5336
  return CallApi.sendDTMF(callSession.callId, digits);
5267
5337
  }
5268
5338
 
5269
5339
  onConnectionMade() {
5270
- logger.info('on CTI connection made');
5340
+ logger$2.info('on CTI connection made');
5271
5341
 
5272
5342
  this.eventEmitter.emit('onCallAccepted');
5273
5343
  }
5274
5344
 
5275
5345
  async close() {
5276
- logger.info('CTI close');
5346
+ logger$2.info('CTI close');
5277
5347
 
5278
5348
  return Promise.resolve();
5279
5349
  }
@@ -5282,7 +5352,7 @@ class CTIPhone extends Emitter {
5282
5352
  if (!callSession) {
5283
5353
  return;
5284
5354
  }
5285
- logger.info('CTI hold', { callId: callSession.getId(), number: callSession.number });
5355
+ logger$2.info('CTI hold', { callId: callSession.getId(), number: callSession.number });
5286
5356
 
5287
5357
  return CallApi.hold(callSession.callId);
5288
5358
  }
@@ -5291,7 +5361,7 @@ class CTIPhone extends Emitter {
5291
5361
  if (!callSession) {
5292
5362
  return;
5293
5363
  }
5294
- logger.info('CTI resume', { callId: callSession.getId(), number: callSession.number });
5364
+ logger$2.info('CTI resume', { callId: callSession.getId(), number: callSession.number });
5295
5365
 
5296
5366
  return CallApi.resume(callSession.callId);
5297
5367
  }
@@ -5300,7 +5370,7 @@ class CTIPhone extends Emitter {
5300
5370
  if (!callSession) {
5301
5371
  return;
5302
5372
  }
5303
- logger.info('CTI mute', { callId: callSession.getId(), number: callSession.number });
5373
+ logger$2.info('CTI mute', { callId: callSession.getId(), number: callSession.number });
5304
5374
 
5305
5375
  return CallApi.mute(callSession.callId);
5306
5376
  }
@@ -5309,7 +5379,7 @@ class CTIPhone extends Emitter {
5309
5379
  if (!callSession) {
5310
5380
  return;
5311
5381
  }
5312
- logger.info('CTI unmute', { callId: callSession.getId(), number: callSession.number });
5382
+ logger$2.info('CTI unmute', { callId: callSession.getId(), number: callSession.number });
5313
5383
 
5314
5384
  return CallApi.unmute(callSession.callId);
5315
5385
  }
@@ -5338,6 +5408,10 @@ class CTIPhone extends Emitter {
5338
5408
  return false;
5339
5409
  }
5340
5410
 
5411
+ hasAVideoTrack() {
5412
+ return false;
5413
+ }
5414
+
5341
5415
  getLocalStreamForCall() {
5342
5416
  return null;
5343
5417
  }