Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | |
670e9f34 | 29 | parameters and use ISDN_STAT_FAXIND. |
1da177e4 LT |
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 |