@wazo/sdk 0.45.2 → 0.46.0-rc.0

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.
package/dist/index.js CHANGED
@@ -6137,6 +6137,7 @@ const replaceLocalIpModifier = (description)=>Promise.resolve({
6137
6137
  });
6138
6138
  const DEFAULT_ICE_TIMEOUT = 3000;
6139
6139
  const SEND_STATS_DELAY = 5000;
6140
+ const MAX_ICE_RECONNECT_ATTEMPTS = 3;
6140
6141
  const states = [
6141
6142
  'STATUS_NULL',
6142
6143
  'STATUS_NEW',
@@ -6206,6 +6207,7 @@ class WebRTCClient extends Emitter {
6206
6207
  networkMonitoringInterval;
6207
6208
  sessionNetworkStats;
6208
6209
  forceClosed;
6210
+ iceReconnectAttempts;
6209
6211
  ON_USER_AGENT;
6210
6212
  REGISTERED;
6211
6213
  UNREGISTERED;
@@ -6270,6 +6272,7 @@ class WebRTCClient extends Emitter {
6270
6272
  this.networkMonitoringInterval = {};
6271
6273
  this.sessionNetworkStats = {};
6272
6274
  this.forceClosed = false;
6275
+ this.iceReconnectAttempts = {};
6273
6276
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
6274
6277
  this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
6275
6278
  this.heartbeat.setSendHeartbeat(this.pingServer.bind(this));
@@ -7286,7 +7289,9 @@ class WebRTCClient extends Emitter {
7286
7289
  }
7287
7290
  onCallEnded(session) {
7288
7291
  this._cleanupMedia(session);
7289
- delete this.sipSessions[this.getSipSessionId(session)];
7292
+ const sessionId = this.getSipSessionId(session);
7293
+ delete this.sipSessions[sessionId];
7294
+ delete this.iceReconnectAttempts[sessionId];
7290
7295
  this._stopSendingStats(session);
7291
7296
  this.stopNetworkMonitoring(session);
7292
7297
  }
@@ -7665,12 +7670,37 @@ class WebRTCClient extends Emitter {
7665
7670
  const sessionDescriptionHandler = session.sessionDescriptionHandler;
7666
7671
  if (sessionDescriptionHandler?.peerConnection) sessionDescriptionHandler.peerConnection.addEventListener('track', onTrack);
7667
7672
  sessionDescriptionHandler.remoteMediaStream.onaddtrack = onTrack;
7668
- if (pc) pc.oniceconnectionstatechange = ()=>{
7669
- web_rtc_client_logger.info('on ice connection state changed', {
7670
- state: pc.iceConnectionState
7671
- });
7672
- if ('disconnected' === pc.iceConnectionState) this.eventEmitter.emit(web_rtc_client_ON_DISCONNECTED);
7673
- };
7673
+ if (pc) {
7674
+ const currentSessionId = this.getSipSessionId(session);
7675
+ pc.oniceconnectionstatechange = ()=>{
7676
+ web_rtc_client_logger.info('on ice connection state changed', {
7677
+ state: pc.iceConnectionState,
7678
+ sessionId: currentSessionId
7679
+ });
7680
+ if ('disconnected' === pc.iceConnectionState) {
7681
+ const attempts = this.iceReconnectAttempts[currentSessionId] || 0;
7682
+ if (attempts < MAX_ICE_RECONNECT_ATTEMPTS) {
7683
+ this.iceReconnectAttempts[currentSessionId] = attempts + 1;
7684
+ web_rtc_client_logger.info('ICE connection disconnected, attempting to reconnect...', {
7685
+ sessionId: currentSessionId,
7686
+ attempt: attempts + 1
7687
+ });
7688
+ const isConference = this.isConference(currentSessionId);
7689
+ this.reinvite(session, null, isConference, false, true);
7690
+ } else {
7691
+ web_rtc_client_logger.warn('ICE reconnection failed after max attempts', {
7692
+ sessionId: currentSessionId
7693
+ });
7694
+ this.eventEmitter.emit(web_rtc_client_ON_DISCONNECTED, session);
7695
+ }
7696
+ } else if ('connected' === pc.iceConnectionState || 'completed' === pc.iceConnectionState) {
7697
+ if (this.iceReconnectAttempts[currentSessionId] > 0) web_rtc_client_logger.info('ICE reconnected successfully', {
7698
+ sessionId: currentSessionId
7699
+ });
7700
+ this.iceReconnectAttempts[currentSessionId] = 0;
7701
+ }
7702
+ };
7703
+ }
7674
7704
  if (withEvent) this.eventEmitter.emit(web_rtc_client_ACCEPTED, session, sessionDialog);
7675
7705
  this._startSendingStats(session);
7676
7706
  }
@@ -7690,8 +7720,25 @@ class WebRTCClient extends Emitter {
7690
7720
  });
7691
7721
  return;
7692
7722
  }
7693
- if (this._hasAudio() && this._isWeb() && !(sessionId in this.audioElements)) await this.createAudioElementFor(sessionId);
7723
+ if (this._hasAudio() && this._isWeb() && !(sessionId in this.audioElements)) try {
7724
+ await this.createAudioElementFor(sessionId);
7725
+ web_rtc_client_logger.info('Audio element created successfully', {
7726
+ sessionId
7727
+ });
7728
+ } catch (error) {
7729
+ web_rtc_client_logger.error('Failed to create audio element', {
7730
+ sessionId,
7731
+ error
7732
+ });
7733
+ return;
7734
+ }
7694
7735
  const audioElement = this.audioElements[sessionId];
7736
+ if (!audioElement) {
7737
+ web_rtc_client_logger.error('No audio element found after creation', {
7738
+ sessionId
7739
+ });
7740
+ return;
7741
+ }
7695
7742
  const sipSession = this.sipSessions[session.callId];
7696
7743
  const removeStream = this.getRemoteStream(sessionId);
7697
7744
  const sdh = sipSession?.sessionDescriptionHandler;
@@ -7711,13 +7758,28 @@ class WebRTCClient extends Emitter {
7711
7758
  },
7712
7759
  hasAudio: this._hasAudio(),
7713
7760
  isConference,
7714
- shouldPause
7761
+ shouldPause,
7762
+ streamTracks: stream.getTracks().map((t)=>({
7763
+ kind: t.kind,
7764
+ enabled: t.enabled,
7765
+ muted: t.muted
7766
+ }))
7715
7767
  });
