mirror of https://github.com/sipwise/sems.git
Unset Sems internal Session Timers in case B leg doesn't support it (no Timer in Supported header of 200OK message). Change-Id: I21fd1de2a088ab71042cbee54bd00cd1ea9f5a0bchanges/06/18506/10
parent
3aa9709298
commit
f47f18c2f6
@ -0,0 +1,25 @@
|
||||
--- a/core/plug-in/session_timer/SessionTimer.cpp
|
||||
+++ b/core/plug-in/session_timer/SessionTimer.cpp
|
||||
@@ -346,7 +346,21 @@ void SessionTimer::updateTimer(AmSession
|
||||
if (((reply.code < 200) || (reply.code >= 300)) &&
|
||||
(!(accept_501_reply && reply.code == 501)))
|
||||
return;
|
||||
-
|
||||
+
|
||||
+ // verify if B leg supports Session Timers
|
||||
+ remote_timer_aware =
|
||||
+ key_in_list(getHeader(reply.hdrs, SIP_HDR_SUPPORTED, SIP_HDR_SUPPORTED_COMPACT),
|
||||
+ TIMER_OPTION_TAG);
|
||||
+
|
||||
+ if (!remote_timer_aware) {
|
||||
+ // timer NOT supported by B leg
|
||||
+ DBG("Session Timer NOT supported by leg B, removing internal session timer intervals");
|
||||
+ session_timer_conf.setEnableSessionTimer("no");
|
||||
+ removeTimers(s);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // timer supported by B leg
|
||||
// determine session interval
|
||||
string sess_expires_hdr = getHeader(reply.hdrs, SIP_HDR_SESSION_EXPIRES,
|
||||
SIP_HDR_SESSION_EXPIRES_COMPACT, true);
|
||||
Loading…
Reference in new issue