@wazo/sdk 0.45.3 → 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 +37 -7
- package/dist/index.mjs +37 -7
- package/dist/types/web-rtc-client.d.ts +1 -0
- package/dist/types/web-rtc-client.d.ts.map +1 -1
- package/dist/wazo-sdk.js +37 -7
- 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
|
}
|
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
|
}
|
|
@@ -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;
|
|
@@ -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
|
}
|