7716
7768
  if (isConference) return;
7717
7769
  if (shouldPause) audioElement.pause();
7718
7770
  audioElement.srcObject = stream;
7719
7771
  audioElement.volume = this.audioOutputVolume;
7720
- audioElement.play().catch(()=>{});
7772
+ try {
7773
+ await audioElement.play();
7774
+ web_rtc_client_logger.info('Audio element play() successful', {
7775
+ sessionId
7776
+ });
7777
+ } catch (error) {
7778
+ web_rtc_client_logger.error('Audio element play() failed', {
7779
+ sessionId,
7780
+ error: error.message
7781
+ });
7782
+ }
7721
7783
  }
7722
7784
  _cleanupMedia(session) {
7723
7785
  const sessionId = this.getSipSessionId(session);
@@ -7987,6 +8049,56 @@ class WebRTCClient extends Emitter {
7987
8049
  }
7988
8050
  return null;
7989
8051
  }
8052
+ debugAudioStatus(sessionId) {
8053
+ const audioElement = this.audioElements[sessionId];
8054
+ const session = this.getSipSession(sessionId);
8055
+ const remoteStream = this.getRemoteStream(sessionId);
8056
+ const pc = this.getPeerConnection(sessionId);
8057
+ return {
8058
+ sessionId,
8059
+ hasAudio: this._hasAudio(),
8060
+ audioOutputVolume: this.audioOutputVolume,
8061
+ audioOutputDeviceId: this.audioOutputDeviceId,
8062
+ audioElement: audioElement ? {
8063
+ exists: true,
8064
+ paused: audioElement.paused,
8065
+ ended: audioElement.ended,
8066
+ readyState: audioElement.readyState,
8067
+ currentTime: audioElement.currentTime,
8068
+ volume: audioElement.volume,
8069
+ srcObject: !!audioElement.srcObject,
8070
+ muted: audioElement.muted
8071
+ } : {
8072
+ exists: false
8073
+ },
8074
+ session: session ? {
8075
+ exists: true,
8076
+ state: session.state,
8077
+ hasSdh: !!session.sessionDescriptionHandler
8078
+ } : {
8079
+ exists: false
8080
+ },
8081
+ remoteStream: remoteStream ? {
8082
+ exists: true,
8083
+ tracks: remoteStream.getTracks().map((t)=>({
8084
+ kind: t.kind,
8085
+ enabled: t.enabled,
8086
+ muted: t.muted,
8087
+ readyState: t.readyState
8088
+ }))
8089
+ } : {
8090
+ exists: false
8091
+ },
8092
+ peerConnection: pc ? {
8093
+ exists: true,
8094
+ iceConnectionState: pc.iceConnectionState,
8095
+ connectionState: pc.connectionState,
8096
+ signalingState: pc.signalingState
8097
+ } : {
8098
+ exists: false
8099
+ }
8100
+ };
8101
+ }
7990
8102
  }
