summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorAndre Nazario <samoied@users.sourceforge.net>2017-08-25 23:06:10 -0300
committerAndre Nazario <samoied@users.sourceforge.net>2017-08-25 23:06:10 -0300
commita45af3298319b54649abe00b5841f95cc9fe3ae7 (patch)
treefe4a0500960c2a7fa2f49514e8f7ee1d669a5711 /channels
parent28857047da01fec681656802ea3f0981170ac9b1 (diff)
chan_pjsip: Add tag info in CHANNEL function
Create local_tag and remote_tag in CHANNEL info to get tag from From and To headers of a SIP dialog. ASTERISK-27220 Change-Id: I59b16c4b928896fcbde02ad88f0e98922b15d524
Diffstat (limited to 'channels')
-rw-r--r--channels/pjsip/dialplan_functions.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/channels/pjsip/dialplan_functions.c b/channels/pjsip/dialplan_functions.c
index a382c4e0a..48b42ad00 100644
--- a/channels/pjsip/dialplan_functions.c
+++ b/channels/pjsip/dialplan_functions.c
@@ -393,9 +393,15 @@
<enum name="local_uri">
<para>The local URI.</para>
</enum>
+ <enum name="local_tag">
+ <para>Tag in From header</para>
+ </enum>
<enum name="remote_uri">
<para>The remote URI.</para>
</enum>
+ <enum name="remote_tag">
+ <para>Tag in To header</para>
+ </enum>
<enum name="t38state">
<para>The current state of any T.38 fax on this channel.</para>
<enumlist>
@@ -691,10 +697,18 @@ static int channel_read_pjsip(struct ast_channel *chan, const char *type, const
pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, dlg->local.info->uri, buf, buflen);
buf_copy = ast_strdupa(buf);
ast_escape_quoted(buf_copy, buf, buflen);
+ } else if (!strcmp(type, "local_tag")) {
+ ast_copy_pj_str(buf, &dlg->local.info->tag, buflen);
+ buf_copy = ast_strdupa(buf);
+ ast_escape_quoted(buf_copy, buf, buflen);
} else if (!strcmp(type, "remote_uri")) {
pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, dlg->remote.info->uri, buf, buflen);
buf_copy = ast_strdupa(buf);
ast_escape_quoted(buf_copy, buf, buflen);
+ } else if (!strcmp(type, "remote_tag")) {
+ ast_copy_pj_str(buf, &dlg->remote.info->tag, buflen);
+ buf_copy = ast_strdupa(buf);
+ ast_escape_quoted(buf_copy, buf, buflen);
} else if (!strcmp(type, "t38state")) {
ast_copy_string(buf, t38state_to_string[channel->session->t38state], buflen);
} else if (!strcmp(type, "local_addr")) {