$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