7991
8103
  class SFUNotAvailableError extends Error {
7992
8104
  constructor(message = 'Sorry your user is not configured to support video conference'){
package/dist/index.mjs CHANGED
@@ -6054,6 +6054,7 @@ const replaceLocalIpModifier = (description)=>Promise.resolve({
6054
6054
  });
6055
6055
  const DEFAULT_ICE_TIMEOUT = 3000;
6056
6056
  const SEND_STATS_DELAY = 5000;
6057
+ const MAX_ICE_RECONNECT_ATTEMPTS = 3;
6057
6058
  const states = [
6058
6059
  'STATUS_NULL',
6059
6060
  'STATUS_NEW',
@@ -6123,6 +6124,7 @@ class WebRTCClient extends Emitter {
6123
6124
  networkMonitoringInterval;
6124
6125
  sessionNetworkStats;
6125
6126
  forceClosed;
6127
+ iceReconnectAttempts;
6126
6128
  ON_USER_AGENT;
6127
6129
  REGISTERED;
6128
6130
  UNREGISTERED;
@@ -6187,6 +6189,7 @@ class WebRTCClient extends Emitter {
6187
6189
  this.networkMonitoringInterval = {};
6188
6190
  this.sessionNetworkStats = {};
6189
6191
  this.forceClosed = false;
6192
+ this.iceReconnectAttempts = {};
6190
6193
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
6191
6194
  this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
6192
6195
  this.heartbeat.setSendHeartbeat(this.pingServer.bind(this));
@@ -7203,7 +7206,9 @@ class WebRTCClient extends Emitter {
7203
7206
  }
7204
7207
  onCallEnded(session) {
7205
7208
  this._cleanupMedia(session);
7206
- delete this.sipSessions[this.getSipSessionId(session)];
7209
+ const sessionId = this.getSipSessionId(session);
7210
+ delete this.sipSessions[sessionId];
7211
+ delete this.iceReconnectAttempts[sessionId];
7207
7212
  this._stopSendingStats(session);
7208
7213
  this.stopNetworkMonitoring(session);
7209
7214
  }
@@ -7582,12 +7587,37 @@ class WebRTCClient extends Emitter {
7582
7587
  const sessionDescriptionHandler = session.sessionDescriptionHandler;
7583
7588
  if (sessionDescriptionHandler?.peerConnection) sessionDescriptionHandler.peerConnection.addEventListener('track', onTrack);
7584
7589
  sessionDescriptionHandler.remoteMediaStream.onaddtrack = onTrack;
7585
- if (pc) pc.oniceconnectionstatechange = ()=>{
7586
- web_rtc_client_logger.info('on ice connection state changed', {
7587
- state: pc.iceConnectionState
7588
- });
7589
- if ('disconnected' === pc.iceConnectionState) this.eventEmitter.emit(web_rtc_client_ON_DISCONNECTED);
7590
- };
7590
+ if (pc) {
7591
+ const currentSessionId = this.getSipSessionId(session);
7592
+ pc.oniceconnectionstatechange = ()=>{
7593
+ web_rtc_client_logger.info('on ice connection state changed', {
7594
+ state: pc.iceConnectionState,
7595
+ sessionId: currentSessionId
7596
+ });
7597
+ if ('disconnected' === pc.iceConnectionState) {
7598
+ const attempts = this.iceReconnectAttempts[currentSessionId] || 0;
7599
+ if (attempts < MAX_ICE_RECONNECT_ATTEMPTS) {
7600
+ this.iceReconnectAttempts[currentSessionId] = attempts + 1;
7601
+ web_rtc_client_logger.info('ICE connection disconnected, attempting to reconnect...', {
7602
+ sessionId: currentSessionId,
7603
+ attempt: attempts + 1
7604
+ });
7605
+ const isConference = this.isConference(currentSessionId);
7606
+ this.reinvite(session, null, isConference, false, true);
7607
+ } else {
7608
+ web_rtc_client_logger.warn('ICE reconnection failed after max attempts', {
7609
+ sessionId: currentSessionId
7610
+ });
7611
+ this.eventEmitter.emit(web_rtc_client_ON_DISCONNECTED, session);
7612
+ }
7613
+ } else if ('connected' === pc.iceConnectionState || 'completed' === pc.iceConnectionState) {
7614
+ if (this.iceReconnectAttempts[currentSessionId] > 0) web_rtc_client_logger.info('ICE reconnected successfully', {
7615
+ sessionId: currentSessionId
7616
+ });
7617
+ this.iceReconnectAttempts[currentSessionId] = 0;
7618
+ }
7619
+ };
7620
+ }
7591
7621
  if (withEvent) this.eventEmitter.emit(web_rtc_client_ACCEPTED, session, sessionDialog);
7592
7622
  this._startSendingStats(session);
7593
7623
  }
@@ -7607,8 +7637,25 @@ class WebRTCClient extends Emitter {
7607
7637
  });
7608
7638
  return;
7609
7639
  }
7610
- if (this._hasAudio() && this._isWeb() && !(sessionId in this.audioElements)) await this.createAudioElementFor(sessionId);
7640
+ if (this._hasAudio() && this._isWeb() && !(sessionId in this.audioElements)) try {
7641
+ await this.createAudioElementFor(sessionId);
7642
+ web_rtc_client_logger.info('Audio element created successfully', {
7643
+ sessionId
7644
+ });
7645
+ } catch (error) {
7646
+ web_rtc_client_logger.error('Failed to create audio element', {
7647
+ sessionId,
7648
+ error
7649
+ });
7650
+ return;
7651
+ }
7611
7652
  const audioElement = this.audioElements[sessionId];
7653
+ if (!audioElement) {
7654
+ web_rtc_client_logger.error('No audio element found after creation', {
7655
+ sessionId
7656
+ });
7657
+ return;
7658
+ }
7612
7659
  const sipSession = this.sipSessions[session.callId];
7613
7660
  const removeStream = this.getRemoteStream(sessionId);
7614
7661
  const sdh = sipSession?.sessionDescriptionHandler;
@@ -7628,13 +7675,28 @@ class WebRTCClient extends Emitter {
7628
7675
  },
7629
7676
  hasAudio: this._hasAudio(),
7630
7677
  isConference,
7631
- shouldPause
7678
+ shouldPause,
7679
+ streamTracks: stream.getTracks().map((t)=>({
7680
+ kind: t.kind,
7681
+ enabled: t.enabled,
7682
+ muted: t.muted
7683
+ }))
7632
7684
  });
7633
7685
  if (isConference) return;
7634
7686
  if (shouldPause) audioElement.pause();
7635
7687
  audioElement.srcObject = stream;
7636
7688
  audioElement.volume = this.audioOutputVolume;
7637
- audioElement.play().catch(()=>{});
7689
+ try {
7690
+ await audioElement.play();
7691
+ web_rtc_client_logger.info('Audio element play() successful', {
7692
+ sessionId
7693
+ });
7694
+ } catch (error) {
7695
+ web_rtc_client_logger.error('Audio element play() failed', {
7696
+ sessionId,
7697
+ error: error.message
7698
+ });
7699
+ }
7638
7700
  }
