From: Stas Kobzar Date: Tue, 30 Jul 2019 17:08:27 +0000 (-0400) Subject: res_pjsip: Channel variable SIPFROMDOMAIN X-Git-Tag: 17.1.0-rc1~101^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a246c2a69cd7f160d80c31058e99e9f99de6746;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 52db333e6e..c248670b7d 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -1458,6 +1458,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; @@ -1501,6 +1502,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);