Bug # 2115: Allow Caller TON to be retrieved in the dialplan

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3538 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Malcolm Davenport 2004-07-30 18:21:54 +00:00
parent 183fb08ee6
commit 9b0b4bf041
3 changed files with 9 additions and 1 deletions

View File

@ -443,6 +443,7 @@ static struct zt_pvt {
char language[MAX_LANGUAGE];
char musicclass[MAX_LANGUAGE];
char callerid[AST_MAX_EXTENSION];
int callerton;
char lastcallerid[AST_MAX_EXTENSION];
char *origcallerid; /* malloced original callerid */
char callwaitcid[AST_MAX_EXTENSION];
@ -4409,6 +4410,7 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int
tmp->callerid = strdup(i->callerid);
tmp->ani = strdup(i->callerid);
}
tmp->callerton = i->callerton;
tmp->restrictcid = i->restrictcid;
tmp->callingpres = i->callingpres;
#ifdef ZAPATA_PRI
@ -7236,6 +7238,8 @@ static void *pri_dchannel(void *vpri)
strncpy(pri->pvts[chanpos]->callerid, e->ring.callingnum, sizeof(pri->pvts[chanpos]->callerid)-1);
} else
pri->pvts[chanpos]->callerid[0] = '\0';
/* Caller Type Of Number - used to distinguise NANPA from International */
pri->pvts[chanpos]->callerton = ((e->ring.callingplan) >> 4) & 0x7;
strncpy(pri->pvts[chanpos]->rdnis, e->ring.redirectingnum, sizeof(pri->pvts[chanpos]->rdnis) - 1);
/* If immediate=yes go to s|1 */
if (pri->pvts[chanpos]->immediate) {

View File

@ -148,7 +148,9 @@ struct ast_channel {
/*! Malloc'd Dialed Number Identifier */
char *dnid;
/*! Malloc'd Caller ID */
char *callerid;
char *callerid;
/*! Caller Type Of Number */
int callerton;
/*! Malloc'd ANI */
char *ani;
/*! Malloc'd RDNIS */

2
pbx.c
View File

@ -896,6 +896,8 @@ static void pbx_substitute_variables_temp(struct ast_channel *c, const char *var
*ret = workspace;
} else
*ret = NULL;
} else if (c && !strcmp(var, "CALLERTON")) {
snprintf(workspace, workspacelen, "%d", c->callerton);
} else if (c && !strcmp(var, "DNID")) {
if (c->dnid) {
strncpy(workspace, c->dnid, workspacelen - 1);