summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorDavid J. Pryke <david+extra.asterisk@pryke.us>2017-09-19 10:34:01 -0400
committerDavid J. Pryke <david+extra.asterisk@pryke.us>2017-09-19 10:34:01 -0400
commit94f616e5e26bb66698f99e470e9901f3097730a6 (patch)
tree4eb46b2a75ca8e69f9663ff1d2816a50cfd24230 /channels
parent1a35e2b8c1f495ed7ee9e459b9feae7291da6958 (diff)
chan_sip: Expose read-only access to the full SIP INVITE Request-URI
Provide a way to get the contents of the the Request URI from the initial SIP INVITE in dial plan function call. (In this case "${CHANNEL(ruri)}") ASTERISK-27278 Reported by: David J. Pryke Tested by: David J. Pryke Change-Id: I1dd4d6988eed1b6c98a9701e0e833a15ef0dac3e
Diffstat (limited to 'channels')
-rw-r--r--channels/sip/dialplan_functions.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/channels/sip/dialplan_functions.c b/channels/sip/dialplan_functions.c
index af443fd51..7a1a4435a 100644
--- a/channels/sip/dialplan_functions.c
+++ b/channels/sip/dialplan_functions.c
@@ -41,6 +41,9 @@
<enum name="uri">
<para>R/O Get the URI from the Contact: header.</para>
</enum>
+ <enum name="ruri">
+ <para>R/O Get the Request-URI from the INVITE header.</para>
+ </enum>
<enum name="useragent">
<para>R/O Get the useragent.</para>
</enum>
@@ -164,6 +167,9 @@ int sip_acf_channel_read(struct ast_channel *chan, const char *funcname, char *p
ast_copy_string(buf, p->from, buflen);
} else if (!strcasecmp(args.param, "uri")) {
ast_copy_string(buf, p->uri, buflen);
+ } else if (!strcasecmp(args.param, "ruri")) {
+ char *tmpruri = REQ_OFFSET_TO_STR(&p->initreq, rlpart2);
+ ast_copy_string(buf, tmpruri, buflen);
} else if (!strcasecmp(args.param, "useragent")) {
ast_copy_string(buf, p->useragent, buflen);
} else if (!strcasecmp(args.param, "peername")) {