aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xchannels/chan_zap.c9
-rwxr-xr-xconfigs/zapata.conf.sample7
2 files changed, 15 insertions, 1 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 8d2a321d9..f45a4f327 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -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);
diff --git a/configs/zapata.conf.sample b/configs/zapata.conf.sample
index e65ff7c0a..60095e61e 100755
--- a/configs/zapata.conf.sample
+++ b/configs/zapata.conf.sample
@@ -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