summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2016-05-18 18:27:28 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-05-18 18:27:28 -0500
commit4e7a1b41933380be2a05288ee22d1ff751cbf869 (patch)
tree2621a18c7fc3eb7773e67e22624e0205e5c99c91
parentae81b55361f3919706775b5a64ab8327a8edab4f (diff)
parent5bd1bf281604b653134d79e7094c7cec00785ff1 (diff)
Merge "chan_sip: Prevent extra Session-Expires headers from being added"
-rw-r--r--channels/chan_sip.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 7fde6f8f9..19f8aa308 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -14529,10 +14529,12 @@ static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init,
add_header(&req, "Require", "replaces");
}
- /* Add Session-Timers related headers */
- if (st_get_mode(p, 0) == SESSION_TIMER_MODE_ORIGINATE
+ /* Add Session-Timers related headers if not already there */
+ if (ast_strlen_zero(sip_get_header(&req, "Session-Expires")) &&
+ (sipmethod == SIP_INVITE || sipmethod == SIP_UPDATE) &&
+ (st_get_mode(p, 0) == SESSION_TIMER_MODE_ORIGINATE
|| (st_get_mode(p, 0) == SESSION_TIMER_MODE_ACCEPT
- && st_get_se(p, FALSE) != DEFAULT_MIN_SE)) {
+ && st_get_se(p, FALSE) != DEFAULT_MIN_SE))) {
char i2astr[10];
if (!p->stimer->st_interval) {