From: Stas Kobzar Date: Tue, 30 Jul 2019 17:08:27 +0000 (-0400) Subject: res_pjsip: Channel variable SIPFROMDOMAIN X-Git-Tag: 13.29.0-rc1~15^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06e5c11589a7baba9ec55c09da7f9770a862844e;p=thirdparty%2Fasterisk.git res_pjsip: Channel variable SIPFROMDOMAIN In chan_sip, there was variable SIPFROMDOMAIN that allows to set From header URI domain per channel. This patch introduces res_pjsip variable SIPFROMDOMAIN for backward compatibility with chan_sip. ASTERISK-28489 Change-Id: I715133e43172ce2a1e82093538dc39f9e99e5f2e --- diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index ee120995dc..0cc514ae04 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -766,6 +766,7 @@ static void set_from_header(struct ast_sip_session *session) pjsip_sip_uri *dlg_info_uri; pjsip_sip_uri *dlg_contact_uri; int restricted; + const char *pjsip_from_domain; if (!session->channel || session->saved_from_hdr) { return; @@ -809,6 +810,17 @@ static void set_from_header(struct ast_sip_session *session) pj_strdup2(dlg_pool, &dlg_info_uri->host, session->endpoint->fromdomain); } + /* + * Channel variable for compatibility with chan_sip SIPFROMDOMAIN + */ + ast_channel_lock(session->channel); + pjsip_from_domain = pbx_builtin_getvar_helper(session->channel, "SIPFROMDOMAIN"); + if (!ast_strlen_zero(pjsip_from_domain)) { + ast_debug(3, "From header domain reset by channel variable SIPFROMDOMAIN (%s)\n", pjsip_from_domain); + pj_strdup2(dlg_pool, &dlg_info_uri->host, pjsip_from_domain); + } + ast_channel_unlock(session->channel); + /* We need to save off the non-anonymized From for RPID/PAI generation (for domain) */ session->saved_from_hdr = pjsip_hdr_clone(dlg_pool, dlg_info); ast_sip_add_usereqphone(session->endpoint, dlg_pool, session->saved_from_hdr->uri);