2005-04-17 06:20:36 +08:00
|
|
|
$Id: INTERFACE.fax,v 1.2 2000/08/06 09:22:50 armin Exp $
|
|
|
|
|
|
|
|
|
|
|
|
Description of the fax-subinterface between linklevel and hardwarelevel of
|
|
|
|
isdn4linux.
|
|
|
|
|
|
|
|
The communication between linklevel (LL) and hardwarelevel (HL) for fax
|
|
|
|
is based on the struct T30_s (defined in isdnif.h).
|
|
|
|
This struct is allocated in the LL.
|
|
|
|
In order to use fax, the LL provides the pointer to this struct with the
|
|
|
|
command ISDN_CMD_SETL3 (parm.fax). This pointer expires in case of hangup
|
|
|
|
and when a new channel to a new connection is assigned.
|
|
|
|
|
|
|
|
|
|
|
|
Data handling:
|
|
|
|
In send-mode the HL-driver has to handle the <DLE> codes and the bit-order
|
|
|
|
conversion by itself.
|
|
|
|
In receive-mode the LL-driver takes care of the bit-order conversion
|
|
|
|
(specified by +FBOR)
|
|
|
|
|
|
|
|
Structure T30_s description:
|
|
|
|
|
|
|
|
This structure stores the values (set by AT-commands), the remote-
|
|
|
|
capability-values and the command-codes between LL and HL.
|
|
|
|
|
|
|
|
If the HL-driver receives ISDN_CMD_FAXCMD, all needed information
|
|
|
|
is in this struct set by the LL.
|
|
|
|
To signal information to the LL, the HL-driver has to set the
|
2006-10-04 04:57:56 +08:00
|
|
|
parameters and use ISDN_STAT_FAXIND.
|
2005-04-17 06:20:36 +08:00
|
|
|
(Please refer to INTERFACE)
|
|
|
|
|
|
|
|
Structure T30_s:
|
|
|
|
|
|
|
|
All members are 8-bit unsigned (__u8)
|
|
|
|
|
|
|
|
- resolution
|
|
|
|
- rate
|
|
|
|
- width
|
|
|
|
- length
|
|
|
|
- compression
|
|
|
|
- ecm
|
|
|
|
- binary
|
|
|
|
- scantime
|
|
|
|
- id[]
|
|
|
|
Local faxmachine's parameters, set by +FDIS, +FDCS, +FLID, ...
|
|
|
|
|
|
|
|
- r_resolution
|
|
|
|
- r_rate
|
|
|
|
- r_width
|
|
|
|
- r_length
|
|
|
|
- r_compression
|
|
|
|
- r_ecm
|
|
|
|
- r_binary
|
|
|
|
- r_scantime
|
|
|
|
- r_id[]
|
|
|
|
Remote faxmachine's parameters. To be set by HL-driver.
|
|
|
|
|
|
|
|
- phase
|
|
|
|
Defines the actual state of fax connection. Set by HL or LL
|
|
|
|
depending on progress and type of connection.
|
|
|
|
If the phase changes because of an AT command, the LL driver
|
|
|
|
changes this value. Otherwise the HL-driver takes care of it, but
|
|
|
|
only necessary on call establishment (from IDLE to PHASE_A).
|
|
|
|
(one of the constants ISDN_FAX_PHASE_[IDLE,A,B,C,D,E])
|
|
|
|
|
|
|
|
- direction
|
|
|
|
Defines outgoing/send or incoming/receive connection.
|
|
|
|
(ISDN_TTY_FAX_CONN_[IN,OUT])
|
|
|
|
|
|
|
|
- code
|
|
|
|
Commands from LL to HL; possible constants :
|
|
|
|
ISDN_TTY_FAX_DR signals +FDR command to HL
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_DT signals +FDT command to HL
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_ET signals +FET command to HL
|
|
|
|
|
|
|
|
|
|
|
|
Other than that the "code" is set with the hangup-code value at
|
|
|
|
the end of connection for the +FHNG message.
|
|
|
|
|
|
|
|
- r_code
|
|
|
|
Commands from HL to LL; possible constants :
|
|
|
|
ISDN_TTY_FAX_CFR output of +FCFR message.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_RID output of remote ID set in r_id[]
|
|
|
|
(+FCSI/+FTSI on send/receive)
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_DCS output of +FDCS and CONNECT message,
|
|
|
|
switching to phase C.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_ET signals end of data,
|
|
|
|
switching to phase D.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_FCON signals the established, outgoing connection,
|
|
|
|
switching to phase B.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_FCON_I signals the established, incoming connection,
|
|
|
|
switching to phase B.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_DIS output of +FDIS message and values.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_SENT signals that all data has been sent
|
|
|
|
and <DLE><ETX> is acknowledged,
|
|
|
|
OK message will be sent.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_PTS signals a msg-confirmation (page sent successful),
|
|
|
|
depending on fet value:
|
|
|
|
0: output OK message (more pages follow)
|
|
|
|
1: switching to phase B (next document)
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_TRAIN_OK output of +FDCS and OK message (for receive mode).
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_EOP signals end of data in receive mode,
|
|
|
|
switching to phase D.
|
|
|
|
|
|
|
|
ISDN_TTY_FAX_HNG output of the +FHNG and value set by code and
|
|
|
|
OK message, switching to phase E.
|
|
|
|
|
|
|
|
|
|
|
|
- badlin
|
|
|
|
Value of +FBADLIN
|
|
|
|
|
|
|
|
- badmul
|
|
|
|
Value of +FBADMUL
|
|
|
|
|
|
|
|
- bor
|
|
|
|
Value of +FBOR
|
|
|
|
|
|
|
|
- fet
|
|
|
|
Value of +FET command in send-mode.
|
|
|
|
Set by HL in receive-mode for +FET message.
|
|
|
|
|
|
|
|
- pollid[]
|
|
|
|
ID-string, set by +FCIG
|
|
|
|
|
|
|
|
- cq
|
|
|
|
Value of +FCQ
|
|
|
|
|
|
|
|
- cr
|
|
|
|
Value of +FCR
|
|
|
|
|
|
|
|
- ctcrty
|
|
|
|
Value of +FCTCRTY
|
|
|
|
|
|
|
|
- minsp
|
|
|
|
Value of +FMINSP
|
|
|
|
|
|
|
|
- phcto
|
|
|
|
Value of +FPHCTO
|
|
|
|
|
|
|
|
- rel
|
|
|
|
Value of +FREL
|
|
|
|
|
|
|
|
- nbc
|
|
|
|
Value of +FNBC (0,1)
|
|
|
|
(+FNBC is not a known class 2 fax command, I added this to change the
|
|
|
|
automatic "best capabilities" connection in the eicon HL-driver)
|
|
|
|
|
|
|
|
|
|
|
|
Armin
|
|
|
|
mac@melware.de
|
|
|
|
|