@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 +122 -10
- package/dist/index.mjs +122 -10
- package/dist/types/web-rtc-client.d.ts +2 -0
- package/dist/types/web-rtc-client.d.ts.map +1 -1
- package/dist/wazo-sdk.js +122 -10
- package/package.json +1 -1
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
|
-
|
|
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)
|
|
7669
|
-
|
|
7670
|
-
|
|
7671
|
-
|
|
7672
|
-
|
|
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))
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
7586
|
-
|
|
7587
|
-
|
|
7588
|
-
|
|
7589
|
-
|
|
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))
|
|
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
|
-
|
|
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":"AAGA,OAAO,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAKxF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AASvE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAA6C,MAAM,gBAAgB,CAAC;AAE5G,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAGtC,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,gBAAgB,EAAoB,cAAc,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAG1K,eAAO,MAAM,sBAAsB,gBAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAGrE,CAAC;
|
|
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
|
-
|
|
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)
|
|
52286
|
-
|
|
52287
|
-
|
|
52288
|
-
|
|
52289
|
-
|
|
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))
|
|
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
|
-
|
|
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'){
|