@wazo/sdk 0.37.23 → 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 (103) hide show
  1. package/dist/wazo-sdk.js +6 -6
  2. package/esm/__tests__/api-client.test.js +22 -17
  3. package/esm/__tests__/web-rtc-client.test.js +105 -100
  4. package/esm/api/amid.js +1 -1
  5. package/esm/api/call-logd.js +2 -2
  6. package/esm/api/confd.js +10 -5
  7. package/esm/api/ctid-ng.js +3 -3
  8. package/esm/api/dird.js +1 -1
  9. package/esm/api/webhookd.js +1 -1
  10. package/esm/api-client.js +22 -17
  11. package/esm/checker/Checker.js +130 -125
  12. package/esm/checker/checks/aor.js +22 -17
  13. package/esm/checker/checks/api.js +22 -17
  14. package/esm/checker/checks/index.js +120 -115
  15. package/esm/checker/checks/wazo-websocket.js +15 -15
  16. package/esm/checker/checks/webrtc-transport.js +105 -100
  17. package/esm/checker/checks/webrtc.js +105 -100
  18. package/esm/domain/AdHocAPIConference.js +22 -17
  19. package/esm/domain/CallLog.js +1 -1
  20. package/esm/domain/Contact.js +1 -1
  21. package/esm/domain/Features.js +22 -17
  22. package/esm/domain/Meeting.js +12 -5
  23. package/esm/domain/Phone/CTIPhone.js +36 -31
  24. package/esm/domain/Phone/WebRTCPhone.js +110 -87
  25. package/esm/domain/__tests__/CallLog.test.js +1 -1
  26. package/esm/domain/__tests__/Contact.test.js +1 -1
  27. package/esm/domain/__tests__/Meeting.test.js +144 -0
  28. package/esm/index.js +365 -337
  29. package/esm/lib/WazoSessionDescriptionHandler.js +1 -1
  30. package/esm/service/CallApi.js +22 -17
  31. package/esm/service/IssueReporter.js +1 -1
  32. package/esm/service/__tests__/IssueReporter.test.js +1 -1
  33. package/esm/service/getApiClient.js +22 -17
  34. package/esm/simple/Auth.js +355 -327
  35. package/esm/simple/Configuration.js +355 -327
  36. package/esm/simple/Directory.js +22 -17
  37. package/esm/simple/Phone.js +355 -327
  38. package/esm/simple/Websocket.js +17 -17
  39. package/esm/simple/index.js +359 -331
  40. package/esm/simple/room/LocalParticipant.js +359 -331
  41. package/esm/simple/room/Participant.js +359 -331
  42. package/esm/simple/room/RemoteParticipant.js +359 -331
  43. package/esm/simple/room/Room.js +360 -332
  44. package/esm/simple/room/SipRoom.js +359 -331
  45. package/esm/simple/room/Stream.js +359 -331
  46. package/esm/simple/room/__tests__/RemoteParticipant.test.js +359 -331
  47. package/esm/simple/utils.js +359 -331
  48. package/esm/types/WebSocketMessage.js +1 -1
  49. package/esm/web-rtc-client.js +105 -100
  50. package/esm/websocket-client.js +15 -15
  51. package/lib/__tests__/api-client.test.js +22 -17
  52. package/lib/__tests__/web-rtc-client.test.js +105 -100
  53. package/lib/api/amid.js +1 -1
  54. package/lib/api/call-logd.js +2 -2
  55. package/lib/api/confd.js +10 -5
  56. package/lib/api/ctid-ng.js +3 -3
  57. package/lib/api/dird.js +1 -1
  58. package/lib/api/webhookd.js +1 -1
  59. package/lib/api-client.js +22 -17
  60. package/lib/checker/Checker.js +130 -125
  61. package/lib/checker/checks/aor.js +22 -17
  62. package/lib/checker/checks/api.js +22 -17
  63. package/lib/checker/checks/index.js +120 -115
  64. package/lib/checker/checks/wazo-websocket.js +15 -15
  65. package/lib/checker/checks/webrtc-transport.js +105 -100
  66. package/lib/checker/checks/webrtc.js +105 -100
  67. package/lib/domain/AdHocAPIConference.js +22 -17
  68. package/lib/domain/CallLog.js +1 -1
  69. package/lib/domain/Contact.js +1 -1
  70. package/lib/domain/Features.js +22 -17
  71. package/lib/domain/Meeting.js +16 -5
  72. package/lib/domain/Phone/CTIPhone.js +36 -31
  73. package/lib/domain/Phone/WebRTCPhone.js +110 -87
  74. package/lib/domain/__tests__/CallLog.test.js +1 -1
  75. package/lib/domain/__tests__/Contact.test.js +1 -1
  76. package/lib/domain/__tests__/Meeting.test.js +150 -0
  77. package/lib/index.js +365 -337
  78. package/lib/lib/WazoSessionDescriptionHandler.js +1 -1
  79. package/lib/service/CallApi.js +22 -17
  80. package/lib/service/IssueReporter.js +1 -1
  81. package/lib/service/__tests__/IssueReporter.test.js +1 -1
  82. package/lib/service/getApiClient.js +22 -17
  83. package/lib/simple/Auth.js +355 -327
  84. package/lib/simple/Configuration.js +355 -327
  85. package/lib/simple/Directory.js +22 -17
  86. package/lib/simple/Phone.js +355 -327
  87. package/lib/simple/Websocket.js +17 -17
  88. package/lib/simple/index.js +359 -331
  89. package/lib/simple/room/LocalParticipant.js +359 -331
  90. package/lib/simple/room/Participant.js +359 -331
  91. package/lib/simple/room/RemoteParticipant.js +359 -331
  92. package/lib/simple/room/Room.js +360 -332
  93. package/lib/simple/room/SipRoom.js +359 -331
  94. package/lib/simple/room/Stream.js +359 -331
  95. package/lib/simple/room/__tests__/RemoteParticipant.test.js +359 -331
  96. package/lib/simple/utils.js +359 -331
  97. package/lib/types/WebSocketMessage.js +2 -0
  98. package/lib/web-rtc-client.js +105 -100
  99. package/lib/websocket-client.js +15 -15
  100. package/package.json +1 -1
  101. package/src/domain/Meeting.js +12 -5
  102. package/src/domain/Phone/WebRTCPhone.js +24 -1
  103. package/src/domain/__tests__/Meeting.test.js +50 -0
