diff options
author | Alexander Traud <pabstraud@compuserve.com> | 2016-12-22 16:13:46 +0100 |
---|---|---|
committer | Alexander Traud <pabstraud@compuserve.com> | 2017-01-04 07:13:05 -0600 |
commit | 569dac8e50dd9213dd6c0f9f060fe697377e6f70 (patch) | |
tree | c534574acd3b6f61d91aede7fb48bd29a992d958 | |
parent | 0ab9d103f614c6339334c60bc032c1f8f941326c (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.c | 6 |
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 |