From 77b39af6bfb0b78035c0191a03eb940265a7f285 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Wed, 15 Dec 2004 20:20:58 +0000
Subject: [PATCH] Fix DISA with callerid (bug #3058)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_disa.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/apps/app_disa.c b/apps/app_disa.c
index 1beb09fe50..3413d6efd8 100755
--- a/apps/app_disa.c
+++ b/apps/app_disa.c
@@ -114,7 +114,7 @@ static int disa_exec(struct ast_channel *chan, void *data)
 	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 @@ static int disa_exec(struct ast_channel *chan, void *data)
 		/* 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);
-- 
GitLab