diff --git a/core/AmSipDialog.cpp b/core/AmSipDialog.cpp index 5a37e87d..d31357a4 100644 --- a/core/AmSipDialog.cpp +++ b/core/AmSipDialog.cpp @@ -172,7 +172,7 @@ int AmSipDialog::rel100OnRequestIn(const AmSipRequest& req) if (req.method == SIP_METH_INVITE) { switch(reliable_1xx) { case REL100_SUPPORTED: /* if support is on, enforce if asked by UAC */ - if (key_in_list(getHeader(req.hdrs, SIP_HDR_SUPPORTED), + if (key_in_list(getHeader(req.hdrs, SIP_HDR_SUPPORTED, SIP_HDR_SUPPORTED_COMPACT), SIP_EXT_100REL) || key_in_list(getHeader(req.hdrs, SIP_HDR_REQUIRE), SIP_EXT_100REL)) { @@ -182,7 +182,7 @@ int AmSipDialog::rel100OnRequestIn(const AmSipRequest& req) break; case REL100_REQUIRE: /* if support is required, reject if UAC doesn't */ - if (! (key_in_list(getHeader(req.hdrs,SIP_HDR_SUPPORTED), + if (! (key_in_list(getHeader(req.hdrs,SIP_HDR_SUPPORTED, SIP_HDR_SUPPORTED_COMPACT), SIP_EXT_100REL) || key_in_list(getHeader(req.hdrs, SIP_HDR_REQUIRE), SIP_EXT_100REL))) { diff --git a/core/AmSipHeaders.h b/core/AmSipHeaders.h index fea90af3..00b14703 100644 --- a/core/AmSipHeaders.h +++ b/core/AmSipHeaders.h @@ -45,6 +45,7 @@ #define SIP_EXT_100REL "100rel" #define SIP_HDR_SESSION_EXPIRES_COMPACT "x" +#define SIP_HDR_SUPPORTED_COMPACT "k" #define SIP_IS_200_CLASS(code) ((code >= 200) && (code < 300)) diff --git a/core/plug-in/session_timer/SessionTimer.cpp b/core/plug-in/session_timer/SessionTimer.cpp index b9778b88..a91668cc 100644 --- a/core/plug-in/session_timer/SessionTimer.cpp +++ b/core/plug-in/session_timer/SessionTimer.cpp @@ -270,7 +270,8 @@ void SessionTimer::updateTimer(AmSession* s, const AmSipRequest& req) { if((req.method == SIP_METH_INVITE)||(req.method == SIP_METH_UPDATE)){ remote_timer_aware = - key_in_list(getHeader(req.hdrs, SIP_HDR_SUPPORTED), TIMER_OPTION_TAG, true); + key_in_list(getHeader(req.hdrs, SIP_HDR_SUPPORTED, SIP_HDR_SUPPORTED_COMPACT), + TIMER_OPTION_TAG, true); // determine session interval string sess_expires_hdr = getHeader(req.hdrs, SIP_HDR_SESSION_EXPIRES,