| $Id: INTERFACE.fax,v 1.2 2000/08/06 09:22:50 armin Exp $ |
| |
| |
| Description of the fax-subinterface between linklevel and hardwarelevel of |
| isdn4linux. |
| |
| The communication between linklevel (LL) and hardwarelevel (HL) for fax |
| is based on the struct T30_s (defined in isdnif.h). |
| This struct is allocated in the LL. |
| In order to use fax, the LL provides the pointer to this struct with the |
| command ISDN_CMD_SETL3 (parm.fax). This pointer expires in case of hangup |
| and when a new channel to a new connection is assigned. |
| |
| |
| Data handling: |
| In send-mode the HL-driver has to handle the <DLE> codes and the bit-order |
| conversion by itself. |
| In receive-mode the LL-driver takes care of the bit-order conversion |
| (specified by +FBOR) |
| |
| Structure T30_s description: |
| |
| This structure stores the values (set by AT-commands), the remote- |
| capability-values and the command-codes between LL and HL. |
| |
| If the HL-driver receives ISDN_CMD_FAXCMD, all needed information |
| is in this struct set by the LL. |
| To signal information to the LL, the HL-driver has to set the |
| parameters and use ISDN_STAT_FAXIND. |
| (Please refer to INTERFACE) |
| |
| Structure T30_s: |
| |
| All members are 8-bit unsigned (__u8) |
| |
| - resolution |
| - rate |
| - width |
| - length |
| - compression |
| - ecm |
| - binary |
| - scantime |
| - id[] |
| Local faxmachine's parameters, set by +FDIS, +FDCS, +FLID, ... |
| |
| - r_resolution |
| - r_rate |
| - r_width |
| - r_length |
| - r_compression |
| - r_ecm |
| - r_binary |
| - r_scantime |
| - r_id[] |
| Remote faxmachine's parameters. To be set by HL-driver. |
| |
| - phase |
| Defines the actual state of fax connection. Set by HL or LL |
| depending on progress and type of connection. |
| If the phase changes because of an AT command, the LL driver |
| changes this value. Otherwise the HL-driver takes care of it, but |
| only necessary on call establishment (from IDLE to PHASE_A). |
| (one of the constants ISDN_FAX_PHASE_[IDLE,A,B,C,D,E]) |
| |
| - direction |
| Defines outgoing/send or incoming/receive connection. |
| (ISDN_TTY_FAX_CONN_[IN,OUT]) |
| |
| - code |
| Commands from LL to HL; possible constants : |
| ISDN_TTY_FAX_DR signals +FDR command to HL |
| |
| ISDN_TTY_FAX_DT signals +FDT command to HL |
| |
| ISDN_TTY_FAX_ET signals +FET command to HL |
| |
| |
| Other than that the "code" is set with the hangup-code value at |
| the end of connection for the +FHNG message. |
| |
| - r_code |
| Commands from HL to LL; possible constants : |
| ISDN_TTY_FAX_CFR output of +FCFR message. |
| |
| ISDN_TTY_FAX_RID output of remote ID set in r_id[] |
| (+FCSI/+FTSI on send/receive) |
| |
| ISDN_TTY_FAX_DCS output of +FDCS and CONNECT message, |
| switching to phase C. |
| |
| ISDN_TTY_FAX_ET signals end of data, |
| switching to phase D. |
| |
| ISDN_TTY_FAX_FCON signals the established, outgoing connection, |
| switching to phase B. |
| |
| ISDN_TTY_FAX_FCON_I signals the established, incoming connection, |
| switching to phase B. |
| |
| ISDN_TTY_FAX_DIS output of +FDIS message and values. |
| |
| ISDN_TTY_FAX_SENT signals that all data has been sent |
| and <DLE><ETX> is acknowledged, |
| OK message will be sent. |
| |
| ISDN_TTY_FAX_PTS signals a msg-confirmation (page sent successful), |
| depending on fet value: |
| 0: output OK message (more pages follow) |
| 1: switching to phase B (next document) |
| |
| ISDN_TTY_FAX_TRAIN_OK output of +FDCS and OK message (for receive mode). |
| |
| ISDN_TTY_FAX_EOP signals end of data in receive mode, |
| switching to phase D. |
| |
| ISDN_TTY_FAX_HNG output of the +FHNG and value set by code and |
| OK message, switching to phase E. |
| |
| |
| - badlin |
| Value of +FBADLIN |
| |
| - badmul |
| Value of +FBADMUL |
| |
| - bor |
| Value of +FBOR |
| |
| - fet |
| Value of +FET command in send-mode. |
| Set by HL in receive-mode for +FET message. |
| |
| - pollid[] |
| ID-string, set by +FCIG |
| |
| - cq |
| Value of +FCQ |
| |
| - cr |
| Value of +FCR |
| |
| - ctcrty |
| Value of +FCTCRTY |
| |
| - minsp |
| Value of +FMINSP |
| |
| - phcto |
| Value of +FPHCTO |
| |
| - rel |
| Value of +FREL |
| |
| - nbc |
| Value of +FNBC (0,1) |
| (+FNBC is not a known class 2 fax command, I added this to change the |
| automatic "best capabilities" connection in the eicon HL-driver) |
| |
| |
| Armin |
| mac@melware.de |
| |