1$Id: INTERFACE.fax,v 1.2 2000/08/06 09:22:50 armin Exp $ 2 3 4Description 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 15Data 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 21Structure 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 parameters and use ISDN_STAT_FAXIND. 30 (Please refer to INTERFACE) 31 32Structure 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 161Armin 162mac@melware.de 163 164