@wazo/sdk 0.37.43 → 0.38.2

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 (46) hide show
  1. package/README.md +246 -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 +361 -1
  9. package/esm/simple/Auth.js +361 -1
  10. package/esm/simple/Configuration.js +361 -1
  11. package/esm/simple/Phone.js +361 -1
  12. package/esm/simple/Softphone.js +360 -0
  13. package/esm/simple/index.js +361 -1
  14. package/esm/simple/room/LocalParticipant.js +361 -1
  15. package/esm/simple/room/Participant.js +361 -1
  16. package/esm/simple/room/RemoteParticipant.js +361 -1
  17. package/esm/simple/room/Room.js +361 -1
  18. package/esm/simple/room/SipRoom.js +361 -1
  19. package/esm/simple/room/Stream.js +361 -1
  20. package/esm/simple/room/__tests__/RemoteParticipant.test.js +361 -1
  21. package/esm/simple/utils.js +361 -1
  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 +361 -1
  29. package/lib/simple/Auth.js +361 -1
  30. package/lib/simple/Configuration.js +361 -1
  31. package/lib/simple/Phone.js +361 -1
  32. package/lib/simple/Softphone.js +362 -0
  33. package/lib/simple/index.js +361 -1
  34. package/lib/simple/room/LocalParticipant.js +361 -1
  35. package/lib/simple/room/Participant.js +361 -1
  36. package/lib/simple/room/RemoteParticipant.js +361 -1
  37. package/lib/simple/room/Room.js +361 -1
  38. package/lib/simple/room/SipRoom.js +361 -1
  39. package/lib/simple/room/Stream.js +361 -1
  40. package/lib/simple/room/__tests__/RemoteParticipant.test.js +361 -1
  41. package/lib/simple/utils.js +361 -1
  42. package/lib/web-rtc-client.js +1 -1
  43. package/package.json +1 -1
  44. package/src/simple/Softphone.js +358 -0
  45. package/src/simple/index.js +2 -0
  46. 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();
@@ -13953,6 +13953,365 @@ class Checker {
13953
13953
  }
13954
13954
  }
13955
13955
 