7639
7701
  _cleanupMedia(session) {
7640
7702
  const sessionId = this.getSipSessionId(session);
@@ -7904,6 +7966,56 @@ class WebRTCClient extends Emitter {
7904
7966
  }
7905
7967
  return null;
7906
7968
  }
7969
+ debugAudioStatus(sessionId) {
7970
+ const audioElement = this.audioElements[sessionId];
7971
+ const session = this.getSipSession(sessionId);
7972
+ const remoteStream = this.getRemoteStream(sessionId);
7973
+ const pc = this.getPeerConnection(sessionId);
7974
+ return {
7975
+ sessionId,
7976
+ hasAudio: this._hasAudio(),
7977
+ audioOutputVolume: this.audioOutputVolume,
7978
+ audioOutputDeviceId: this.audioOutputDeviceId,
7979
+ audioElement: audioElement ? {
7980
+ exists: true,
7981
+ paused: audioElement.paused,
7982
+ ended: audioElement.ended,
7983
+ readyState: audioElement.readyState,
7984
+ currentTime: audioElement.currentTime,
7985
+ volume: audioElement.volume,
7986
+ srcObject: !!audioElement.srcObject,
7987
+ muted: audioElement.muted
7988
+ } : {
7989
+ exists: false
7990
+ },
7991
+ session: session ? {
7992
+ exists: true,
7993
+ state: session.state,
7994
+ hasSdh: !!session.sessionDescriptionHandler
7995
+ } : {
7996
+ exists: false
7997
+ },
7998
+ remoteStream: remoteStream ? {
7999
+ exists: true,
8000
+ tracks: remoteStream.getTracks().map((t)=>({
8001
+ kind: t.kind,
8002
+ enabled: t.enabled,
8003
+ muted: t.muted,
8004
+ readyState: t.readyState
8005
+ }))
8006
+ } : {
8007
+ exists: false
8008
+ },
8009
+ peerConnection: pc ? {
8010
+ exists: true,
8011
+ iceConnectionState: pc.iceConnectionState,
8012
+ connectionState: pc.connectionState,
8013
+ signalingState: pc.signalingState
8014
+ } : {
8015
+ exists: false
8016
+ }
8017
+ };
8018
+ }
7907
8019
  }
