mirror of
https://github.com/asterisk/asterisk.git
synced 2026-07-22 14:34:09 -07:00
Revert some logic for session timers. We do send in-dialog requests that should not have session-timer
require headers, like MESSAGE and REFER. So in the future, only add them on requests and responses that are related to INVITEs and re-INVITEs. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@127779 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
+7
-5
@@ -7711,8 +7711,8 @@ static int respprep(struct sip_request *resp, struct sip_pvt *p, const char *msg
|
||||
add_header(resp, "Allow", ALLOWED_METHODS);
|
||||
add_header(resp, "Supported", SUPPORTED_EXTENSIONS);
|
||||
|
||||
/* Add Session-Timers related headers if the feature is active for this session */
|
||||
if (p->stimer && p->stimer->st_active == TRUE && p->stimer->st_active_peer_ua == TRUE) {
|
||||
/* If this is an invite, add Session-Timers related headers if the feature is active for this session */
|
||||
if (p->method == SIP_INVITE && p->stimer && p->stimer->st_active == TRUE && p->stimer->st_active_peer_ua == TRUE) {
|
||||
char se_hdr[256];
|
||||
snprintf(se_hdr, sizeof(se_hdr), "%d;refresher=%s", p->stimer->st_interval,
|
||||
strefresher2str(p->stimer->st_ref));
|
||||
@@ -7854,10 +7854,12 @@ static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, in
|
||||
/* Add Session-Timers related headers if the feature is active for this session.
|
||||
An exception to this behavior is the ACK request. Since Asterisk never requires
|
||||
session-timers support from a remote end-point (UAS) in an INVITE, it must
|
||||
not send 'Require: timer' header in the ACK request. Also, Require: header
|
||||
is not applicable for CANCEL method. */
|
||||
not send 'Require: timer' header in the ACK request.
|
||||
This should only be added in the INVITE transactions, not MESSAGE or REFER or other
|
||||
in-dialog messages.
|
||||
*/
|
||||
if (p->stimer && p->stimer->st_active == TRUE && p->stimer->st_active_peer_ua == TRUE
|
||||
&& sipmethod != SIP_ACK && sipmethod != SIP_CANCEL) {
|
||||
&& sipmethod == SIP_INVITE) {
|
||||
char se_hdr[256];
|
||||
snprintf(se_hdr, sizeof(se_hdr), "%d;refresher=%s", p->stimer->st_interval,
|
||||
strefresher2str(p->stimer->st_ref));
|
||||
|
||||
Reference in New Issue
Block a user