13956
+ //
13957
+ /* eslint-disable no-unused-vars */
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_ANSWERED = 'bridge/BRIDGE_ON_CALL_ANSWERED';
13973
+ const BRIDGE_ON_CALL_HELD = 'bridge/BRIDGE_ON_CALL_HELD';
13974
+ const BRIDGE_ON_CALL_RESUMED = 'bridge/BRIDGE_ON_CALL_RESUMED';
13975
+ const BRIDGE_ON_CALL_MUTED = 'bridge/BRIDGE_ON_CALL_MUTED';
13976
+ const BRIDGE_ON_CALL_UN_MUTED = 'bridge/BRIDGE_ON_CALL_UN_MUTED';
13977
+ const BRIDGE_ON_DTMF = 'bridge/BRIDGE_ON_DTMF';
13978
+ const BRIDGE_ON_DIRECT_TRANSFER = 'bridge/BRIDGE_ON_DIRECT_TRANSFER';
13979
+ const BRIDGE_ON_CREATE_INDIRECT_TRANSFER = 'bridge/BRIDGE_ON_CREATE_INDIRECT_TRANSFER';
13980
+ const BRIDGE_ON_CANCEL_INDIRECT_TRANSFER = 'bridge/BRIDGE_ON_CANCEL_INDIRECT_TRANSFER';
13981
+ const BRIDGE_ON_CONFIRM_INDIRECT_TRANSFER = 'bridge/BRIDGE_ON_CONFIRM_INDIRECT_TRANSFER';
13982
+ const BRIDGE_ON_INDIRECT_TRANSFER_CALL_MADE = 'bridge/BRIDGE_ON_INDIRECT_TRANSFER_CALL_MADE';
13983
+ const BRIDGE_ON_INDIRECT_TRANSFER_DONE = 'bridge/BRIDGE_ON_INDIRECT_TRANSFER_DONE';
13984
+ const BRIDGE_ON_START_RECORDING = 'bridge/BRIDGE_ON_START_RECORDING';
13985
+ const BRIDGE_ON_STOP_RECORDING = 'bridge/BRIDGE_ON_STOP_RECORDING';
13986
+ const BRIDGE_ON_CARD_CANCELED = 'bridge/BRIDGE_ON_CARD_CANCELED';
13987
+ const BRIDGE_ENABLE_AGENT = 'bridge/BRIDGE_ENABLE_AGENT';
13988
+ const BRIDGE_SET_CARD_CONTENT = 'bridge/BRIDGE_SET_CARD_CONTENT';
13989
+
13990
+ const BRIDGE_INJECT_CSS = 'bridge/BRIDGE_INJECT_CSS';
13991
+ const BRIDGE_CUSTOMIZE_APPEARANCE = 'bridge/BRIDGE_CUSTOMIZE_APPEARANCE';
13992
+
13993
+ const SDK_CLICK_TO_CALL = 'sdk/CLICK_TO_CALL';
13994
+ const SDK_ON_CALL_MADE = 'sdk/SDK_ON_CALL_MADE';
13995
+ const SDK_CALL_ENDED = 'sdk/ON_CALL_ENDED';
13996
+ const SDK_CALL_INCOMING = 'sdk/SDK_CALL_INCOMING';
13997
+ const SDK_AUTHENTICATED = 'sdk/SDK_AUTHENTICATED';
13998
+ const SDK_LOGGED_OUT = 'sdk/SDK_LOGGED_OUT';
13999
+
14000
+ class Softphone {
14001
+
14002
+
14003
+
14004
+
14005
+
14006
+
14007
+
14008
+ // Message waiting for the iframe to be loaded
14009
+
14010
+
14011
+ onLinkEnabled(link ) {}
14012
+ onIFrameLoaded() {}
14013
+
14014
+ onCallAnswered() {}
14015
+ onCallMade(call ) {}
14016
+ onCallIncoming(call ) {}
14017
+ onCallEnded(call , card , direction , fromExtension ) {}
14018
+ onCardSaved(card ) {}
14019
+ onCardCanceled() {}
14020
+ onAuthenticated(session ) {}
14021
+ onLoggedOut() {}
14022
+
14023
+ onSearchOptions(fieldId , query ) {
14024
+ this.onOptionsResults(fieldId, []);
14025
+ }
14026
+
14027
+ onDisplayLinkedOption(optionId ) {}
14028
+ onWazoContactSearch(query ) {}
14029
+ onAgentLoggedIn() {}
14030
+ onAgentLoggedOut() {}
14031
+ onAgentPaused() {}
14032
+ onAgentResumed() {}
14033
+ onLanguageChanged(language ) {}
14034
+ onCallHeld() {}
14035
+ onCallResumed() {}
14036
+ onCallMuted() {}
14037
+ onCallUnMuted() {}
14038
+ onDtmfSent(tone ) {}
14039
+ onDirectTransfer(number ) {}
14040
+ onCreateIndirectTransfer(number ) {}
14041
+ onCancelIndirectTransfer() {}
14042
+ onConfirmIndirectTransfer() {}
14043
+ onIndirectCallMade(call ) {}
14044
+ onIndirectTransferDone(call ) {}
14045
+ onStartRecording() {}
14046
+ onStopRecording() {}
14047
+ onUnHandledEvent(event ) {}
14048
+
14049
+ init({ url, width, height, server, port, language, wrapUpDuration, enableAgent = true } = {}) {
14050
+ this.url = url || 'https://softphone.wazo.io';
14051
+ this.width = width || 500;
14052
+ this.height = height || 600;
14053
+ this.displayed = false;
14054
+ this.iframeLoaded = false;
14055
+
14056
+ this.iframeLoaded = false;
14057
+ this._pendingMessages = [];
14058
+ window.addEventListener('message', this._onMessage.bind(this), false);
14059
+
14060
+ if (!server) {
14061
+ // eslint-disable-next-line no-param-reassign
14062
+ server = 'stack.dev.wazo.io';
14063
+ }
14064
+
14065
+ const config = { server };
14066
+ if (language) {
14067
+ config.language = language;
14068
+ }
14069
+ if (port) {
14070
+ config.port = port;
14071
+ }
14072
+ if (wrapUpDuration) {
14073
+ config.wrapUpDuration = wrapUpDuration;
14074
+ }
14075
+
14076
+ this._sendMessage(BRIDGE_CONFIG_RETRIEVED, { config });
14077
+
14078
+ if (enableAgent) {
14079
+ this._sendMessage(BRIDGE_ENABLE_AGENT);
14080
+ }
14081
+
14082
+ this._createIframe(() => {
14083
+ this.iframeLoaded = true;
14084
+ this._pendingMessages.forEach(([type, payload]) => this._sendMessage(type, payload));
14085
+
14086
+ this.onIFrameLoaded();
14087
+ });
14088
+ }
14089
+
14090
+ parseLinks() {
14091
+ const links = this._getLinks();
14092
+
14093
+ links.forEach(link => {
14094
+ link.setAttribute('data-wazo-parsed', true);
14095
+ link.addEventListener('click', this._onLinkClick.bind(this));
14096
+ this.onLinkEnabled(link);
14097
+ });
14098
+ }
14099
+
14100
+ makeCall(number ) {
14101
+ this.displaySoftphone();
14102
+
14103
+ this._sendMessage(SDK_CLICK_TO_CALL, { number });
14104
+ }
14105
+
14106
+ toggleSoftphoneDisplay() {
14107
+ if (this.displayed) {
14108
+ this.hideSoftphone();
14109
+ } else {
14110
+ this.displaySoftphone();
14111
+ }
14112
+ }
14113
+
14114
+ displaySoftphone() {
14115
+ if (!this.iframe) {
14116
+ this._createIframe();
14117
+ }
14118
+
14119
+ if (this.iframe) {
14120
+ this.iframe.style.display = 'block';
14121
+ }
14122
+
14123
+ this.displayed = true;
14124
+ }
14125
+
14126
+ hideSoftphone() {
14127
+ if (this.iframe) {
14128
+ this.iframe.style.display = 'none';
14129
+ }
14130
+ this.displayed = false;
14131
+ }
14132
+
14133
+ optionsFetched(fieldId , options ) {
14134
+ this._sendMessage(BRIDGE_OPTIONS_FETCHED, { fieldId, options });
14135
+ }
14136
+
14137
+ onOptionsResults(fieldId , options ) {
14138
+ this._sendMessage(BRIDGE_OPTIONS_FOUND, { fieldId, options });
14139
+ }
14140
+
14141
+ setFormSchema(schema , uiSchema ) {
14142
+ this._sendMessage(BRIDGE_UPDATE_FORM_SCHEMA, { schema, uiSchema });
14143
+ }
14144
+
14145
+ setCardValue(field , value ) {
14146
+ this._sendMessage(BRIDGE_SET_CARD_CONTENT, { field, value });
14147
+ }
14148
+
14149
+ injectCss(css ) {
14150
+ this._sendMessage(BRIDGE_INJECT_CSS, { css });
14151
+ }
14152
+
14153
+ customizeAppearance(themes , translations , assets ) {
14154
+ this._sendMessage(BRIDGE_CUSTOMIZE_APPEARANCE, { themes, translations, assets });
14155
+ }
14156
+
14157
+ _createIframe(cb = () => {}) {
14158
+ this.iframe = document.createElement('iframe');
14159
+ // $FlowFixMe
14160
+ this.iframe.width = this.width;
14161
+ // $FlowFixMe
14162
+ this.iframe.height = this.height;
14163
+ // $FlowFixMe
14164
+ this.iframe.allow = 'camera *; microphone *; autoplay *; display-capture *';
14165
+ this.iframe.style.position = 'absolute';
14166
+ this.iframe.style.left = '0';
14167
+ this.iframe.style.bottom = '0';
14168
+ this.iframe.style.border = '1px solid #aaa';
14169
+ this.iframe.style.backgroundColor = 'white';
14170
+ this.iframe.src = this.url;
14171
+ this.iframe.style.display = 'none';
14172
+ this.iframe.id = 'wazo-softphone';
14173
+
14174
+ this.iframe.onload = cb;
14175
+
14176
+ // $FlowFixMe
14177
+ document.body.appendChild(this.iframe);
14178
+ }
14179
+
14180
+ _getLinks() {
14181
+ return [].slice.call(document.querySelectorAll('a:not([data-wazo-parsed])'), 0)
14182
+ .filter(link => link.href.indexOf('tel:') === 0 || link.href.indexOf('callto:') === 0);
14183
+ }
14184
+
14185
+ _onLinkClick(e ) {
14186
+ e.preventDefault();
14187
+ const number = e.target.href.split(':')[1];
14188
+
14189
+ this.makeCall(number);
14190
+ }
14191
+
14192
+ _onAuthenticated() {
14193
+ this.parseLinks();
14194
+ }
14195
+
14196
+ _onMessage(event ) {
14197
+ if (!event.data) {
14198
+ return;
14199
+ }
14200
+
14201
+ switch (event.data.type) {
14202
+ case SDK_ON_CALL_MADE:
14203
+ this.onCallMade(event.data.callSession);
14204
+ break;
14205
+ case SDK_CALL_ENDED: {
14206
+ const { callSession, content, direction, userExtension } = event.data;
14207
+ this.onCallEnded(callSession, content, direction, userExtension);
14208
+ break;
14209
+ }
14210
+ case SDK_CALL_INCOMING:
14211
+ this.onCallIncoming(event.data.callSession);
14212
+ break;
14213
+ case SDK_AUTHENTICATED:
14214
+ // $FlowFixMe
14215
+ this._onAuthenticated(event.data.session);
14216
+ this.onAuthenticated(event.data.session);
14217
+ break;
14218
+ case SDK_LOGGED_OUT:
14219
+ this.onLoggedOut();
14220
+ break;
14221
+ case BRIDGE_CREATE_OR_UPDATE_CARD: {
14222
+ const { content } = event.data;
14223
+ this.onCardSaved(content);
14224
+ break;
14225
+ }
14226
+ case BRIDGE_SEARCH_OPTIONS: {
14227
+ const { fieldId, query } = event.data;
14228
+ this.onSearchOptions(fieldId, query);
14229
+ break;
14230
+ }
14231
+ case BRIDGE_DISPLAY_LINKED_OPTION:
14232
+ this.onDisplayLinkedOption(event.data.linkedOptionId);
14233
+ break;
14234
+ case BRIDGE_WAZO_CONTACT_SEARCH:
14235
+ this.onWazoContactSearch(event.data.query);
14236
+ break;
14237
+ case BRIDGE_ON_AGENT_LOGGED_IN:
14238
+ this.onAgentLoggedIn();
14239
+ break;
14240
+ case BRIDGE_ON_AGENT_LOGGED_OUT:
14241
+ this.onAgentLoggedOut();
14242
+ break;
14243
+ case BRIDGE_ON_AGENT_PAUSED:
14244
+ this.onAgentPaused();
14245
+ break;
14246
+ case BRIDGE_ON_AGENT_RESUMED:
14247
+ this.onAgentResumed();
14248
+ break;
14249
+ case BRIDGE_ON_LANGUAGE_CHANGED:
14250
+ this.onLanguageChanged(event.data.language);
14251
+ break;
14252
+ case BRIDGE_ON_CALL_HELD:
14253
+ this.onCallHeld();
14254
+ break;
14255
+ case BRIDGE_ON_CALL_RESUMED:
14256
+ this.onCallResumed();
14257
+ break;
14258
+ case BRIDGE_ON_CALL_MUTED:
14259
+ this.onCallMuted();
14260
+ break;
14261
+ case BRIDGE_ON_CALL_UN_MUTED:
14262
+ this.onCallUnMuted();
14263
+ break;
14264
+ case BRIDGE_ON_DTMF:
14265
+ this.onDtmfSent(event.data.tone);
14266
+ break;
14267
+ case BRIDGE_ON_DIRECT_TRANSFER:
14268
+ this.onDirectTransfer(event.data.number);
14269
+ break;
14270
+ case BRIDGE_ON_CREATE_INDIRECT_TRANSFER:
14271
+ this.onCreateIndirectTransfer(event.data.number);
14272
+ break;
14273
+ case BRIDGE_ON_CANCEL_INDIRECT_TRANSFER:
14274
+ this.onCancelIndirectTransfer();
14275
+ break;
14276
+ case BRIDGE_ON_CONFIRM_INDIRECT_TRANSFER:
14277
+ this.onConfirmIndirectTransfer();
14278
+ break;
14279
+ case BRIDGE_ON_INDIRECT_TRANSFER_CALL_MADE:
14280
+ this.onIndirectCallMade(event.data.call);
14281
+ break;
14282
+ case BRIDGE_ON_INDIRECT_TRANSFER_DONE:
14283
+ this.onIndirectTransferDone(event.data.call);
14284
+ break;
14285
+ case BRIDGE_ON_START_RECORDING:
14286
+ this.onStartRecording();
14287
+ break;
14288
+ case BRIDGE_ON_STOP_RECORDING:
14289
+ this.onStopRecording();
14290
+ break;
14291
+ case BRIDGE_ON_CARD_CANCELED:
14292
+ this.onCardCanceled();
14293
+ break;
14294
+ case BRIDGE_ON_CALL_ANSWERED:
14295
+ this.onCallAnswered();
14296
+ break;
14297
+ default:
14298
+ this.onUnHandledEvent(event);
14299
+ break;
14300
+ }
14301
+ }
14302
+
14303
+ _sendMessage(type , payload = {}) {
14304
+ if (!this.iframe || !this.iframeLoaded) {
14305
+ this._pendingMessages.push([type, payload]);
14306
+ return;
14307
+ }
14308
+
14309
+ this.iframe.contentWindow.postMessage({ type, ...payload }, '*');
14310
+ }
14311
+ }
14312
+
14313
+ var Softphone$1 = new Softphone();
14314
+
13956
14315
  /* global window */
13957
14316
 
13958
14317
  const Wazo = {
@@ -13973,6 +14332,7 @@ const Wazo = {
13973
14332
  loggerFor: IssueReporter$1.loggerFor.bind(IssueReporter$1),
13974
14333
  Features: Features$1,
13975
14334
  Checker,
14335
+ Softphone: Softphone$1,
13976
14336
 
13977
14337
  // Domain
13978
14338
  domain: {
@@ -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();