Skip to content

Commit 5d54593

Browse files
authored
Adding configuration option session_timers_force_refresher (versatica#671)
In environment where the WebRTC client is connected via a client-side only initiated connection, it makes sense to force JsSIP to be the refresher of session timer. All it takes is basically to add the "refresher=uac" parameter to the Session-Expires HF in the initial INVITE
1 parent 77fce8c commit 5d54593

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

lib/Config.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ exports.settings = {
2525
use_preloaded_route : false,
2626

2727
// Session parameters.
28-
session_timers : true,
29-
session_timers_refresh_method : JsSIP_C.UPDATE,
30-
no_answer_timeout : 60,
28+
session_timers : true,
29+
session_timers_refresh_method : JsSIP_C.UPDATE,
30+
session_timers_force_refresher : false,
31+
no_answer_timeout : 60,
3132

3233
// Registration parameters.
3334
register : true,
@@ -233,6 +234,14 @@ const checks = {
233234
}
234235
},
235236

237+
session_timers_force_refresher(session_timers_force_refresher)
238+
{
239+
if (typeof session_timers_force_refresher === 'boolean')
240+
{
241+
return session_timers_force_refresher;
242+
}
243+
},
244+
236245
password(password)
237246
{
238247
return String(password);

lib/RTCSession.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ module.exports = class RTCSession extends EventEmitter
358358
extraHeaders.push('Content-Type: application/sdp');
359359
if (this._sessionTimers.enabled)
360360
{
361-
extraHeaders.push(`Session-Expires: ${this._sessionTimers.defaultExpires}`);
361+
extraHeaders.push(`Session-Expires: ${this._sessionTimers.defaultExpires}${this._ua.configuration.session_timers_force_refresher ? ';refresher=uac' : ''}`);
362362
}
363363

364364
this._request = new SIPMessage.InitialOutgoingInviteRequest(

0 commit comments

Comments
 (0)