@@ -35,7 +35,7 @@ const isMobile = () => typeof navigator !== 'undefined' && navigator.product ===
35
35
 
36
36
  /* */
37
37
 
38
- IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
38
+ const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
39
39
 
40
40
  // Use a function here to be able to mock it in tests
41
41
  const realFetch = () => {
@@ -611,7 +611,7 @@ const BLACKLIST_EVENTS = [
611
611
  ];
612
612
 
613
613
  const HEARTBEAT_ENGINE_VERSION = '20.09';
614
- const logger = IssueReporter$1.loggerFor('wazo-ws');
614
+ const logger$1 = IssueReporter$1.loggerFor('wazo-ws');
615
615
  const messageLogger = IssueReporter$1.loggerFor('wazo-ws-message');
616
616
 
617
617
  class WebSocketClient extends Emitter {
@@ -660,19 +660,19 @@ class WebSocketClient extends Emitter {
660
660
  }
661
661
 
662
662
  connect() {
663
- logger.info('connect method started', { host: this.host, token: this.token });
663
+ logger$1.info('connect method started', { host: this.host, token: this.token });
664
664
  this.socket = new ReconnectingWebSocket(this._getUrl.bind(this), [], this.options);
665
665
  if (this.options.binaryType) {
666
666
  this.socket.binaryType = this.options.binaryType;
667
667
  }
668
668
 
669
669
  this.socket.onopen = () => {
670
- logger.info('on Wazo WS open', { method: 'connect', host: this.host });
670
+ logger$1.info('on Wazo WS open', { method: 'connect', host: this.host });
671
671
  this.eventEmitter.emit(SOCKET_EVENTS.ON_OPEN);
672
672
  };
673
673
 
674
674
  this.socket.onerror = event => {
675
- logger.error('on Wazo WS error', event.target);
675
+ logger$1.error('on Wazo WS error', event.target);
676
676
  this.eventEmitter.emit(SOCKET_EVENTS.ON_ERROR, event);
677
677
  };
678
678
 
@@ -702,7 +702,7 @@ class WebSocketClient extends Emitter {
702
702
 
703
703
  this.socket.onclose = event => {
704
704
  // Can't be converted to JSON (circular structure)
705
- logger.info('on Wazo WS close', {
705
+ logger$1.info('on Wazo WS close', {
706
706
  reason: event.reason,
707
707
  code: event.code,
708
708
  readyState: event.target.readyState,
@@ -720,12 +720,12 @@ class WebSocketClient extends Emitter {
720
720
  };
721
721
 
722
722
  this.socket.onerror = event => {
723
- logger.info('Wazo WS error', { message: event.message, code: event.code, readyState: event.target.readyState });
723
+ logger$1.info('Wazo WS error', { message: event.message, code: event.code, readyState: event.target.readyState });
724
724
  };
725
725
  }
726
726
 
727
727
  close(force = false) {
728
- logger.info('Wazo WS close', { socket: !!this.socket, host: this.host, token: this.token });
728
+ logger$1.info('Wazo WS close', { socket: !!this.socket, host: this.host, token: this.token });
729
729
 
730
730
  if (!this.socket) {
731
731
  return;
@@ -743,7 +743,7 @@ class WebSocketClient extends Emitter {
743
743
 
744
744
  updateToken(token ) {
745
745
  this.token = token;
746
- logger.info('Wazo WS updating token', { url: this._getUrl(), token, socket: !!this.socket });
746
+ logger$1.info('Wazo WS updating token', { url: this._getUrl(), token, socket: !!this.socket });
747
747
 
748
748
  if (this.socket) {
749
749
  // If still connected, send the token to the WS
@@ -761,7 +761,7 @@ class WebSocketClient extends Emitter {
761
761
  }
762
762
 
763
763
  startHeartbeat() {
764
- logger.info('Wazo WS start heartbeat', { host: this.host, token: this.token });
764
+ logger$1.info('Wazo WS start heartbeat', { host: this.host, token: this.token });
765
765
 
766
766
  if (!this.socket) {
767
767
  this.heartbeat.stop();
@@ -775,7 +775,7 @@ class WebSocketClient extends Emitter {
775
775
  }
776
776
 
777
777
  stopHeartbeat() {
778
- logger.info('Wazo WS stop heartbeat', { host: this.host, token: this.token });
778
+ logger$1.info('Wazo WS stop heartbeat', { host: this.host, token: this.token });
779
779
 
780
780
  this.heartbeat.stop();
781
781
  }
@@ -805,7 +805,7 @@ class WebSocketClient extends Emitter {
805
805
  }
806
806
 
807
807
  reconnect(reason ) {
808
- logger.info('Wazo WS reconnect', { reason, socket: !!this.socket, host: this.host, token: this.token });
808
+ logger$1.info('Wazo WS reconnect', { reason, socket: !!this.socket, host: this.host, token: this.token });
809
809
  if (!this.socket) {
810
810
  return;
811
811
  }
@@ -861,7 +861,7 @@ class WebSocketClient extends Emitter {
861
861
  this.close();
862
862
  }
863
863
  const url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
864
- logger.log('Wazo WS url computed to reconnect', { url });
864
+ logger$1.log('Wazo WS url computed to reconnect', { url });
865
865
 
866
866
  return url;
867
867
  }
@@ -869,12 +869,12 @@ class WebSocketClient extends Emitter {
869
869
  _onHeartbeat(message ) {
870
870
  if (message.payload === 'pong') {
871
871
  this.heartbeat.onHeartbeat();
872
- logger.log('on heartbeat received from Wazo WS');
872
+ logger$1.log('on heartbeat received from Wazo WS');
873
873
  }
874
874
  }
875
875
 
876
876
  async _onHeartbeatTimeout() {
877
- logger.log('heartbeat timed out', { host: this.host, token: this.token });
877
+ logger$1.log('heartbeat timed out', { host: this.host, token: this.token });
878
878
 
879
879
  this.close();
880
880
  this.eventEmitter.emit(SOCKET_EVENTS.ON_CLOSE, new Error('Websocket ping failure.'));
@@ -446,7 +446,7 @@ var IssueReporter$1 = new IssueReporter();
446
446
 
447
447
  const methods = ['head', 'get', 'post', 'put', 'delete'];
448
448
 
449
- const logger$1 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
449
+ const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
450
450
 
451
451
  // Use a function here to be able to mock it in tests
452
452
  const realFetch = () => {
@@ -585,7 +585,7 @@ class ApiRequester {
585
585
  };
586
586
 
587
587
  if (this.refreshTokenPromise) {
588
- logger$1.info('A token is already refreshing, waiting ...', { url });
588
+ logger.info('A token is already refreshing, waiting ...', { url });
589
589
  await this.refreshTokenPromise;
590
590
  }
591
591
 
@@ -605,7 +605,7 @@ class ApiRequester {
605
605
  return promise.then(async (err ) => {
606
606
  // Check if the token is still valid
607
607
  if (firstCall && this._checkTokenExpired(response, err)) {
608
- logger$1.warn('token expired', { error: err.reason });
608
+ logger.warn('token expired', { error: err.reason });
609
609
  // Replay the call after refreshing the token
610
610
  return this._replayWithNewToken(err, path, method, body, headers, parse);
611
611
  }
@@ -615,7 +615,7 @@ class ApiRequester {
615
615
  : exceptionClass.fromResponse(err, response.status);
616
616
 
617
617
  if (this.shouldLogErrors) {
618
- logger$1.error('API error', error);
618
+ logger.error('API error', error);
619
619
  }
620
620
 
621
621
  throw error;
@@ -625,7 +625,7 @@ class ApiRequester {
625
625
  return newParse(response, isJson);
626
626
  }).catch(error => {
627
627
  if (this.shouldLogErrors) {
628
- logger$1.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
628
+ logger.error('Fetch failed', { url, options, message: error.message, stack: error.stack });
629
629
  }
630
630
 
631
631
  throw error;
@@ -653,13 +653,13 @@ class ApiRequester {
653
653
  ) {
654
654
  const isTokenNotFound = this._isTokenNotFound(err);
655
655
  let newPath = path;
656
- logger$1.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
656
+ logger.info('refreshing token', { inProgress: !!this.refreshTokenPromise });
657
657
 
658
658
  this.refreshTokenPromise = this.refreshTokenPromise || this.refreshTokenCallback();
659
659
 
660
660
  return this.refreshTokenPromise.then(() => {
661
661
  this.refreshTokenPromise = null;
662
- logger$1.info('token refreshed', { isTokenNotFound });
662
+ logger.info('token refreshed', { isTokenNotFound });
663
663
  if (isTokenNotFound) {
664
664
  const pathParts = path.split('/');
665
665
  pathParts.pop();
@@ -2617,8 +2617,9 @@ class ExternalApp {
2617
2617
 
2618
2618
 
2619
2619
 
2620
-
2620
+
2621
2621
 
2622
+
2622
2623
 
2623
2624
 
2624
2625
  class Meeting {
@@ -2629,9 +2630,10 @@ class Meeting {
2629
2630
 
2630
2631
 
2631
2632
 
2632
-
2633
+
2633
2634
 
2634
2635
 
2636
+
2635
2637
 
2636
2638
  static parse(plain ) {
2637
2639
  return new Meeting({
@@ -2641,8 +2643,9 @@ class Meeting {
2641
2643
  ownerUuids: plain.owner_uuids,
2642
2644
  port: plain.port,
2643
2645
  uuid: plain.uuid,
2644
- number: plain.number,
2646
+ extension: plain.exten,
2645
2647
  persistent: plain.persistent,
2648
+ creationTime: moment__default['default'](plain.creation_time).toDate(),
2646
2649
  });
2647
2650
  }
2648
2651
 
@@ -2664,8 +2667,9 @@ class Meeting {
2664
2667
  ownerUuids,
2665
2668
  port,
2666
2669
  uri,
2667
- number,
2670
+ extension,
2668
2671
  persistent,
2672
+ creationTime,
2669
2673
  } = {}) {
2670
2674
  this.guestSipAuthorization = guestSipAuthorization;
2671
2675
  this.uri = uri;
@@ -2673,8 +2677,9 @@ class Meeting {
2673
2677
  this.ownerUuids = ownerUuids;
2674
2678
  this.port = port;
2675
2679
  this.uuid = uuid;
2676
- this.number = number;
2680
+ this.extension = extension;
2677
2681
  this.persistent = persistent;
2682
+ this.creationTime = creationTime;
2678
2683
 
2679
2684
  // Useful to compare instead of instanceof with minified code
2680
2685
  this.type = 'Meeting';
@@ -3596,7 +3601,7 @@ const TRANSFER_FLOW_BLIND = 'blind';
3596
3601
 
3597
3602
  // const MINIMUM_WAZO_ENGINE_VERSION_FOR_CTI_HOLD = '20.11';
3598
3603
 
3599
- IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
3604
+ const logger$1 = IssueReporter$1 ? IssueReporter$1.loggerFor('cti-phone') : console;
3600
3605
 
3601
3606
  /* */
3602
3607
 
@@ -4515,7 +4520,7 @@ const AGENTD_VERSION = '1.0';
4515
4520
  const WEBHOOKD_VERSION = '1.0';
4516
4521
  const AMID_VERSION = '1.0';
4517
4522
 
4518
- const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
4523
+ const logger$2 = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
4519
4524
 
4520
4525
  class ApiClient {
4521
4526
 
@@ -4567,12 +4572,12 @@ class ApiClient {
4567
4572
  }
4568
4573
 
4569
4574
  async forceRefreshToken() {
4570
- logger.info('forcing refresh token, calling callback');
4575
+ logger$2.info('forcing refresh token, calling callback');
4571
4576
  return this.refreshTokenCallback();
4572
4577
  }
4573
4578
 
4574
4579
  async refreshTokenCallback() {
4575
- logger.info('refresh token callback called', {
4580
+ logger$2.info('refresh token callback called', {
4576
4581
  refreshToken: this.refreshToken,
4577
4582
  refreshBackend: this.refreshBackend,
4578
4583
  refreshExpiration: this.refreshExpiration,
@@ -4590,7 +4595,7 @@ class ApiClient {
4590
4595
  this.isMobile,
4591
4596
  );
4592
4597
 
4593
- logger.info('token refreshed', { token: session.token });
4598
+ logger$2.info('token refreshed', { token: session.token });
4594
4599
 
4595
4600
  if (this.onRefreshToken) {
4596
4601
  this.onRefreshToken(session.token, session);