summaryrefslogtreecommitdiff
path: root/funcs/func_callerid.c
diff options
context:
space:
mode:
Diffstat (limited to 'funcs/func_callerid.c')
-rw-r--r--funcs/func_callerid.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/funcs/func_callerid.c b/funcs/func_callerid.c
index 3de69950e..357055c8c 100644
--- a/funcs/func_callerid.c
+++ b/funcs/func_callerid.c
@@ -44,6 +44,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
<enum name="all" />
<enum name="num" />
<enum name="name" />
+ <enum name="tag" />
<enum name="ANI" />
<enum name="DNID" />
<enum name="RDNIS" />
@@ -161,6 +162,10 @@ static int callerid_read(struct ast_channel *chan, const char *cmd, char *data,
if (chan->cid.cid_name) {
ast_copy_string(buf, chan->cid.cid_name, len);
}
+ } else if (!strncasecmp("tag", data, 3)) {
+ if (chan->cid.cid_tag) {
+ ast_copy_string(buf, chan->cid.cid_tag, len);
+ }
} else if (!strncasecmp("num", data, 3)) {
/* also matches "number" */
if (chan->cid.cid_num) {
@@ -254,6 +259,13 @@ static int callerid_write(struct ast_channel *chan, const char *cmd, char *data,
if (chan->cdr) {
ast_cdr_setcid(chan->cdr, chan);
}
+ } else if (!strncasecmp("tag", data, 3)) {
+ ast_channel_lock(chan);
+ if (chan->cid.cid_tag) {
+ ast_free(chan->cid.cid_tag);
+ }
+ chan->cid.cid_tag = ast_strdup(value);
+ ast_channel_unlock(chan);
} else if (!strncasecmp("ani", data, 3)) {
if (!strncasecmp(data + 3, "2", 1)) {
chan->cid.cid_ani2 = atoi(value);