Linux-2.6.12-rc2
[linux-2.6.git] / Documentation / isdn / INTERFACE.fax
1 $Id: INTERFACE.fax,v 1.2 2000/08/06 09:22:50 armin Exp $
2
3
4 Description of the fax-subinterface between linklevel and hardwarelevel of 
5   isdn4linux. 
6
7   The communication between linklevel (LL) and hardwarelevel (HL) for fax
8   is based on the struct T30_s (defined in isdnif.h).
9   This struct is allocated in the LL.  
10   In order to use fax, the LL provides the pointer to this struct with the 
11   command ISDN_CMD_SETL3 (parm.fax). This pointer expires in case of hangup 
12   and when a new channel to a new connection is assigned. 
13
14
15 Data handling:
16   In send-mode the HL-driver has to handle the <DLE> codes and the bit-order 
17   conversion by itself. 
18   In receive-mode the LL-driver takes care of the bit-order conversion
19   (specified by +FBOR)
20
21 Structure T30_s description:
22
23   This structure stores the values (set by AT-commands), the remote-
24   capability-values and the command-codes between LL and HL.
25
26   If the HL-driver receives ISDN_CMD_FAXCMD, all needed information
27   is in this struct set by the LL.
28   To signal information to the LL, the HL-driver has to set the 
29   the parameters and use ISDN_STAT_FAXIND.
30   (Please refer to INTERFACE)
31
32 Structure T30_s:
33
34   All members are 8-bit unsigned (__u8)
35
36   -  resolution     
37   -  rate
38   -  width
39   -  length
40   -  compression
41   -  ecm
42   -  binary
43   -  scantime
44   -  id[]
45   Local faxmachine's parameters, set by +FDIS, +FDCS, +FLID, ...
46
47   -  r_resolution
48   -  r_rate
49   -  r_width
50   -  r_length
51   -  r_compression
52   -  r_ecm
53   -  r_binary
54   -  r_scantime
55   -  r_id[]
56   Remote faxmachine's parameters. To be set by HL-driver.
57
58   -  phase      
59   Defines the actual state of fax connection. Set by HL or LL
60   depending on progress and type of connection.
61   If the phase changes because of an AT command, the LL driver
62   changes this value. Otherwise the HL-driver takes care of it, but
63   only necessary on call establishment (from IDLE to PHASE_A).
64   (one of the constants ISDN_FAX_PHASE_[IDLE,A,B,C,D,E])
65
66   -  direction
67   Defines outgoing/send or incoming/receive connection.
68   (ISDN_TTY_FAX_CONN_[IN,OUT])
69
70   -  code
71   Commands from LL to HL; possible constants : 
72       ISDN_TTY_FAX_DR        signals +FDR command to HL
73
74       ISDN_TTY_FAX_DT        signals +FDT command to HL 
75
76       ISDN_TTY_FAX_ET        signals +FET command to HL
77
78
79   Other than that the "code" is set with the hangup-code value at
80   the end of connection for the +FHNG message.
81         
82   -  r_code 
83   Commands from HL to LL; possible constants :
84       ISDN_TTY_FAX_CFR       output of +FCFR message. 
85
86       ISDN_TTY_FAX_RID       output of remote ID set in r_id[]
87                              (+FCSI/+FTSI on send/receive)
88
89       ISDN_TTY_FAX_DCS       output of +FDCS and CONNECT message,
90                              switching to phase C.
91
92       ISDN_TTY_FAX_ET        signals end of data,
93                              switching to phase D.
94
95       ISDN_TTY_FAX_FCON      signals the established, outgoing connection,
96                              switching to phase B.
97
98       ISDN_TTY_FAX_FCON_I    signals the established, incoming connection,
99                              switching to phase B.
100
101       ISDN_TTY_FAX_DIS       output of +FDIS message and values.
102
103       ISDN_TTY_FAX_SENT      signals that all data has been sent 
104                              and <DLE><ETX> is acknowledged,
105                              OK message will be sent.
106
107       ISDN_TTY_FAX_PTS       signals a msg-confirmation (page sent successful),
108                              depending on fet value:
109                              0: output OK message (more pages follow)
110                              1: switching to phase B (next document)
111
112       ISDN_TTY_FAX_TRAIN_OK  output of +FDCS and OK message (for receive mode).
113
114       ISDN_TTY_FAX_EOP       signals end of data in receive mode,
115                              switching to phase D.
116
117       ISDN_TTY_FAX_HNG       output of the +FHNG and value set by code and
118                              OK message, switching to phase E.
119
120
121   -  badlin
122   Value of +FBADLIN  
123
124   -  badmul
125   Value of +FBADMUL
126
127   -  bor
128   Value of +FBOR
129
130   -  fet
131   Value of +FET command in send-mode.
132   Set by HL in receive-mode for +FET message.
133
134   -  pollid[]  
135   ID-string, set by +FCIG
136
137   -  cq
138   Value of +FCQ
139
140   -  cr
141   Value of +FCR
142
143   -  ctcrty
144   Value of +FCTCRTY
145
146   -  minsp
147   Value of +FMINSP
148
149   -  phcto
150   Value of +FPHCTO
151
152   -  rel
153   Value of +FREL
154
155   -  nbc
156   Value of +FNBC (0,1)
157   (+FNBC is not a known class 2 fax command, I added this to change the
158    automatic "best capabilities" connection in the eicon HL-driver)
159
160   
161 Armin
162 mac@melware.de
163