Version 0.3.0 from FTP
authorMark Spencer <markster@digium.com>
Fri, 8 Nov 2002 19:38:10 +0000 (19:38 +0000)
committerMark Spencer <markster@digium.com>
Fri, 8 Nov 2002 19:38:10 +0000 (19:38 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@543 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_setcallerid.c

index 17f0855..2b0fdb6 100755 (executable)
@@ -30,8 +30,8 @@ static char *app = "SetCallerID";
 static char *synopsis = "Set CallerID";
 
 static char *descrip = 
-"  SetCallerID(clid): Set Caller*ID on a call to a new\n"
-"value.  Always returns 0\n";
+"  SetCallerID(clid[|a]): Set Caller*ID on a call to a new\n"
+"value.  Sets ANI as well if a flag is used.  Always returns 0\n";
 
 STANDARD_LOCAL_USER;
 
@@ -40,11 +40,21 @@ LOCAL_USER_DECL;
 static int setcallerid_exec(struct ast_channel *chan, void *data)
 {
        int res = 0;
+       char tmp[256] = "";
        struct localuser *u;
-       if (data && !strlen((char *)data))
-               data = NULL;
+       char *opt;
+       int anitoo = 0;
+       if (data)
+               strncpy(tmp, (char *)data, sizeof(tmp) - 1);
+       opt = strchr(tmp, '|');
+       if (opt) {
+               *opt = '\0';
+               opt++;
+               if (*opt == 'a')
+                       anitoo = 1;
+       }
        LOCAL_USER_ADD(u);
-       ast_set_callerid(chan, (char *)data);
+       ast_set_callerid(chan, strlen(tmp) ? tmp : NULL, anitoo);
        LOCAL_USER_REMOVE(u);
        return res;
 }