--- asterisk/apps/app_disa.c 2004-12-09 15:39:14.000000000 -0700 +++ asterisk-20041213/apps/app_disa.c 2004-12-15 10:40:28.000000000 -0700 @@ -114,7 +114,7 @@ int digittimeout = 10000; struct localuser *u; char tmp[256],arg2[256]="",exten[AST_MAX_EXTENSION],acctcode[20]=""; - char *ourcontext,*ourcallerid,*mailbox; + char *ourcontext,*ourcallerid,*ourcidname,*ourcidnum,*mailbox; struct ast_frame *f; struct timeval lastout, now, lastdigittime; int res; @@ -323,8 +323,8 @@ /* We're authenticated and have a valid extension */ if (ourcallerid && *ourcallerid) { - if (chan->cid.cid_num) free(chan->cid.cid_num); - chan->cid.cid_num = strdup(ourcallerid); + ast_callerid_split(ourcallerid, ourcidname, sizeof(ourcidname), ourcidnum, sizeof(ourcidnum)); + ast_set_callerid(chan, ourcidnum, ourcidname, ourcidnum); } strncpy(chan->exten, exten, sizeof(chan->exten) - 1); strncpy(chan->context, ourcontext, sizeof(chan->context) - 1);