7908
8020
  class SFUNotAvailableError extends Error {
7909
8021
  constructor(message = 'Sorry your user is not configured to support video conference'){
@@ -43,6 +43,7 @@ export default class WebRTCClient extends Emitter {
43
43
  networkMonitoringInterval: Record<string, any>;
44
44
  sessionNetworkStats: Record<string, Record<string, any>>;
45
45
  forceClosed: boolean;
46
+ iceReconnectAttempts: Record<string, number>;
46
47
  ON_USER_AGENT: string;
47
48
  REGISTERED: string;
48
49
  UNREGISTERED: string;
@@ -194,5 +195,6 @@ export default class WebRTCClient extends Emitter {
194
195
  _reject(session: Invitation, options?: InvitationRejectOptions): Promise<void>;
195
196
  _cancel(session: Inviter, options?: InviterCancelOptions): Promise<void>;
196
197
  _bye(session: WazoSession, options?: SessionByeOptions): Promise<OutgoingByeRequest | null>;
198
+ debugAudioStatus(sessionId: string): Record<string, any>;
197
199
  }
198
200
  //# sourceMappingURL=web-rtc-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-rtc-client.d.ts","sourceRoot":"","sources":["../../src/web-rtc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-rtc-client.d.ts","sourceRoot":"","sources":["../../src/web-rtc-client.ts"],"names":[],"mappings":"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"}
package/dist/wazo-sdk.js CHANGED
@@ -50754,6 +50754,7 @@ BwIDAQAB
50754
50754
  });
50755
50755
  const DEFAULT_ICE_TIMEOUT = 3000;
50756
50756
  const SEND_STATS_DELAY = 5000;
50757
+ const MAX_ICE_RECONNECT_ATTEMPTS = 3;
50757
50758
  const states = [
50758
50759
  'STATUS_NULL',
50759
50760
  'STATUS_NEW',
@@ -50823,6 +50824,7 @@ BwIDAQAB
50823
50824
  networkMonitoringInterval;
50824
50825
  sessionNetworkStats;
50825
50826
  forceClosed;
50827
+ iceReconnectAttempts;
50826
50828
  ON_USER_AGENT;
50827
50829
  REGISTERED;
50828
50830
  UNREGISTERED;
@@ -50887,6 +50889,7 @@ BwIDAQAB
50887
50889
  this.networkMonitoringInterval = {};
50888
50890
  this.sessionNetworkStats = {};
50889
50891
  this.forceClosed = false;
50892
+ this.iceReconnectAttempts = {};
50890
50893
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
50891
50894
  this.heartbeat = new Heartbeat(config.heartbeatDelay, config.heartbeatTimeout, config.maxHeartbeats);
50892
50895
  this.heartbeat.setSendHeartbeat(this.pingServer.bind(this));
@@ -51903,7 +51906,9 @@ BwIDAQAB
51903
51906
  }
51904
51907
  onCallEnded(session) {
51905
51908
  this._cleanupMedia(session);
51906
- delete this.sipSessions[this.getSipSessionId(session)];
51909
+ const sessionId = this.getSipSessionId(session);
51910
+ delete this.sipSessions[sessionId];
51911
+ delete this.iceReconnectAttempts[sessionId];
51907
51912
  this._stopSendingStats(session);
51908
51913
  this.stopNetworkMonitoring(session);
51909
51914
  }
@@ -52282,12 +52287,37 @@ BwIDAQAB
52282
52287
  const sessionDescriptionHandler = session.sessionDescriptionHandler;
52283
52288
  if (sessionDescriptionHandler?.peerConnection) sessionDescriptionHandler.peerConnection.addEventListener('track', onTrack);
52284
52289
  sessionDescriptionHandler.remoteMediaStream.onaddtrack = onTrack;
52285
- if (pc) pc.oniceconnectionstatechange = ()=>{
52286
- web_rtc_client_logger.info('on ice connection state changed', {
52287
- state: pc.iceConnectionState
52288
- });
52289
- if ('disconnected' === pc.iceConnectionState) this.eventEmitter.emit(web_rtc_client_ON_DISCONNECTED);
52290
- };
52290
+ if (pc) {
52291
+ const currentSessionId = this.getSipSessionId(session);
52292
+ pc.oniceconnectionstatechange = ()=>{
52293
+ web_rtc_client_logger.info('on ice connection state changed', {
52294
+ state: pc.iceConnectionState,
52295
+ sessionId: currentSessionId
52296
+ });
52297
+ if ('disconnected' === pc.iceConnectionState) {
52298
+ const attempts = this.iceReconnectAttempts[currentSessionId] || 0;
52299
+ if (attempts < MAX_ICE_RECONNECT_ATTEMPTS) {
52300
+ this.iceReconnectAttempts[currentSessionId] = attempts + 1;
52301
+ web_rtc_client_logger.info('ICE connection disconnected, attempting to reconnect...', {
52302
+ sessionId: currentSessionId,
52303
+ attempt: attempts + 1
52304
+ });
52305
+ const isConference = this.isConference(currentSessionId);
52306
+ this.reinvite(session, null, isConference, false, true);
52307
+ } else {
52308
+ web_rtc_client_logger.warn('ICE reconnection failed after max attempts', {
52309
+ sessionId: currentSessionId
52310
+ });
52311
+ this.eventEmitter.emit(web_rtc_client_ON_DISCONNECTED, session);
52312
+ }
52313
+ } else if ('connected' === pc.iceConnectionState || 'completed' === pc.iceConnectionState) {
52314
+ if (this.iceReconnectAttempts[currentSessionId] > 0) web_rtc_client_logger.info('ICE reconnected successfully', {
52315
+ sessionId: currentSessionId
52316
+ });
52317
+ this.iceReconnectAttempts[currentSessionId] = 0;
52318
+ }
52319
+ };
52320
+ }
52291
52321
  if (withEvent) this.eventEmitter.emit(web_rtc_client_ACCEPTED, session, sessionDialog);
52292
52322
  this._startSendingStats(session);
52293
52323
  }
