diff options
Diffstat (limited to 'apps/app_setcidnum.c')
-rwxr-xr-x | apps/app_setcidnum.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/app_setcidnum.c b/apps/app_setcidnum.c index 07a064bb4..cd94f7555 100755 --- a/apps/app_setcidnum.c +++ b/apps/app_setcidnum.c @@ -65,16 +65,21 @@ static int setcallerid_exec(struct ast_channel *chan, void *data) struct localuser *u; char *opt; int anitoo = 0; - char tmp[256]; + char *tmp = NULL; static int deprecation_warning = 0; + LOCAL_USER_ADD(u); + if (!deprecation_warning) { ast_log(LOG_WARNING, "SetCIDNum is deprecated, please use Set(CALLERID(number)=value) instead.\n"); deprecation_warning = 1; } if (data) - ast_copy_string(tmp, (char *)data, sizeof(tmp)); + tmp = ast_strdupa(data); + else + tmp = ""; + opt = strchr(tmp, '|'); if (opt) { *opt = '\0'; @@ -82,9 +87,11 @@ static int setcallerid_exec(struct ast_channel *chan, void *data) if (*opt == 'a') anitoo = 1; } - LOCAL_USER_ADD(u); + ast_set_callerid(chan, tmp, NULL, anitoo ? tmp : NULL); + LOCAL_USER_REMOVE(u); + return res; } |