diff options
author | Alexander Traud <pabstraud@compuserve.com> | 2017-04-03 09:30:43 +0200 |
---|---|---|
committer | Alexander Traud <pabstraud@compuserve.com> | 2017-04-03 02:44:05 -0500 |
commit | 65c87a8ea970b2fb082ac86d4cdb52f52685b475 (patch) | |
tree | d46dea559fff72160290b9b1312831d1a45e5fbd /channels | |
parent | 25db34f8a1d12f2e84e0850fffd739db4460d019 (diff) |
chan_sip: Session Timers required but refused wrongly.
SIP user-agents indicate which protocol extensions are allowed in headers
like Supported and Required. Such protocol extensions are Session Timers
(RFC 4028) for example. Session Timers are supported since Mantis-10665.
Since ASTERISK-21721, not only the first but multiple Supported/Required
headers in a message are parsed. In that change, an existing variable was
re-used within a newly added do-loop. Currently, at the end of that loop,
that variable is an empty string always. Previously, that variable was used
within log output. However, the log output was not changed.
ASTERISK-26915 #close
Change-Id: I09315f31b4d78fb214bb2a9fb6c0f5e143eae990
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 86c4bea98..052fa9e9c 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -25817,8 +25817,7 @@ static int handle_request_update(struct sip_pvt *p, struct sip_request *req) * \retval 0 ok * \retval -1 failure */ -static int handle_request_invite_st(struct sip_pvt *p, struct sip_request *req, - const char *required, int reinvite) +static int handle_request_invite_st(struct sip_pvt *p, struct sip_request *req, int reinvite) { const char *p_uac_se_hdr; /* UAC's Session-Expires header string */ const char *p_uac_min_se; /* UAC's requested Min-SE interval (char string) */ @@ -25898,8 +25897,8 @@ static int handle_request_invite_st(struct sip_pvt *p, struct sip_request *req, case SESSION_TIMER_MODE_REFUSE: 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); + transmit_response_with_unsupported(p, "420 Option Disabled", req, "timer"); + ast_log(LOG_WARNING, "Received SIP INVITE with supported but disabled option: timer\n"); return -1; } break; @@ -26005,7 +26004,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str * then send a 420 with only those unsupported options listed */ if (!ast_strlen_zero(unsupported)) { transmit_response_with_unsupported(p, "420 Bad extension (unsupported)", req, unsupported); - ast_log(LOG_WARNING, "Received SIP INVITE with unsupported required extension: required:%s unsupported:%s\n", required, unsupported); + ast_log(LOG_WARNING, "Received SIP INVITE with unsupported required extension: %s\n", unsupported); p->invitestate = INV_COMPLETED; if (!p->lastinvite) { sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); @@ -26443,7 +26442,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str make_our_tag(p); - if (handle_request_invite_st(p, req, required, reinvite)) { + if (handle_request_invite_st(p, req, reinvite)) { p->invitestate = INV_COMPLETED; sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); res = INV_REQ_ERROR; @@ -26485,7 +26484,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str if (!req->ignore) reinvite = 1; - if (handle_request_invite_st(p, req, required, reinvite)) { + if (handle_request_invite_st(p, req, reinvite)) { p->invitestate = INV_COMPLETED; if (!p->lastinvite) { sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); |