[asterisk-commits] tilghman: branch 1.6.2 r280812 - in /branches/1.6.2: ./ channels/ funcs/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Aug 3 15:52:25 CDT 2010


Author: tilghman
Date: Tue Aug  3 15:52:20 2010
New Revision: 280812

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=280812
Log:
Merged revisions 280811 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r280811 | tilghman | 2010-08-03 15:49:10 -0500 (Tue, 03 Aug 2010) | 9 lines
  
  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
........

Modified:
    branches/1.6.2/   (props changed)
    branches/1.6.2/channels/chan_dahdi.c
    branches/1.6.2/funcs/func_callerid.c

Propchange: branches/1.6.2/
------------------------------------------------------------------------------
--- branch-1.4-merged (original)
+++ branch-1.4-merged Tue Aug  3 15:52:20 2010
@@ -1,1 +1,1 @@
-/branches/1.4:1-279056,279206,279945,280088,280341,280448
+/branches/1.4:1-279056,279206,279945,280088,280341,280448,280811

Modified: branches/1.6.2/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/channels/chan_dahdi.c?view=diff&rev=280812&r1=280811&r2=280812
==============================================================================
--- branches/1.6.2/channels/chan_dahdi.c (original)
+++ branches/1.6.2/channels/chan_dahdi.c Tue Aug  3 15:52:20 2010
@@ -6892,7 +6892,7 @@
 		return &p->subs[idx].f;
 	}
 
-	if (p->subs[idx].needcallerid) {
+	if (p->subs[idx].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)
@@ -13296,12 +13296,12 @@
 					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));
 						ast_copy_string(pri->pvts[chanpos]->lastcid_name, e->facname.callingname, sizeof(pri->pvts[chanpos]->lastcid_name));
-						pri->pvts[chanpos]->subs[SUB_REAL].needcallerid =1;
+						pri->pvts[chanpos]->subs[SUB_REAL].needcallerid = 1;
 						dahdi_enable_ec(pri->pvts[chanpos]);
 						ast_mutex_unlock(&pri->pvts[chanpos]->lock);
 					}

Modified: branches/1.6.2/funcs/func_callerid.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/funcs/func_callerid.c?view=diff&rev=280812&r1=280811&r2=280812
==============================================================================
--- branches/1.6.2/funcs/func_callerid.c (original)
+++ branches/1.6.2/funcs/func_callerid.c Tue Aug  3 15:52:20 2010
@@ -191,6 +191,7 @@
 static int callerid_write(struct ast_channel *chan, const char *cmd, char *data,
 			  const char *value)
 {
+	int valid = 1;
 	if (!value || !chan)
 		return -1;
 
@@ -267,6 +268,11 @@
 		chan->cid.cid_ton = atoi(value);
 	} else {
 		ast_log(LOG_ERROR, "Unknown callerid data type '%s'.\n", data);
+		valid = 0;
+	}
+
+	if (valid) {
+		chan->cid.cid_tns = 1;
 	}
 
 	return 0;




More information about the asterisk-commits mailing list