Index: pbx.c =================================================================== RCS file: /usr/cvsroot/asterisk/pbx.c,v retrieving revision 1.200 diff -u -r1.200 pbx.c --- pbx.c 2 Feb 2005 02:54:15 -0000 1.200 +++ pbx.c 9 Feb 2005 18:52:53 -0000 @@ -862,37 +862,65 @@ else *ret+=strlen(*ret)+offset; (*ret)[offset2] = '\0'; - } else if (c && !strcmp(var, "CALLERIDNUM")) { - if (c->cid.cid_num) { - strncpy(workspace, c->cid.cid_num, workspacelen - 1); - *ret = workspace; - } else - *ret = NULL; - } else if (c && !strcmp(var, "CALLERANI")) { - if (c->cid.cid_ani) { - strncpy(workspace, c->cid.cid_ani, workspacelen - 1); - *ret = workspace; - } else - *ret = NULL; - } else if (c && !strcmp(var, "CALLERIDNAME")) { - if (c->cid.cid_name) { - strncpy(workspace, c->cid.cid_name, workspacelen - 1); - *ret = workspace; - } else - *ret = NULL; - } else if (c && !strcmp(var, "CALLERID")) { - if (c->cid.cid_num) { - if (c->cid.cid_name) { - snprintf(workspace, workspacelen, "\"%s\" <%s>", c->cid.cid_name, c->cid.cid_num); - } else { - strncpy(workspace, c->cid.cid_num, workspacelen - 1); + } else if (c && !strncmp(var, "CALL", 4)) { + if (!strncmp(var + 4, "ER", 2)) { + if (!strncmp(var + 6, "ID", 2)) { + if (!strcmp(var + 8, "")) { + /* CALLERID */ + if (c->cid.cid_num) { + if (c->cid.cid_name) { + snprintf(workspace, workspacelen, "\"%s\" <%s>", c->cid.cid_name, c->cid.cid_num); + } else { + strncpy(workspace, c->cid.cid_num, workspacelen - 1); + } + *ret = workspace; + } else if (c->cid.cid_name) { + strncpy(workspace, c->cid.cid_name, workspacelen - 1); + *ret = workspace; + } else + *ret = NULL; + } else if (!strcmp(var + 8, "NUM")) { + /* CALLERIDNUM */ + if (c->cid.cid_num) { + strncpy(workspace, c->cid.cid_num, workspacelen - 1); + *ret = workspace; + } else + *ret = NULL; + } else if (!strcmp(var + 8, "NAME")) { + /* CALLERIDNAME */ + if (c->cid.cid_name) { + strncpy(workspace, c->cid.cid_name, workspacelen - 1); + *ret = workspace; + } else + *ret = NULL; + } + } else if (!strcmp(var + 6, "ANI")) { + /* CALLERANI */ + if (c->cid.cid_ani) { + strncpy(workspace, c->cid.cid_ani, workspacelen - 1); + *ret = workspace; + } else + *ret = NULL; } - *ret = workspace; - } else if (c->cid.cid_name) { - strncpy(workspace, c->cid.cid_name, workspacelen - 1); - *ret = workspace; - } else - *ret = NULL; + } else if (!strncmp(var + 4, "ING", 3)) { + if (!strcmp(var + 7, "PRES")) { + /* CALLINGPRES */ + snprintf(workspace, workspacelen, "%d", c->cid.cid_pres); + *ret = workspace; + } else if (!strcmp(var + 7, "ANI2")) { + /* CALLINGANI2 */ + snprintf(workspace, workspacelen, "%d", c->cid.cid_ani2); + *ret = workspace; + } else if (!strcmp(var + 7, "TON")) { + /* CALLINGTON */ + snprintf(workspace, workspacelen, "%d", c->cid.cid_ton); + *ret = workspace; + } else if (!strcmp(var + 7, "TNS")) { + /* CALLINGTNS */ + snprintf(workspace, workspacelen, "%d", c->cid.cid_tns); + *ret = workspace; + } + } } else if (c && !strcmp(var, "DNID")) { if (c->cid.cid_dnid) { strncpy(workspace, c->cid.cid_dnid, workspacelen - 1); @@ -924,25 +952,13 @@ } else if (c && !strcmp(var, "PRIORITY")) { snprintf(workspace, workspacelen, "%d", c->priority); *ret = workspace; - } else if (c && !strcmp(var, "CALLINGPRES")) { - snprintf(workspace, workspacelen, "%d", c->cid.cid_pres); - *ret = workspace; - } else if (c && !strcmp(var, "CALLINGANI2")) { - snprintf(workspace, workspacelen, "%d", c->cid.cid_ani2); - *ret = workspace; - } else if (c && !strcmp(var, "CALLINGTON")) { - snprintf(workspace, workspacelen, "%d", c->cid.cid_ton); - *ret = workspace; - } else if (c && !strcmp(var, "CALLINGTNS")) { - snprintf(workspace, workspacelen, "%d", c->cid.cid_tns); - *ret = workspace; } else if (c && !strcmp(var, "CHANNEL")) { strncpy(workspace, c->name, workspacelen - 1); *ret = workspace; } else if (c && !strcmp(var, "EPOCH")) { snprintf(workspace, workspacelen, "%u",(int)time(NULL)); *ret = workspace; - } else if (c && !strcmp(var, "DATETIME")) { + } else if (!strcmp(var, "DATETIME")) { thistime=time(NULL); localtime_r(&thistime, &brokentime); snprintf(workspace, workspacelen, "%02d%02d%04d-%02d:%02d:%02d", @@ -954,7 +970,7 @@ brokentime.tm_sec ); *ret = workspace; - } else if (c && !strcmp(var, "TIMESTAMP")) { + } else if (!strcmp(var, "TIMESTAMP")) { thistime=time(NULL); localtime_r(&thistime, &brokentime); /* 20031130-150612 */