[Asterisk-Dev] Re: [Asterisk-cvs] asterisk/channels chan_zap.c,1.154,1.155

James Sizemore james at deny.org
Thu Dec 18 03:20:31 MST 2003


A clean checkout of CVS asterisk and zaptel are now failing to build:

gcc -c -pipe  -Wall -Wstrict-prototypes -Wmissing-prototypes 
-Wmissing-declarations -g  -Iinclude -I../include -D_REENTRANT 
-D_GNU_SOURCE  -O6 -march=i686  -DZAPTEL_OPTIMIZATIONS 
-DASTERISK_VERSION=\"CVS-12/18/03-04:09:32\" -DINSTALL_PREFIX=\"\" 
-DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" 
-DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" 
-DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" 
-DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" 
-DASTMODDIR=\"/usr/lib/asterisk/modules\" 
-DASTAGIDIR=\"/var/lib/asterisk/agi-bin\"     -DBUSYDETECT_MARTIN     
-DNEW_PRI_HANGUP  -Wno-missing-prototypes -Wno-missing-declarations     
-DIAX_TRUNKING -DCRYPTO -fPIC  -o chan_zap.o chan_zap.c
chan_zap.c: In function `zt_handle_event':
chan_zap.c:3027: structure has no member named 
`useincomingcalleridonzaptransfer'
chan_zap.c:3037: structure has no member named 
`useincomingcalleridonzaptransfer'
chan_zap.c: In function `mkintf':
chan_zap.c:5322: structure has no member named 
`useincomingcalleridonzaptransfer'
make[1]: *** [chan_zap.o] Error 1
make[1]: Leaving directory `/usr/src/asterisk/channels'
make: *** [subdirs] Error 1


martinp at lists.digium.com wrote:

>Update of /usr/cvsroot/asterisk/channels
>In directory mongoose.digium.com:/tmp/cvs-serv20837/channels
>
>Modified Files:
>	chan_zap.c 
>Log Message:
>Add 'useincomingcalleridonzaptransfer' keyword to chan_zap so that if there is incoming call on fxs port and you flashhook and transfer that call (or do a threeway call) the incoming callerid will be presented.
>
>
>Index: chan_zap.c
>===================================================================
>RCS file: /usr/cvsroot/asterisk/channels/chan_zap.c,v
>retrieving revision 1.154
>retrieving revision 1.155
>diff -u -d -r1.154 -r1.155
>--- chan_zap.c	11 Dec 2003 20:55:26 -0000	1.154
>+++ chan_zap.c	17 Dec 2003 23:39:16 -0000	1.155
>@@ -136,7 +136,7 @@
> static char musicclass[MAX_LANGUAGE] = "";
> 
> static int use_callerid = 1;
>-
>+static int useincomingcalleridonzaptransfer = 0;
> static int cur_signalling = -1;
> 
> static unsigned int cur_group = 0;
>@@ -372,6 +372,7 @@
> 	char musicclass[MAX_LANGUAGE];
> 	char callerid[AST_MAX_EXTENSION];
> 	char lastcallerid[AST_MAX_EXTENSION];
>+	char *origcallerid;			/* malloced original callerid */
> 	char callwaitcid[AST_MAX_EXTENSION];
> 	char rdnis[AST_MAX_EXTENSION];
> 	char dnid[AST_MAX_EXTENSION];
>@@ -455,6 +456,7 @@
> 	int resetting;
> 	int prioffset;
> 	int alreadyhungup;
>+	int useincomingcalleridonzaptransfer;
> #ifdef PRI_EVENT_PROCEEDING
> 	int proceeding;
> #endif
>@@ -1664,7 +1666,11 @@
> 	x = 0;
> 	zt_confmute(p, 0);
> 	restore_gains(p);
>-	
>+	if (p->origcallerid) {
>+		strncpy(p->callerid, p->origcallerid, sizeof(p->callerid) - 1);
>+		free(p->origcallerid);
>+		p->origcallerid = NULL;
>+	}	
> 	if (p->dsp)
> 		ast_dsp_digitmode(p->dsp,DSP_DIGITMODE_DTMF | p->dtmfrelax);
> 
>@@ -3016,7 +3022,10 @@
> 						if (p->subs[SUB_REAL].owner->bridge)
> 								ast_moh_stop(p->subs[SUB_REAL].owner->bridge);
> 					} else if (!p->subs[SUB_THREEWAY].owner) {
>+						char callerid[256];
> 						if (p->threewaycalling && !check_for_conference(p)) {
>+							if (p->useincomingcalleridonzaptransfer && p->owner)
>+								strncpy(callerid, p->owner->callerid, sizeof(callerid) - 1);
> 							/* XXX This section needs much more error checking!!! XXX */
> 							/* Start a 3-way call if feasible */
> 							if ((ast->pbx) ||
>@@ -3025,6 +3034,13 @@
> 								if (!alloc_sub(p, SUB_THREEWAY)) {
> 									/* Make new channel */
> 									chan = zt_new(p, AST_STATE_RESERVED, 0, SUB_THREEWAY, 0, 0);
>+									if (p->useincomingcalleridonzaptransfer) {
>+										if (!p->origcallerid) {
>+											p->origcallerid = malloc(strlen(p->callerid) + 1);
>+											strncpy(p->origcallerid, p->callerid, strlen(p->callerid) + 1);
>+										}
>+										strncpy(p->callerid, callerid, sizeof(p->callerid) -1);
>+									}
> 									/* Swap things around between the three-way and real call */
> 									swap_subs(p, SUB_THREEWAY, SUB_REAL);
> 									/* Disable echo canceller for better dialing */
>@@ -5303,6 +5319,7 @@
> 		tmp->channel = channel;
> 		tmp->stripmsd = stripmsd;
> 		tmp->use_callerid = use_callerid;
>+		tmp->useincomingcalleridonzaptransfer = useincomingcalleridonzaptransfer;
> 		tmp->restrictcid = restrictcid;
> 		tmp->use_callingpres = use_callingpres;
> 		strncpy(tmp->accountcode, accountcode, sizeof(tmp->accountcode)-1);
>@@ -7143,6 +7160,8 @@
> 				strcpy(callerid,"");
> 			else
> 				strncpy(callerid, v->value, sizeof(callerid)-1);
>+		} else if (!strcasecmp(v->name, "useincomingcalleridonzaptransfer")) {
>+			useincomingcalleridonzaptransfer = ast_true(v->value);
> 		} else if (!strcasecmp(v->name, "restrictcid")) {
> 			restrictcid = ast_true(v->value);
> 		} else if (!strcasecmp(v->name, "usecallingpres")) {
>
>_______________________________________________
>Asterisk-Cvs mailing list
>Asterisk-Cvs at lists.digium.com
>http://lists.digium.com/mailman/listinfo/asterisk-cvs
>  
>





More information about the asterisk-dev mailing list