@wazo/sdk 0.38.0 → 0.38.3

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 (45) hide show
  1. package/README.md +293 -0
  2. package/dist/wazo-sdk.js +5 -5
  3. package/esm/__tests__/web-rtc-client.test.js +1 -1
  4. package/esm/checker/Checker.js +1 -1
  5. package/esm/checker/checks/index.js +1 -1
  6. package/esm/checker/checks/webrtc-transport.js +1 -1
  7. package/esm/checker/checks/webrtc.js +1 -1
  8. package/esm/index.js +267 -25
  9. package/esm/simple/Auth.js +267 -25
  10. package/esm/simple/Configuration.js +267 -25
  11. package/esm/simple/Phone.js +267 -25
  12. package/esm/simple/Softphone.js +266 -24
  13. package/esm/simple/index.js +267 -25
  14. package/esm/simple/room/LocalParticipant.js +267 -25
  15. package/esm/simple/room/Participant.js +267 -25
  16. package/esm/simple/room/RemoteParticipant.js +267 -25
  17. package/esm/simple/room/Room.js +267 -25
  18. package/esm/simple/room/SipRoom.js +267 -25
  19. package/esm/simple/room/Stream.js +267 -25
  20. package/esm/simple/room/__tests__/RemoteParticipant.test.js +267 -25
  21. package/esm/simple/utils.js +267 -25
  22. package/esm/web-rtc-client.js +1 -1
  23. package/lib/__tests__/web-rtc-client.test.js +1 -1
  24. package/lib/checker/Checker.js +1 -1
  25. package/lib/checker/checks/index.js +1 -1
  26. package/lib/checker/checks/webrtc-transport.js +1 -1
  27. package/lib/checker/checks/webrtc.js +1 -1
  28. package/lib/index.js +267 -25
  29. package/lib/simple/Auth.js +267 -25
  30. package/lib/simple/Configuration.js +267 -25
  31. package/lib/simple/Phone.js +267 -25
  32. package/lib/simple/Softphone.js +266 -24
  33. package/lib/simple/index.js +267 -25
  34. package/lib/simple/room/LocalParticipant.js +267 -25
  35. package/lib/simple/room/Participant.js +267 -25
  36. package/lib/simple/room/RemoteParticipant.js +267 -25
  37. package/lib/simple/room/Room.js +267 -25
  38. package/lib/simple/room/SipRoom.js +267 -25
  39. package/lib/simple/room/Stream.js +267 -25
  40. package/lib/simple/room/__tests__/RemoteParticipant.test.js +267 -25
  41. package/lib/simple/utils.js +267 -25
  42. package/lib/web-rtc-client.js +1 -1
  43. package/package.json +1 -1
  44. package/src/simple/Softphone.js +264 -24
  45. package/src/web-rtc-client.js +1 -1
@@ -8326,7 +8326,7 @@ class WebRTCClient extends Emitter {
8326
8326
  }
8327
8327
 
