summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Traud <pabstraud@compuserve.com>2016-12-22 16:13:46 +0100
committerAlexander Traud <pabstraud@compuserve.com>2017-01-04 07:13:05 -0600
commit569dac8e50dd9213dd6c0f9f060fe697377e6f70 (patch)
treec534574acd3b6f61d91aede7fb48bd29a992d958
parent0ab9d103f614c6339334c60bc032c1f8f941326c (diff)
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
-rw-r--r--res/res_pjsip_session.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 60850f04d..3c4f102f8 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