add experimental support for Data over Voice (DoV) outgoing calls.
based on patches received from Guy Ellis (guy@traverse.com.au), Chris Collins (xfire@xware.cx) and Phillip Musumeci (phillip@cs.jcu.edu.au).
This commit is contained in:
parent
c3be815711
commit
c7e9e0760d
@ -6,7 +6,7 @@ $FreeBSD$
|
||||
isdn4bsd
|
||||
========
|
||||
|
||||
Version 1.02.00 / March 2002
|
||||
Version 1.03.00 / August 2002
|
||||
|
||||
written by:
|
||||
|
||||
|
@ -1,8 +1,16 @@
|
||||
$FreeBSD$
|
||||
|
||||
ReleaseNotes for isdn4bsd last edit-date: [Tue Mar 26 15:11:33 2002]
|
||||
ReleaseNotes for isdn4bsd last edit-date: [Sun Aug 11 17:39:06 2002]
|
||||
================================================================================
|
||||
|
||||
release 1.03
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- add support for Data over Voice (DoV) outgoing calls, see entry keywork
|
||||
bcap in isdnd.rc(5).
|
||||
based on patches received from Guy Ellis (guy@traverse.com.au),
|
||||
Chris Collins (xfire@xware.cx) and Phillip Musumeci (phillip@cs.jcu.edu.au).
|
||||
|
||||
release 1.02
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@ -17,6 +17,7 @@ Thanks a lot for postcards from:
|
||||
Darmstadt
|
||||
Delft
|
||||
Dresden
|
||||
Eggstaett am Hartsee
|
||||
Flekkefjord
|
||||
Freiburg
|
||||
Habichtswald
|
||||
@ -243,6 +244,7 @@ The following people contributed in one or the other way to isdn4bsd:
|
||||
Aurelien Bargy
|
||||
Bart van Leeuwen
|
||||
Caspar Schlegel
|
||||
Chris Collins
|
||||
Christian Wolf
|
||||
Christoph Kukulies
|
||||
Daniel Rock
|
||||
@ -251,6 +253,7 @@ The following people contributed in one or the other way to isdn4bsd:
|
||||
Doobee R. Tzeck
|
||||
Dominik Brettnacher
|
||||
Gabor Dolla
|
||||
Guy Ellis
|
||||
H. Eckert
|
||||
Hans Huebner
|
||||
Harald Hanche-Olsen
|
||||
@ -273,6 +276,7 @@ The following people contributed in one or the other way to isdn4bsd:
|
||||
Nils Ulltveit-Moe
|
||||
Paul Herman
|
||||
Paul Sijben
|
||||
Phillip Musumeci
|
||||
Philippe Guezou
|
||||
Rob Pickering
|
||||
Stefan Esser
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 14:44:15 2002]
|
||||
* last edit-date: [Sun Aug 11 12:39:58 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
* version and release number for isdn4bsd package
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define VERSION 1 /* version number */
|
||||
#define REL 2 /* release number */
|
||||
#define REL 3 /* release number */
|
||||
#define STEP 0 /* release step */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
@ -198,6 +198,12 @@
|
||||
#define BPROT_NONE 0 /* no protocol at all, raw data */
|
||||
#define BPROT_RHDLC 1 /* raw HDLC: flag, data, crc, flag */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* special bearer capability settings (i.e. Data over Voice)
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define BCAP_NONE 0 /* no special bearer capability */
|
||||
#define BCAP_DOV 1 /* Data over Voice */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* causes data type
|
||||
*---------------------------------------------------------------------------*/
|
||||
@ -333,6 +339,7 @@ typedef struct {
|
||||
#define CHAN_ANY (-1) /* outgoing, not possible for incoming */
|
||||
#define CHAN_NO (-2) /* call waiting (CW) for incoming */
|
||||
int bprot; /* b channel protocot, see BPROT_XXX */
|
||||
int bcap; /* special bearer capability, see BCAP_XXX */
|
||||
char dst_telno[TELNO_MAX]; /* destination telno */
|
||||
char dst_subaddr[SUBADDR_MAX]; /* dest subaddr */
|
||||
char src_telno[TELNO_MAX]; /* source telno */
|
||||
@ -562,6 +569,7 @@ typedef struct {
|
||||
int channel; /* channel to use */
|
||||
int txdelay; /* tx delay after connect */
|
||||
int bprot; /* b channel protocol */
|
||||
int bcap; /* special bearer capability */
|
||||
int driver; /* driver to route b channel data to */
|
||||
int driver_unit; /* unit number for above driver */
|
||||
msg_shorthold_t shorthold_data; /* the shorthold data */
|
||||
@ -591,6 +599,7 @@ typedef struct {
|
||||
/* the following are only used for SETUP_RESP_ACCEPT !! */
|
||||
int txdelay; /* tx delay after connect */
|
||||
int bprot; /* B chan protocol */
|
||||
int bcap; /* special bearer capability */
|
||||
int driver; /* driver to route b channel data to */
|
||||
int driver_unit; /* unit number for above driver */
|
||||
int max_idle_time; /* max time without activity on b ch */
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 14:44:15 2002]
|
||||
* last edit-date: [Sun Aug 11 12:39:58 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
* version and release number for isdn4bsd package
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define VERSION 1 /* version number */
|
||||
#define REL 2 /* release number */
|
||||
#define REL 3 /* release number */
|
||||
#define STEP 0 /* release step */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
@ -198,6 +198,12 @@
|
||||
#define BPROT_NONE 0 /* no protocol at all, raw data */
|
||||
#define BPROT_RHDLC 1 /* raw HDLC: flag, data, crc, flag */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* special bearer capability settings (i.e. Data over Voice)
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define BCAP_NONE 0 /* no special bearer capability */
|
||||
#define BCAP_DOV 1 /* Data over Voice */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* causes data type
|
||||
*---------------------------------------------------------------------------*/
|
||||
@ -333,6 +339,7 @@ typedef struct {
|
||||
#define CHAN_ANY (-1) /* outgoing, not possible for incoming */
|
||||
#define CHAN_NO (-2) /* call waiting (CW) for incoming */
|
||||
int bprot; /* b channel protocot, see BPROT_XXX */
|
||||
int bcap; /* special bearer capability, see BCAP_XXX */
|
||||
char dst_telno[TELNO_MAX]; /* destination telno */
|
||||
char dst_subaddr[SUBADDR_MAX]; /* dest subaddr */
|
||||
char src_telno[TELNO_MAX]; /* source telno */
|
||||
@ -562,6 +569,7 @@ typedef struct {
|
||||
int channel; /* channel to use */
|
||||
int txdelay; /* tx delay after connect */
|
||||
int bprot; /* b channel protocol */
|
||||
int bcap; /* special bearer capability */
|
||||
int driver; /* driver to route b channel data to */
|
||||
int driver_unit; /* unit number for above driver */
|
||||
msg_shorthold_t shorthold_data; /* the shorthold data */
|
||||
@ -591,6 +599,7 @@ typedef struct {
|
||||
/* the following are only used for SETUP_RESP_ACCEPT !! */
|
||||
int txdelay; /* tx delay after connect */
|
||||
int bprot; /* B chan protocol */
|
||||
int bcap; /* special bearer capability */
|
||||
int driver; /* driver to route b channel data to */
|
||||
int driver_unit; /* unit number for above driver */
|
||||
int max_idle_time; /* max time without activity on b ch */
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Sat Mar 9 15:57:44 2002]
|
||||
* last edit-date: [Sun Aug 11 12:52:41 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -138,6 +138,8 @@ typedef struct
|
||||
|
||||
int bprot; /* B channel protocol BPROT_XXX */
|
||||
|
||||
int bcap; /* special bearer capabilities BCAP_XXX */
|
||||
|
||||
int driver; /* driver to use for B channel */
|
||||
int driver_unit; /* unit for above driver number */
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 15:03:59 2002]
|
||||
* last edit-date: [Sun Aug 11 12:48:41 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -480,9 +480,19 @@ i4b_l3_tx_setup(call_desc_t *cd)
|
||||
break;
|
||||
|
||||
case BPROT_RHDLC: /* raw HDLC */
|
||||
*ptr++ = IEI_BEARERCAP_LEN;
|
||||
*ptr++ = IT_CAP_UNR_DIG_INFO;
|
||||
*ptr++ = IT_RATE_64K;
|
||||
if (cd->bcap == BCAP_DOV) /* Data over Voice */
|
||||
{
|
||||
*ptr++ = IEI_BEARERCAP_LEN+1;
|
||||
*ptr++ = IT_CAP_SPEECH;
|
||||
*ptr++ = IT_RATE_64K;
|
||||
*ptr++ = IT_UL1_G711A;
|
||||
}
|
||||
else
|
||||
{
|
||||
*ptr++ = IEI_BEARERCAP_LEN;
|
||||
*ptr++ = IT_CAP_UNR_DIG_INFO;
|
||||
*ptr++ = IT_RATE_64K;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Sun Mar 17 09:54:22 2002]
|
||||
* last edit-date: [Sun Aug 11 12:42:46 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -264,6 +264,7 @@ i4bioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
|
||||
|
||||
cd->controller = mcr->controller; /* fill cd */
|
||||
cd->bprot = mcr->bprot;
|
||||
cd->bcap = mcr->bcap;
|
||||
cd->driver = mcr->driver;
|
||||
cd->driver_unit = mcr->driver_unit;
|
||||
cd->cr = get_rand_cr(ctrl_desc[cd->controller].unit);
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Sat Mar 9 19:46:26 2002]
|
||||
* last edit-date: [Sun Aug 11 12:43:14 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -367,6 +367,7 @@ i4b_l4_connect_ind(call_desc_t *cd)
|
||||
mp->controller = cd->controller;
|
||||
mp->channel = cd->channelid;
|
||||
mp->bprot = cd->bprot;
|
||||
mp->bcap = cd->bcap;
|
||||
|
||||
cd->dir = DIR_INCOMING;
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Sat Mar 9 19:48:32 2002]
|
||||
* last edit-date: [Sun Aug 11 12:42:01 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -368,6 +368,7 @@ i4b_print_cdp(call_desc_t *cdp)
|
||||
printf(" crflag = %d\n", cdp->crflag);
|
||||
printf(" channelid = %d\n", cdp->channelid);
|
||||
printf(" bprot = %d\n", cdp->bprot);
|
||||
printf(" bcap = %d\n", cdp->bcap);
|
||||
printf(" driver = %d\n", cdp->driver);
|
||||
printf(" driver_unit = %d\n", cdp->driver_unit);
|
||||
printf(" call_state = %d\n", cdp->call_state);
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 14:36:20 2002]
|
||||
* last edit-date: [Sun Aug 11 12:31:44 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -288,6 +288,8 @@ typedef struct cfg_entry {
|
||||
|
||||
int b1protocol; /* hdlc / raw */
|
||||
|
||||
int bcap; /* special bearer capability (DoV) */
|
||||
|
||||
int idle_time_in; /* max idle time incoming calls */
|
||||
int idle_time_out; /* max idle time outgoing calls */
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.\" last edit-date: [Tue Mar 26 14:35:02 2002]
|
||||
.\" last edit-date: [Sun Aug 11 13:03:49 2002]
|
||||
.\"
|
||||
.Dd March 26, 2002
|
||||
.Dt ISDND.RC 5
|
||||
@ -348,6 +348,25 @@ HDLC framing.
|
||||
.It Ar raw
|
||||
No framing at all (used for telephony).
|
||||
.El
|
||||
.It Li bcap
|
||||
Use a special bearer capability for this connection.
|
||||
The keyword is optional.
|
||||
.Pp
|
||||
Any other value than
|
||||
.Em dov
|
||||
sets the bearer capability as configured by the
|
||||
.Em b1protocol
|
||||
keyword (see above).
|
||||
The currently configurable values are:
|
||||
.Pp
|
||||
.Bl -tag -width Ds -compact
|
||||
.It Ar dov
|
||||
This connection is a
|
||||
.Em Dov (Data over Voice)
|
||||
connection. The b1protocol keyword must be set to
|
||||
.Em hdlc .
|
||||
This feature is experimental and does work on outgoing calls only.
|
||||
.El
|
||||
.It Li budget-calloutperiod
|
||||
is used to specify a time period in seconds.
|
||||
Within this period, the number of calls
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 14:37:25 2002]
|
||||
* last edit-date: [Sun Aug 11 12:37:16 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -1201,6 +1201,7 @@ sendm_connect_req(cfg_entry_t *cep)
|
||||
mcr.txdelay = cep->isdntxdelout;
|
||||
|
||||
mcr.bprot = cep->b1protocol;
|
||||
mcr.bcap = cep->bcap;
|
||||
|
||||
mcr.driver = cep->usrdevicename;
|
||||
mcr.driver_unit = cep->usrdeviceunit;
|
||||
@ -1271,6 +1272,7 @@ sendm_connect_resp(cfg_entry_t *cep, int cdid, int response, cause_t cause)
|
||||
mcr.txdelay = cep->isdntxdelin;
|
||||
|
||||
mcr.bprot = cep->b1protocol;
|
||||
mcr.bcap = cep->bcap;
|
||||
|
||||
mcr.driver = cep->usrdevicename;
|
||||
mcr.driver_unit = cep->usrdeviceunit;
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 14:37:38 2002]
|
||||
* last edit-date: [Sun Aug 11 12:30:49 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -411,6 +411,13 @@ cfg_setval(int keyword)
|
||||
}
|
||||
break;
|
||||
|
||||
case BCAP:
|
||||
DBGL(DL_RCCF, (log(LL_DBG, "entry %d: bcap = %s", entrycount, yylval.str)));
|
||||
cfg_entry_tab[entrycount].bcap = BCAP_NONE;
|
||||
if(!(strcmp(yylval.str, "dov")))
|
||||
cfg_entry_tab[entrycount].bcap = BCAP_DOV;
|
||||
break;
|
||||
|
||||
case BEEPCONNECT:
|
||||
do_bell = yylval.booln;
|
||||
DBGL(DL_RCCF, (log(LL_DBG, "system: beepconnect = %d", yylval.booln)));
|
||||
|
@ -32,7 +32,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 14:37:50 2002]
|
||||
* last edit-date: [Sun Aug 11 12:27:28 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -79,6 +79,7 @@ int controllercount = -1;
|
||||
%token ANSWERPROG
|
||||
%token B1PROTOCOL
|
||||
%token BEEPCONNECT
|
||||
%token BCAP
|
||||
%token BUDGETCALLOUTPERIOD
|
||||
%token BUDGETCALLOUTNCALLS
|
||||
%token BUDGETCALLOUTSFILE
|
||||
@ -426,6 +427,7 @@ filekeyword: BUDGETCALLBACKSFILE { $$ = BUDGETCALLBACKSFILE; }
|
||||
|
||||
strkeyword: ANSWERPROG { $$ = ANSWERPROG; }
|
||||
| B1PROTOCOL { $$ = B1PROTOCOL; }
|
||||
| BCAP { $$ = BCAP; }
|
||||
| CONNECTPROG { $$ = CONNECTPROG; }
|
||||
| DIALOUTTYPE { $$ = DIALOUTTYPE; }
|
||||
| DIRECTION { $$ = DIRECTION; }
|
||||
|
@ -32,7 +32,7 @@
|
||||
*
|
||||
* $FreeBSD$
|
||||
*
|
||||
* last edit-date: [Tue Mar 26 14:37:59 2002]
|
||||
* last edit-date: [Sun Aug 11 12:27:50 2002]
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -92,6 +92,7 @@ aliasing { return ALIASING; }
|
||||
aliasfile { return ALIASFNAME; }
|
||||
answerprog { return ANSWERPROG; }
|
||||
b1protocol { return B1PROTOCOL; }
|
||||
bcap { return BCAP; }
|
||||
beepconnect { return BEEPCONNECT; }
|
||||
budget-callbackperiod { return BUDGETCALLBACKPERIOD; }
|
||||
budget-callbackncalls { return BUDGETCALLBACKNCALLS; }
|
||||
|
Loading…
Reference in New Issue
Block a user