diff options
Diffstat (limited to 'funcs/func_callerid.c')
-rw-r--r-- | funcs/func_callerid.c | 12 |
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); |