Added patch to support analogmodem connections.
This commit is contained in:
parent
d769b7b4ad
commit
b7f4727218
|
@ -1,5 +1,5 @@
|
||||||
.\" manual page [] for capiplugin 2.3
|
.\" manual page [] for capiplugin 2.3
|
||||||
.\" $Id: capiplugin.8,v 1.10 2002/08/04 10:28:16 calle Exp $
|
.\" $Id: capiplugin.8,v 1.11 2004/07/27 18:06:54 armin Exp $
|
||||||
.\" SH section heading
|
.\" SH section heading
|
||||||
.\" SS subsection heading
|
.\" SS subsection heading
|
||||||
.\" LP paragraph
|
.\" LP paragraph
|
||||||
|
@ -327,7 +327,7 @@ See option \fIdialmax\fR.
|
||||||
phone number to dial to access an outside line. For example, \fInumberprefix 0\fR.
|
phone number to dial to access an outside line. For example, \fInumberprefix 0\fR.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B protocol \fIhdlc\fR | \fIx75\fR | \fIv42bis\fR | \fImodem\fR | \fIv110async\fR | \fIv120async\fR
|
.B protocol \fIhdlc\fR | \fIx75\fR | \fIv42bis\fR | \fImodem\fR | \fIanalogmodem\fR | \fIv110async\fR | \fIv120async\fR
|
||||||
ISDN protocol to use. With \fIhdlc\fR and \fIadskpppoe\fR,
|
ISDN protocol to use. With \fIhdlc\fR and \fIadskpppoe\fR,
|
||||||
the \fIsync\fR option must be added to the pppd.
|
the \fIsync\fR option must be added to the pppd.
|
||||||
With \fIx75\fR, \fIv42bis\fR, \fImodem\fR, \fIv110async\fR and \fIv120async\fR
|
With \fIx75\fR, \fIv42bis\fR, \fImodem\fR, \fIv110async\fR and \fIv120async\fR
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include <linux/if.h>
|
#include <linux/if.h>
|
||||||
|
|
||||||
|
|
||||||
static char *revision = "$Revision: 1.34 $";
|
static char *revision = "$Revision: 1.35 $";
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
@ -122,6 +122,7 @@ static STRINGLIST *inmsns;
|
||||||
#define PROTO_ADSLPPPOE 6
|
#define PROTO_ADSLPPPOE 6
|
||||||
#define PROTO_ADSLPPPOA 7
|
#define PROTO_ADSLPPPOA 7
|
||||||
#define PROTO_ADSLPPPOALLC 8
|
#define PROTO_ADSLPPPOALLC 8
|
||||||
|
#define PROTO_ANALOGMODEM 9
|
||||||
static char *opt_proto = "hdlc";
|
static char *opt_proto = "hdlc";
|
||||||
static int proto = PROTO_HDLC;
|
static int proto = PROTO_HDLC;
|
||||||
static int opt_avmadsl = 0;
|
static int opt_avmadsl = 0;
|
||||||
|
@ -407,11 +408,14 @@ static void plugin_check_options(void)
|
||||||
} else if (strcasecmp(opt_proto, "adslpppoallc") == 0) {
|
} else if (strcasecmp(opt_proto, "adslpppoallc") == 0) {
|
||||||
proto = PROTO_ADSLPPPOALLC;
|
proto = PROTO_ADSLPPPOALLC;
|
||||||
if (!opt_channels) opt_channels = "1";
|
if (!opt_channels) opt_channels = "1";
|
||||||
|
} else if (strcasecmp(opt_proto, "analogmodem") == 0) {
|
||||||
|
proto = PROTO_ANALOGMODEM;
|
||||||
} else {
|
} else {
|
||||||
option_error("capiplugin: unknown protocol \"%s\"", opt_proto);
|
option_error("capiplugin: unknown protocol \"%s\"", opt_proto);
|
||||||
die(1);
|
die(1);
|
||||||
}
|
}
|
||||||
if (strcasecmp(opt_proto, "modem") == 0)
|
if (strcasecmp(opt_proto, "modem") == 0 ||
|
||||||
|
strcasecmp(opt_proto, "analogmodem") == 0)
|
||||||
cipmask = CIPMASK_VOICE;
|
cipmask = CIPMASK_VOICE;
|
||||||
else cipmask = CIPMASK_DATA;
|
else cipmask = CIPMASK_DATA;
|
||||||
|
|
||||||
|
@ -1277,7 +1281,7 @@ static void incoming(capi_connection *cp,
|
||||||
case 5: /* 7 kHz audio */
|
case 5: /* 7 kHz audio */
|
||||||
case 16: /* Telephony */
|
case 16: /* Telephony */
|
||||||
case 26: /* 7 kHz telephony */
|
case 26: /* 7 kHz telephony */
|
||||||
if (proto == PROTO_MODEM) {
|
if (proto == PROTO_MODEM || proto == PROTO_ANALOGMODEM) {
|
||||||
if (demand) goto wakeupmatch;
|
if (demand) goto wakeupmatch;
|
||||||
if (coso == COSO_LOCAL) goto callback;
|
if (coso == COSO_LOCAL) goto callback;
|
||||||
goto accept;
|
goto accept;
|
||||||
|
@ -1374,6 +1378,9 @@ accept:
|
||||||
case PROTO_V120_ASYNC:
|
case PROTO_V120_ASYNC:
|
||||||
(void) capiconn_accept(cp, 0, 9, 0, 0, 0, 0, 0);
|
(void) capiconn_accept(cp, 0, 9, 0, 0, 0, 0, 0);
|
||||||
break;
|
break;
|
||||||
|
case PROTO_ANALOGMODEM:
|
||||||
|
(void) capiconn_accept(cp, 7, 7, 7, 0, 0, 0, 0);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
conn_remember(cp, CONNTYPE_INCOMING);
|
conn_remember(cp, CONNTYPE_INCOMING);
|
||||||
(void) capiconn_listen(ctx, controller, 0, 0);
|
(void) capiconn_listen(ctx, controller, 0, 0);
|
||||||
|
@ -1580,6 +1587,16 @@ static capi_connection *setupconnection(char *num, int awaitingreject)
|
||||||
0, /* B3Config */
|
0, /* B3Config */
|
||||||
opt_channels ? AdditionalInfo : 0,
|
opt_channels ? AdditionalInfo : 0,
|
||||||
0);
|
0);
|
||||||
|
} else if (proto == PROTO_ANALOGMODEM) {
|
||||||
|
cp = capiconn_connect(ctx,
|
||||||
|
controller, /* contr */
|
||||||
|
4, /* cipvalue */
|
||||||
|
opt_channels ? 0 : number,
|
||||||
|
opt_channels ? 0 : opt_msn,
|
||||||
|
7, 7, 7,
|
||||||
|
0, 0, 0,
|
||||||
|
opt_channels ? AdditionalInfo : 0,
|
||||||
|
0);
|
||||||
} else {
|
} else {
|
||||||
fatal("capiplugin: unknown protocol \"%s\"", opt_proto);
|
fatal("capiplugin: unknown protocol \"%s\"", opt_proto);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue