aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xchannels/chan_zap.c10
-rwxr-xr-xconfigs/zapata.conf.sample4
2 files changed, 14 insertions, 0 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 52cb22fd8..02bed9992 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -203,6 +203,8 @@ static int echocancel;
static int echotraining;
+static int pulse;
+
static int echocanbridged = 0;
static int busydetect = 0;
@@ -489,6 +491,7 @@ static struct zt_pvt {
int callwaitrings;
int echocancel;
int echotraining;
+ int pulse;
int echocanbridged;
int echocanon;
int echobreak;
@@ -1669,6 +1672,9 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
if (p->sig == SIG_FEATB) {
snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "M*%s#", c + p->stripmsd);
} else
+ if(p->pulse)
+ snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "P%sw", c + p->stripmsd);
+ else
snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "T%sw", c + p->stripmsd);
if (p->echotraining && (strlen(p->dop.dialstr) > 4)) {
memset(p->echorest, 'w', sizeof(p->echorest) - 1);
@@ -6173,6 +6179,7 @@ static struct zt_pvt *mkintf(int channel, int signalling, int radio, struct zt_p
tmp->callreturn = callreturn;
tmp->echocancel = echocancel;
tmp->echotraining = echotraining;
+ tmp->pulse = pulse;
tmp->echocanbridged = echocanbridged;
tmp->busydetect = busydetect;
tmp->busycount = busycount;
@@ -8944,6 +8951,8 @@ static int setup_zap(void)
echotraining = 0;
} else if (!strcasecmp(v->name, "hidecallerid")) {
hidecallerid = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "pulsedial")) {
+ pulse = ast_true(v->value);
} else if (!strcasecmp(v->name, "callreturn")) {
callreturn = ast_true(v->value);
} else if (!strcasecmp(v->name, "callwaiting")) {
@@ -9838,3 +9847,4 @@ char *key()
{
return ASTERISK_GPL_KEY;
}
+
diff --git a/configs/zapata.conf.sample b/configs/zapata.conf.sample
index efa9cb9ff..28343a9d5 100755
--- a/configs/zapata.conf.sample
+++ b/configs/zapata.conf.sample
@@ -308,6 +308,10 @@ immediate=no
;callprogress=yes
;progzone=us
;
+; For FXO (FXS signalled) devices, whether to use pulse dial instead of DTMF
+;
+;pulsedial=yes
+;
; For fax detection, uncomment one of the following lines. The default is *OFF*
;
;faxdetect=both