| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  |