From: Alexander Traud Date: Thu, 22 Dec 2016 15:13:46 +0000 (+0100) Subject: res_pjsip_session: Access SIPDOMAIN via Dialplan. X-Git-Tag: 13.14.0-rc1~52^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=569dac8e50dd9213dd6c0f9f060fe697377e6f70;p=thirdparty%2Fasterisk.git res_pjsip_session: Access SIPDOMAIN via Dialplan. This feature was available in the SIP channel driver chan_sip. For example, Asterisk is the outbound proxy and has to handle all SIP-URIs, even domains not local to Asterisk. In that case, SIPDOMAIN is used in the Dialplan, to detect and dial remote SIP-URIs. This change here sets the SIP destination domain of an inbound call (SIPDOMAIN) in the SIP channel driver res_pjsip as well. ASTERISK-26670 #close Change-Id: I27c880dc404a3c1c6792e1ba3545475339577243 --- diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index 60850f04d3..3c4f102f8d 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -1998,6 +1998,12 @@ static enum sip_get_destination_result get_destination(struct ast_sip_session *s if (!strcmp(session->exten, pickupexten) || ast_exists_extension(NULL, session->endpoint->context, session->exten, 1, NULL)) { + size_t size = pj_strlen(&sip_ruri->host) + 1; + char *domain = ast_alloca(size); + + ast_copy_pj_str(domain, &sip_ruri->host, size); + pbx_builtin_setvar_helper(session->channel, "SIPDOMAIN", domain); + return SIP_GET_DEST_EXTEN_FOUND; } /* XXX In reality, we'll likely have further options so that partial matches