@@ -52307,8 +52337,25 @@ BwIDAQAB
52307
52337
  });
52308
52338
  return;
52309
52339
  }
52310
- if (this._hasAudio() && this._isWeb() && !(sessionId in this.audioElements)) await this.createAudioElementFor(sessionId);
52340
+ if (this._hasAudio() && this._isWeb() && !(sessionId in this.audioElements)) try {
52341
+ await this.createAudioElementFor(sessionId);
52342
+ web_rtc_client_logger.info('Audio element created successfully', {
52343
+ sessionId
52344
+ });
52345
+ } catch (error) {
52346
+ web_rtc_client_logger.error('Failed to create audio element', {
52347
+ sessionId,
52348
+ error
52349
+ });
52350
+ return;
52351
+ }
52311
52352
  const audioElement = this.audioElements[sessionId];
52353
+ if (!audioElement) {
52354
+ web_rtc_client_logger.error('No audio element found after creation', {
52355
+ sessionId
52356
+ });
52357
+ return;
52358
+ }
52312
52359
  const sipSession = this.sipSessions[session.callId];
52313
52360
  const removeStream = this.getRemoteStream(sessionId);
52314
52361
  const sdh = sipSession?.sessionDescriptionHandler;
@@ -52328,13 +52375,28 @@ BwIDAQAB
52328
52375
  },
