| 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  | 
| Paolo Ornati | 670e9f3 | 2006-10-03 22:57:56 +0200 | [diff] [blame] | 29 |   parameters and use ISDN_STAT_FAXIND. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |  |