8328
8328
  async _onHeartbeatTimeout() {
8329
- logger$8.info('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
8329
+ logger$8.warn('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
8330
8330
 
8331
8331
  if (this.heartbeatTimeoutCb) {
8332
8332
  this.heartbeatTimeoutCb();
@@ -13956,40 +13956,159 @@ class Checker {
13956
13956
  //
13957
13957
  /* eslint-disable no-unused-vars */
13958
13958
  /* global window, document */
13959
+ const BRIDGE_CONFIG_RETRIEVED = 'bridge/CONFIG_RETRIEVED';
13960
+ const BRIDGE_CREATE_OR_UPDATE_CARD = 'bridge/BRIDGE_CREATE_OR_UPDATE_CARD';
13961
+ const BRIDGE_OPTIONS_FETCHED = 'bridge/BRIDGE_OPTIONS_FETCHED';
13962
+ const BRIDGE_OPTIONS_FOUND = 'bridge/BRIDGE_OPTIONS_FOUND';
13963
+ const BRIDGE_SEARCH_OPTIONS = 'bridge/BRIDGE_SEARCH_OPTIONS';
13964
+ const BRIDGE_DISPLAY_LINKED_OPTION = 'bridge/DISPLAY_LINKED_OPTION';
13965
+ const BRIDGE_UPDATE_FORM_SCHEMA = 'bridge/BRIDGE_UPDATE_FORM_SCHEMA';
13966
+ const BRIDGE_WAZO_CONTACT_SEARCH = 'bridge/BRIDGE_WAZO_CONTACT_SEARCH';
13967
+ const BRIDGE_ON_AGENT_LOGGED_IN = 'bridge/BRIDGE_ON_AGENT_LOGGED_IN';
13968
+ const BRIDGE_ON_AGENT_LOGGED_OUT = 'bridge/BRIDGE_ON_AGENT_LOGGED_OUT';
13969
+ const BRIDGE_ON_AGENT_PAUSED = 'bridge/BRIDGE_ON_AGENT_PAUSED';
13970
+ const BRIDGE_ON_AGENT_RESUMED = 'bridge/BRIDGE_ON_AGENT_RESUMED';
13971
+ const BRIDGE_ON_LANGUAGE_CHANGED = 'bridge/BRIDGE_ON_LANGUAGE_CHANGED';
13972
+ const BRIDGE_ON_CALL_LOCALLY_ACCEPTED = 'bridge/BRIDGE_ON_CALL_LOCALLY_ACCEPTED';
13973
+ const BRIDGE_ON_CALL_REJECTED = 'bridge/BRIDGE_ON_CALL_REJECTED';
13974
+ const BRIDGE_ON_CALL_REMOTELY_ACCEPTED = 'bridge/BRIDGE_ON_CALL_REMOTELY_ACCEPTED';
13975
+ const BRIDGE_ON_CALL_HELD = 'bridge/BRIDGE_ON_CALL_HELD';
13976
+ const BRIDGE_ON_CALL_RESUMED = 'bridge/BRIDGE_ON_CALL_RESUMED';
13977
+ const BRIDGE_ON_CALL_MUTED = 'bridge/BRIDGE_ON_CALL_MUTED';
13978
+ const BRIDGE_ON_CALL_UN_MUTED = 'bridge/BRIDGE_ON_CALL_UN_MUTED';
13979
+ const BRIDGE_ON_DTMF = 'bridge/BRIDGE_ON_DTMF';
13980
+ const BRIDGE_ON_DIRECT_TRANSFER = 'bridge/BRIDGE_ON_DIRECT_TRANSFER';
13981
+ const BRIDGE_ON_CREATE_INDIRECT_TRANSFER = 'bridge/BRIDGE_ON_CREATE_INDIRECT_TRANSFER';
13982
+ const BRIDGE_ON_CANCEL_INDIRECT_TRANSFER = 'bridge/BRIDGE_ON_CANCEL_INDIRECT_TRANSFER';
13983
+ const BRIDGE_ON_CONFIRM_INDIRECT_TRANSFER = 'bridge/BRIDGE_ON_CONFIRM_INDIRECT_TRANSFER';
13984
+ const BRIDGE_ON_INDIRECT_TRANSFER_CALL_MADE = 'bridge/BRIDGE_ON_INDIRECT_TRANSFER_CALL_MADE';
13985
+ const BRIDGE_ON_INDIRECT_TRANSFER_DONE = 'bridge/BRIDGE_ON_INDIRECT_TRANSFER_DONE';
13986
+ const BRIDGE_ON_START_RECORDING = 'bridge/BRIDGE_ON_START_RECORDING';
13987
+ const BRIDGE_ON_STOP_RECORDING = 'bridge/BRIDGE_ON_STOP_RECORDING';
13988
+ const BRIDGE_ON_CARD_CANCELED = 'bridge/BRIDGE_ON_CARD_CANCELED';
13989
+ const BRIDGE_ENABLE_AGENT = 'bridge/BRIDGE_ENABLE_AGENT';
13990
+ const BRIDGE_SET_CARD_CONTENT = 'bridge/BRIDGE_SET_CARD_CONTENT';
13991
+ const BRIDGE_ENABLE_DEBUG = 'bridge/BRIDGE_ENABLE_DEBUG';
13992
+
13993
+ const BRIDGE_INJECT_CSS = 'bridge/BRIDGE_INJECT_CSS';
13994
+ const BRIDGE_CUSTOMIZE_APPEARANCE = 'bridge/BRIDGE_CUSTOMIZE_APPEARANCE';
13995
+
13959
13996
  const SDK_CLICK_TO_CALL = 'sdk/CLICK_TO_CALL';
13960
- const SDK_ON_CALL_MADE = 'sdk/SDK_ON_CALL_MADE';
13997
+ const SDK_ON_OUTGOING_CALL_MADE = 'sdk/SDK_ON_OUTGOING_CALL_MADE';
13961
13998
  const SDK_CALL_ENDED = 'sdk/ON_CALL_ENDED';
13962
13999
  const SDK_CALL_INCOMING = 'sdk/SDK_CALL_INCOMING';
13963
14000
  const SDK_AUTHENTICATED = 'sdk/SDK_AUTHENTICATED';
14001
+ const SDK_LOGGED_OUT = 'sdk/SDK_LOGGED_OUT';
13964
14002
 
13965
14003
  class Softphone {
13966
- url = 'https://softphone.wazo.io';
13967
- width = 500;
13968
- height = 600;
13969
- displayed = false;
13970
- iframe = null;
14004
+
14005
+
14006
+
14007
+
14008
+
14009
+
14010
+
14011
+ // Message waiting for the iframe to be loaded
14012
+
13971
14013
 
13972
14014
  onLinkEnabled(link ) {}
14015
+ onIFrameLoaded() {}
13973
14016
 
13974
- onCallMade(call ) {}
14017
+ onCallLocallyAnswered(call ) {}
14018
+ onCallRemotelyAnswered(call ) {}
14019
+ onOutgoingCallMade(call ) {}
13975
14020
  onCallIncoming(call ) {}
14021
+ onCallRejected(call ) {}
13976
14022
  onCallEnded(call , card , direction , fromExtension ) {}
14023
+
14024
+ onCardSaved(card ) {}
14025
+ onCardCanceled() {}
13977
14026
  onAuthenticated(session ) {}
14027
+ onLoggedOut() {}
14028
+
14029
+ onSearchOptions(fieldId , query ) {
14030
+ this.onOptionsResults(fieldId, []);
14031
+ }
14032
+
14033
+ onDisplayLinkedOption(optionId ) {}
14034
+ onWazoContactSearch(query ) {}
14035
+ onAgentLoggedIn() {}
14036
+ onAgentLoggedOut() {}
14037
+ onAgentPaused() {}
14038
+ onAgentResumed() {}
14039
+ onLanguageChanged(language ) {}
14040
+ onCallHeld() {}
14041
+ onCallResumed() {}
14042
+ onCallMuted() {}
14043
+ onCallUnMuted() {}
14044
+ onDtmfSent(tone ) {}
14045
+ onDirectTransfer(number ) {}
14046
+ onCreateIndirectTransfer(number ) {}
14047
+ onCancelIndirectTransfer() {}
14048
+ onConfirmIndirectTransfer() {}
14049
+ onIndirectCallMade(call ) {}
14050
+ onIndirectTransferDone(call ) {}
14051
+ onStartRecording() {}
14052
+ onStopRecording() {}
14053
+ onUnHandledEvent(event ) {}
14054
+
14055
+ init({
14056
+ url,
14057
+ width,
14058
+ height,
14059
+ server,
14060
+ port,
14061
+ language,
14062
+ wrapUpDuration,
14063
+ enableAgent = true,
14064
+ tenantId,
14065
+ debug = false,
14066
+ } = {}) {
14067
+ this.url = url || 'https://softphone.wazo.io';
14068
+ this.width = width || 500;
14069
+ this.height = height || 600;
14070
+ this.displayed = false;
14071
+ this.iframeLoaded = false;
14072
+
14073
+ this.iframeLoaded = false;
14074
+ this._pendingMessages = [];
14075
+ window.addEventListener('message', this._onMessage.bind(this), false);
14076
+
14077
+ if (!server) {
14078
+ // eslint-disable-next-line no-param-reassign
14079
+ server = 'stack.dev.wazo.io';
14080
+ }
13978
14081
 
13979
- init(url , width , height ) {
13980
- if (url) {
13981
- this.url = url;
14082
+ const config = { server };
14083
+ if (language) {
14084
+ config.language = language;
14085
+ }
14086
+ if (port) {
14087
+ config.port = port;
13982
14088
  }
13983
- if (width) {
13984
- this.width = width;
14089
+ if (tenantId) {
14090
+ config.tenantId = tenantId;
13985
14091
  }
13986
- if (height) {
13987
- this.height = height;
14092
+ if (wrapUpDuration) {
14093
+ config.wrapUpDuration = wrapUpDuration;
13988
14094
  }
13989
14095
 
13990
- window.addEventListener('message', this._onMessage.bind(this), false);
14096
+ this._sendMessage(BRIDGE_CONFIG_RETRIEVED, { config });
13991
14097
 
13992
- this._createIframe();
14098
+ if (enableAgent) {
14099
+ this._sendMessage(BRIDGE_ENABLE_AGENT);
14100
+ }
14101
+
14102
+ if (debug) {
14103
+ this._sendMessage(BRIDGE_ENABLE_DEBUG);
14104
+ }
14105
+
14106
+ this._createIframe(() => {
14107
+ this.iframeLoaded = true;
14108
+ this._pendingMessages.forEach(([type, payload]) => this._sendMessage(type, payload));
14109
+
14110
+ this.onIFrameLoaded();
14111
+ });
13993
14112
  }
13994
14113
 
13995
14114
  parseLinks() {
@@ -14005,9 +14124,7 @@ class Softphone {
14005
14124
  makeCall(number ) {
14006
14125
  this.displaySoftphone();
14007
14126
 
14008
- if (this.iframe) {
14009
- this.iframe.contentWindow.postMessage({ type: SDK_CLICK_TO_CALL, number }, '*');
14010
- }
14127
+ this._sendMessage(SDK_CLICK_TO_CALL, { number });
14011
14128
  }
14012
14129
 
14013
14130
  toggleSoftphoneDisplay() {
@@ -14016,8 +14133,6 @@ class Softphone {
14016
14133
  } else {
14017
14134
  this.displaySoftphone();
14018
14135
  }
14019
-
14020
- this.displayed = !this.displayed;
14021
14136
  }
14022
14137
 
14023
14138
  displaySoftphone() {
@@ -14028,15 +14143,42 @@ class Softphone {
14028
14143
  if (this.iframe) {
14029
14144
  this.iframe.style.display = 'block';
14030
14145
  }
14146
+
14147
+ this.displayed = true;
14031
14148
  }
14032
14149
 
14033
14150
  hideSoftphone() {
14034
14151
  if (this.iframe) {
14035
14152
  this.iframe.style.display = 'none';
14036
14153
  }
14154
+ this.displayed = false;
14155
+ }
14156
+
14157
+ optionsFetched(fieldId , options ) {
14158
+ this._sendMessage(BRIDGE_OPTIONS_FETCHED, { fieldId, options });
14159
+ }
14160
+
14161
+ onOptionsResults(fieldId , options ) {
14162
+ this._sendMessage(BRIDGE_OPTIONS_FOUND, { fieldId, options });
14163
+ }
14164
+
14165
+ setFormSchema(schema , uiSchema ) {
14166
+ this._sendMessage(BRIDGE_UPDATE_FORM_SCHEMA, { schema, uiSchema });
14167
+ }
14168
+
14169
+ setCardValue(field , value ) {
14170
+ this._sendMessage(BRIDGE_SET_CARD_CONTENT, { field, value });
14171
+ }
14172
+
14173
+ injectCss(css ) {
14174
+ this._sendMessage(BRIDGE_INJECT_CSS, { css });
14037
14175
  }
14038
14176
 
14039
- _createIframe() {
14177
+ customizeAppearance(themes , translations , assets ) {
14178
+ this._sendMessage(BRIDGE_CUSTOMIZE_APPEARANCE, { themes, translations, assets });
14179
+ }
14180
+
14181
+ _createIframe(cb = () => {}) {
14040
14182
  this.iframe = document.createElement('iframe');
14041
14183
  // $FlowFixMe
14042
14184
  this.iframe.width = this.width;
@@ -14048,10 +14190,13 @@ class Softphone {
14048
14190
  this.iframe.style.left = '0';
14049
14191
  this.iframe.style.bottom = '0';
14050
14192
  this.iframe.style.border = '1px solid #aaa';
14193
+ this.iframe.style.backgroundColor = 'white';
14051
14194
  this.iframe.src = this.url;
14052
14195
  this.iframe.style.display = 'none';
14053
14196
  this.iframe.id = 'wazo-softphone';
14054
14197
 
14198
+ this.iframe.onload = cb;
14199
+
14055
14200
  // $FlowFixMe
14056
14201
  document.body.appendChild(this.iframe);
14057
14202
  }
@@ -14078,8 +14223,8 @@ class Softphone {
14078
14223
  }
14079
14224
 
14080
14225
  switch (event.data.type) {
14081
- case SDK_ON_CALL_MADE:
14082
- this.onCallMade(event.data.callSession);
14226
+ case SDK_ON_OUTGOING_CALL_MADE:
14227
+ this.onOutgoingCallMade(event.data.callSession);
14083
14228
  break;
14084
14229
  case SDK_CALL_ENDED: {
14085
14230
  const { callSession, content, direction, userExtension } = event.data;
@@ -14094,8 +14239,105 @@ class Softphone {
14094
14239
  this._onAuthenticated(event.data.session);
14095
14240
  this.onAuthenticated(event.data.session);
14096
14241
  break;
14242
+ case SDK_LOGGED_OUT:
14243
+ this.onLoggedOut();
14244
+ break;
14245
+ case BRIDGE_CREATE_OR_UPDATE_CARD: {
14246
+ const { content } = event.data;
14247
+ this.onCardSaved(content);
14248
+ break;
14249
+ }
14250
+ case BRIDGE_SEARCH_OPTIONS: {
14251
+ const { fieldId, query } = event.data;
14252
+ this.onSearchOptions(fieldId, query);
14253
+ break;
14254
+ }
14255
+ case BRIDGE_DISPLAY_LINKED_OPTION:
14256
+ this.onDisplayLinkedOption(event.data.linkedOptionId);
14257
+ break;
14258
+ case BRIDGE_WAZO_CONTACT_SEARCH:
14259
+ this.onWazoContactSearch(event.data.query);
14260
+ break;
14261
+ case BRIDGE_ON_AGENT_LOGGED_IN:
14262
+ this.onAgentLoggedIn();
14263
+ break;
14264
+ case BRIDGE_ON_AGENT_LOGGED_OUT:
14265
+ this.onAgentLoggedOut();
14266
+ break;
14267
+ case BRIDGE_ON_AGENT_PAUSED:
14268
+ this.onAgentPaused();
14269
+ break;
14270
+ case BRIDGE_ON_AGENT_RESUMED:
14271
+ this.onAgentResumed();
14272
+ break;
14273
+ case BRIDGE_ON_LANGUAGE_CHANGED:
14274
+ this.onLanguageChanged(event.data.language);
14275
+ break;
14276
+ case BRIDGE_ON_CALL_HELD:
14277
+ this.onCallHeld();
14278
+ break;
14279
+ case BRIDGE_ON_CALL_RESUMED:
14280
+ this.onCallResumed();
14281
+ break;
14282
+ case BRIDGE_ON_CALL_MUTED:
14283
+ this.onCallMuted();
14284
+ break;
14285
+ case BRIDGE_ON_CALL_UN_MUTED:
14286
+ this.onCallUnMuted();
14287
+ break;
14288
+ case BRIDGE_ON_DTMF:
14289
+ this.onDtmfSent(event.data.tone);
14290
+ break;
14291
+ case BRIDGE_ON_DIRECT_TRANSFER:
14292
+ this.onDirectTransfer(event.data.number);
14293
+ break;
14294
+ case BRIDGE_ON_CREATE_INDIRECT_TRANSFER:
14295
+ this.onCreateIndirectTransfer(event.data.number);
14296
+ break;
14297
+ case BRIDGE_ON_CANCEL_INDIRECT_TRANSFER:
14298
+ this.onCancelIndirectTransfer();
14299
+ break;
14300
+ case BRIDGE_ON_CONFIRM_INDIRECT_TRANSFER:
14301
+ this.onConfirmIndirectTransfer();
14302
+ break;
14303
+ case BRIDGE_ON_INDIRECT_TRANSFER_CALL_MADE:
14304
+ this.onIndirectCallMade(event.data.call);
14305
+ break;
14306
+ case BRIDGE_ON_INDIRECT_TRANSFER_DONE:
14307
+ this.onIndirectTransferDone(event.data.call);
14308
+ break;
14309
+ case BRIDGE_ON_START_RECORDING:
14310
+ this.onStartRecording();
14311
+ break;
14312
+ case BRIDGE_ON_STOP_RECORDING:
14313
+ this.onStopRecording();
14314
+ break;
14315
+ case BRIDGE_ON_CARD_CANCELED:
14316
+ this.onCardCanceled();
14317
+ break;
14318
+ case BRIDGE_ON_CALL_LOCALLY_ACCEPTED:
14319
+ this.onCallLocallyAnswered(event.data.call);
14320
+ break;
14321
+ case BRIDGE_ON_CALL_REJECTED:
14322
+ this.onCallRejected(event.data.call);
14323
+ break;
14324
+ case BRIDGE_ON_CALL_REMOTELY_ACCEPTED:
14325
+ this.onCallRemotelyAnswered(event.data.call);
14326
+ break;
14327
+ default:
14328
+ this.onUnHandledEvent(event);
14329
+ break;
14097
14330
  }
14098
14331
  }
14332
+
14333
+ _sendMessage(type , payload = {}) {
14334
+ if (!this.iframe || !this.iframeLoaded) {
14335
+ this._pendingMessages.push([type, payload]);
14336
+ return;
14337
+ }
14338
+
14339
+ this.iframe.contentWindow.postMessage({ type, ...payload }, '*');
14340
+ }
14099
14341
  }
14100
14342
 
14101
14343
  var Softphone$1 = new Softphone();
@@ -6956,7 +6956,7 @@ class WebRTCClient extends Emitter {
6956
6956
  }
6957
6957
 
6958
6958
  async _onHeartbeatTimeout() {
6959
- logger.info('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6959
+ logger.warn('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6960
6960
 
6961
6961
  if (this.heartbeatTimeoutCb) {
6962
6962
  this.heartbeatTimeoutCb();
@@ -6962,7 +6962,7 @@ class WebRTCClient extends Emitter {
6962
6962
  }
6963
6963
 
6964
6964
  async _onHeartbeatTimeout() {
6965
- logger.info('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6965
+ logger.warn('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6966
6966
 
6967
6967
  if (this.heartbeatTimeoutCb) {
6968
6968
  this.heartbeatTimeoutCb();
@@ -7548,7 +7548,7 @@ class WebRTCClient extends Emitter {
7548
7548
  }
7549
7549
 
7550
7550
  async _onHeartbeatTimeout() {
7551
- logger$1.info('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
7551
+ logger$1.warn('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
7552
7552
 
7553
7553
  if (this.heartbeatTimeoutCb) {
7554
7554
  this.heartbeatTimeoutCb();
@@ -7548,7 +7548,7 @@ class WebRTCClient extends Emitter {
7548
7548
  }
7549
7549
 
7550
7550
  async _onHeartbeatTimeout() {
7551
- logger.info('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
7551
+ logger.warn('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
7552
7552
 
7553
7553
  if (this.heartbeatTimeoutCb) {
7554
7554
  this.heartbeatTimeoutCb();
@@ -6962,7 +6962,7 @@ class WebRTCClient extends Emitter {
6962
6962
  }
6963
6963
 
6964
6964
  async _onHeartbeatTimeout() {
6965
- logger.info('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6965
+ logger.warn('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6966
6966
 
6967
6967
  if (this.heartbeatTimeoutCb) {
6968
6968
  this.heartbeatTimeoutCb();
@@ -6962,7 +6962,7 @@ class WebRTCClient extends Emitter {
6962
6962
  }
6963
6963
 
6964
6964
  async _onHeartbeatTimeout() {
6965
- logger.info('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6965
+ logger.warn('sdk webrtc heartbeat timed out', { userAgent: !!this.userAgent, cb: !!this.heartbeatTimeoutCb });
6966
6966
 
6967
6967
  if (this.heartbeatTimeoutCb) {
6968
6968
  this.heartbeatTimeoutCb();