Prevent DAHDI channels from overriding the callerid, once it's been set by the user.

(closes issue #16661)
 Reported by: jstapleton
 Patches: 
       20100414__issue16661.diff.txt uploaded by tilghman (license 14)
       20100415__issue16661__1.6.2.diff.txt uploaded by tilghman (license 14)
 Tested by: jstapleton


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@280811 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Tilghman Lesher 16 years ago
parent 27c86f1e9a
commit 996a394a7d

@ -5250,7 +5250,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
return &p->subs[index].f;
}
if (p->subs[index].needcallerid) {
if (p->subs[index].needcallerid && !ast->cid.cid_tns) {
ast_set_callerid(ast, S_OR(p->lastcid_num, NULL),
S_OR(p->lastcid_name, NULL),
S_OR(p->lastcid_num, NULL)
@ -9815,7 +9815,7 @@ static void *pri_dchannel(void *vpri)
if (chanpos < 0) {
ast_log(LOG_WARNING, "Facility Name requested on channel %d/%d not in use on span %d\n",
PRI_SPAN(e->facname.channel), PRI_CHANNEL(e->facname.channel), pri->span);
} else {
} else if (pri->pvts[chanpos]->use_callerid) {
/* Re-use *69 field for PRI */
ast_mutex_lock(&pri->pvts[chanpos]->lock);
ast_copy_string(pri->pvts[chanpos]->lastcid_num, e->facname.callingnum, sizeof(pri->pvts[chanpos]->lastcid_num));

@ -114,6 +114,7 @@ static int callerid_read(struct ast_channel *chan, char *cmd, char *data,
static int callerid_write(struct ast_channel *chan, char *cmd, char *data,
const char *value)
{
int valid = 1;
if (!value || !chan)
return -1;
@ -157,6 +158,11 @@ static int callerid_write(struct ast_channel *chan, char *cmd, char *data,
ast_channel_unlock(chan);
} else {
ast_log(LOG_ERROR, "Unknown callerid data type '%s'.\n", data);
valid = 0;
}
if (valid) {
chan->cid.cid_tns = 1;
}
return 0;

Loading…
Cancel
Save