| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | $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  | 
					
						
							| 
									
										
										
										
											2006-10-03 22:57:56 +02:00
										 |  |  |   parameters and use ISDN_STAT_FAXIND. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |   (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 | 
					
						
							|  |  |  | 
 |