Session timer were not activated if Supported header field in INVITE had both "timer...
authorDavid Vossel <dvossel@digium.com>
Wed, 15 Jul 2009 22:04:13 +0000 (22:04 +0000)
committerDavid Vossel <dvossel@digium.com>
Wed, 15 Jul 2009 22:04:13 +0000 (22:04 +0000)
(closes issue #15403)
Reported by: makoto
Patches:
      sip-session-timer.patch uploaded by makoto (license 38)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@206768 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 28ccb1c..34e13a0 100644 (file)
@@ -20469,7 +20469,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
        }
 
        /* Session-Timers */
        }
 
        /* Session-Timers */
-       if (p->sipoptions == SIP_OPT_TIMER) {
+       if (p->sipoptions & SIP_OPT_TIMER) {
                /* The UAC has requested session-timers for this session. Negotiate
                the session refresh interval and who will be the refresher */
                ast_debug(2, "Incoming INVITE with 'timer' option enabled\n");
                /* The UAC has requested session-timers for this session. Negotiate
                the session refresh interval and who will be the refresher */
                ast_debug(2, "Incoming INVITE with 'timer' option enabled\n");
@@ -20538,7 +20538,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
                        break;
 
                case SESSION_TIMER_MODE_REFUSE:
                        break;
 
                case SESSION_TIMER_MODE_REFUSE:
-                       if (p->reqsipoptions == SIP_OPT_TIMER) {
+                       if (p->reqsipoptions & SIP_OPT_TIMER) {
                                transmit_response_with_unsupported(p, "420 Option Disabled", req, required);
                                ast_log(LOG_WARNING, "Received SIP INVITE with supported but disabled option: %s\n", required);
                                p->invitestate = INV_COMPLETED;
                                transmit_response_with_unsupported(p, "420 Option Disabled", req, required);
                                ast_log(LOG_WARNING, "Received SIP INVITE with supported but disabled option: %s\n", required);
                                p->invitestate = INV_COMPLETED;