From 62dd0dc6f27b3cd195cb4ac4a08a240afa2c09d3 Mon Sep 17 00:00:00 2001
From: Olle Johansson <oej@edvina.net>
Date: Mon, 5 Jun 2006 06:23:22 +0000
Subject: [PATCH] Only override callingpres set by rpid if user/peer preference
 is set. (Issue #7240)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 975ad73d73..7e6a3300af 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -7739,7 +7739,8 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
 			p->amaflags = user->amaflags;
 			p->callgroup = user->callgroup;
 			p->pickupgroup = user->pickupgroup;
-			p->callingpres = user->callingpres;
+			if (user->callingpres)	/* User callingpres setting will override RPID header */
+				p->callingpres = user->callingpres;
 			p->capability = user->capability;
 			p->jointcapability = user->capability;
 			p->maxcallbitrate = user->maxcallbitrate;
@@ -7811,7 +7812,8 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
 			ast_string_field_set(p, peersecret, peer->secret);
 			ast_string_field_set(p, peermd5secret, peer->md5secret);
 			ast_string_field_set(p, subscribecontext, peer->subscribecontext);
-			p->callingpres = peer->callingpres;
+			if (peer->callingpres)	/* Peer calling pres setting will override RPID */
+				p->callingpres = peer->callingpres;
 			if (peer->maxms && peer->lastms)
 				p->timer_t1 = peer->lastms;
 			if (ast_test_flag(&peer->flags[0], SIP_INSECURE_INVITE)) {
-- 
GitLab