52329
52376
  hasAudio: this._hasAudio(),
52330
52377
  isConference,
52331
- shouldPause
52378
+ shouldPause,
52379
+ streamTracks: stream.getTracks().map((t)=>({
52380
+ kind: t.kind,
52381
+ enabled: t.enabled,
52382
+ muted: t.muted
52383
+ }))
52332
52384
  });
52333
52385
  if (isConference) return;
52334
52386
  if (shouldPause) audioElement.pause();
52335
52387
  audioElement.srcObject = stream;
52336
52388
  audioElement.volume = this.audioOutputVolume;
52337
- audioElement.play().catch(()=>{});
52389
+ try {
52390
+ await audioElement.play();
52391
+ web_rtc_client_logger.info('Audio element play() successful', {
52392
+ sessionId
52393
+ });
52394
+ } catch (error) {
52395
+ web_rtc_client_logger.error('Audio element play() failed', {
52396
+ sessionId,
52397
+ error: error.message
52398
+ });
52399
+ }
52338
52400
  }
52339
52401
  _cleanupMedia(session) {
52340
52402
  const sessionId = this.getSipSessionId(session);
@@ -52604,6 +52666,56 @@ BwIDAQAB
52604
52666
  }
52605
52667
  return null;
52606
52668
  }
52669
+ debugAudioStatus(sessionId) {
52670
+ const audioElement = this.audioElements[sessionId];
52671
+ const session = this.getSipSession(sessionId);
52672
+ const remoteStream = this.getRemoteStream(sessionId);
52673
+ const pc = this.getPeerConnection(sessionId);
52674
+ return {
52675
+ sessionId,
52676
+ hasAudio: this._hasAudio(),
52677
+ audioOutputVolume: this.audioOutputVolume,
52678
+ audioOutputDeviceId: this.audioOutputDeviceId,
52679
+ audioElement: audioElement ? {
52680
+ exists: true,
52681
+ paused: audioElement.paused,
52682
+ ended: audioElement.ended,
52683
+ readyState: audioElement.readyState,
52684
+ currentTime: audioElement.currentTime,
52685
+ volume: audioElement.volume,
52686
+ srcObject: !!audioElement.srcObject,
52687
+ muted: audioElement.muted
52688
+ } : {
52689
+ exists: false
52690
+ },
52691
+ session: session ? {
52692
+ exists: true,
52693
+ state: session.state,
52694
+ hasSdh: !!session.sessionDescriptionHandler
52695
+ } : {
52696
+ exists: false
52697
+ },
52698
+ remoteStream: remoteStream ? {
52699
+ exists: true,
52700
+ tracks: remoteStream.getTracks().map((t)=>({
52701
+ kind: t.kind,
52702
+ enabled: t.enabled,
52703
+ muted: t.muted,
52704
+ readyState: t.readyState
52705
+ }))
52706
+ } : {
52707
+ exists: false
52708
+ },
52709
+ peerConnection: pc ? {
52710
+ exists: true,
52711
+ iceConnectionState: pc.iceConnectionState,
52712
+ connectionState: pc.connectionState,
52713
+ signalingState: pc.signalingState
52714
+ } : {
52715
+ exists: false
52716
+ }
52717
+ };
52718
+ }
52607
52719
  }
52608
52720
  class SFUNotAvailableError extends Error {
52609
52721
  constructor(message = 'Sorry your user is not configured to support video conference'){
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wazo/sdk",
3
- "version": "0.45.2",
3
+ "version": "0.46.0-rc.0",
4
4
  "description": "Wazo's JavaScript Software Development Kit.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/types/index.d.ts",