Make cidrings configurable (bug #2889)
authorMark Spencer <markster@digium.com>
Tue, 28 Dec 2004 21:32:25 +0000 (21:32 +0000)
committerMark Spencer <markster@digium.com>
Tue, 28 Dec 2004 21:32:25 +0000 (21:32 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4574 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_zap.c
configs/zapata.conf.sample

index 8d2a321..f45a4f3 100755 (executable)
@@ -277,6 +277,9 @@ static int hanguponpolarityswitch = 0;
 /* How long (ms) to ignore Polarity Switch events after we answer a call */
 static int polarityonanswerdelay = 600;
 
+/* When to send the CallerID signals (rings) */
+static int sendcalleridafter = DEFAULT_CIDRINGS;
+
 /* Protect the monitoring thread, so only one process can kill or start it, and not
    when it's doing something critical. */
 AST_MUTEX_DEFINE_STATIC(monlock);
@@ -566,6 +569,7 @@ static struct zt_pvt {
        int hanguponpolarityswitch;
        int polarityonanswerdelay;
        struct timeval polaritydelaytv;
+       int sendcalleridafter;
 #ifdef ZAPATA_PRI
        struct zt_pri *pri;
        struct zt_pvt *bearer;
@@ -1567,7 +1571,7 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
                        } else {
                                if (ioctl(p->subs[SUB_REAL].zfd, ZT_SETCADENCE, NULL))
                                        ast_log(LOG_WARNING, "Unable to reset default ring on '%s'\n", ast->name);
-                               p->cidrings = DEFAULT_CIDRINGS;
+                               p->cidrings = p->sendcalleridafter;
                        }
 
 
@@ -6652,6 +6656,7 @@ static struct zt_pvt *mkintf(int channel, int signalling, int radio, struct zt_p
 
                tmp->polarityonanswerdelay = polarityonanswerdelay;
                tmp->hanguponpolarityswitch = hanguponpolarityswitch;
+               tmp->sendcalleridafter = sendcalleridafter;
 
        }
        if (tmp && !here) {
@@ -9809,6 +9814,8 @@ static int setup_zap(int reload)
                                polarityonanswerdelay = atoi(v->value);
                        } else if (!strcasecmp(v->name, "hanguponpolarityswitch")) {
                                hanguponpolarityswitch = ast_true(v->value);
+                       } else if (!strcasecmp(v->name, "sendcalleridafter")) {
+                               sendcalleridafter = atoi(v->value);
                        } 
                } else 
                        ast_log(LOG_WARNING, "Ignoring %s\n", v->name);
index e65ff7c..60095e6 100755 (executable)
@@ -186,6 +186,13 @@ callwaiting=yes
 ;
 usecallingpres=yes
 ;
+; Some countries (UK) have ring tones with different ring tones (ring-ring),
+; which means the callerid needs to be set later on, and not just after
+; the first ring, as per the default. 
+;
+;sendcalleridafter=1
+;
+;
 ; Support Caller*ID on Call Waiting
 ;
 callwaitingcallerid=yes