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



[EMAIL PROTECTED] 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
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-cvs




_______________________________________________
Asterisk-Dev mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to