Add pulse dial support

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3774 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
Mark Spencer 21 years ago
parent 3cb1d7843b
commit 45b91a90e1

@ -203,6 +203,8 @@ static int echocancel;
static int echotraining; static int echotraining;
static int pulse;
static int echocanbridged = 0; static int echocanbridged = 0;
static int busydetect = 0; static int busydetect = 0;
@ -489,6 +491,7 @@ static struct zt_pvt {
int callwaitrings; int callwaitrings;
int echocancel; int echocancel;
int echotraining; int echotraining;
int pulse;
int echocanbridged; int echocanbridged;
int echocanon; int echocanon;
int echobreak; int echobreak;
@ -1669,6 +1672,9 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
if (p->sig == SIG_FEATB) { if (p->sig == SIG_FEATB) {
snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "M*%s#", c + p->stripmsd); snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "M*%s#", c + p->stripmsd);
} else } 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); snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "T%sw", c + p->stripmsd);
if (p->echotraining && (strlen(p->dop.dialstr) > 4)) { if (p->echotraining && (strlen(p->dop.dialstr) > 4)) {
memset(p->echorest, 'w', sizeof(p->echorest) - 1); 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->callreturn = callreturn;
tmp->echocancel = echocancel; tmp->echocancel = echocancel;
tmp->echotraining = echotraining; tmp->echotraining = echotraining;
tmp->pulse = pulse;
tmp->echocanbridged = echocanbridged; tmp->echocanbridged = echocanbridged;
tmp->busydetect = busydetect; tmp->busydetect = busydetect;
tmp->busycount = busycount; tmp->busycount = busycount;
@ -8944,6 +8951,8 @@ static int setup_zap(void)
echotraining = 0; echotraining = 0;
} else if (!strcasecmp(v->name, "hidecallerid")) { } else if (!strcasecmp(v->name, "hidecallerid")) {
hidecallerid = ast_true(v->value); hidecallerid = ast_true(v->value);
} else if (!strcasecmp(v->name, "pulsedial")) {
pulse = ast_true(v->value);
} else if (!strcasecmp(v->name, "callreturn")) { } else if (!strcasecmp(v->name, "callreturn")) {
callreturn = ast_true(v->value); callreturn = ast_true(v->value);
} else if (!strcasecmp(v->name, "callwaiting")) { } else if (!strcasecmp(v->name, "callwaiting")) {
@ -9838,3 +9847,4 @@ char *key()
{ {
return ASTERISK_GPL_KEY; return ASTERISK_GPL_KEY;
} }

@ -308,6 +308,10 @@ immediate=no
;callprogress=yes ;callprogress=yes
;progzone=us ;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* ; For fax detection, uncomment one of the following lines. The default is *OFF*
; ;
;faxdetect=both ;faxdetect=both

Loading…
Cancel
Save