1 /*
2  * SpanDSP - a series of DSP components for telephony
3  *
4  * t30_fcf.h - ITU T.30 fax control field definitions
5  *
6  * Written by Steve Underwood <steveu@coppice.org>
7  *
8  * Copyright (C) 2003 Steve Underwood
9  *
10  * All rights reserved.
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU Lesser General Public License version 2.1,
14  * as published by the Free Software Foundation.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with this program; if not, write to the Free Software
23  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24  */
25 
26 /*! \file */
27 
28 #if !defined(_SPANDSP_T30_FCF_H_)
29 #define _SPANDSP_T30_FCF_H_
30 
31 enum
32 {
33     /*! Initial identification messages */
34     /*! From the called to the calling terminal. */
35     T30_DIS = 0x80,         /*! [0000 0001] Digital identification signal */
36     T30_CSI = 0x40,         /*! [0000 0010] Called subscriber identification */
37     T30_NSF = 0x20,         /*! [0000 0100] Non-standard facilities */
38 
39     /*! Commands to send */
40     /*! From a calling terminal wishing to be a receiver, to a called terminal
41         which is capable of transmitting. */
42     T30_DTC = 0x81,         /*! [1000 0001] Digital transmit command */
43     T30_CIG = 0x41,         /*! [1000 0010] Calling subscriber identification */
44     T30_NSC = 0x21,         /*! [1000 0100] Non-standard facilities command */
45     T30_PWD = 0xC1,         /*! [1000 0011] Password */
46     T30_SEP = 0xA1,         /*! [1000 0101] Selective polling */
47     T30_PSA = 0x61,         /*! [1000 0110] Polled subaddress */
48     T30_CIA = 0xE1,         /*! [1000 0111] Calling subscriber internet address */
49     T30_ISP = 0x11,         /*! [1000 1000] Internet selective polling address */
50 
51     /*! Commands to receive */
52     /*! From a calling terminal wishing to be a transmitter, to a called terminal
53         which is capable of receiving. */
54     T30_DCS = 0x82,         /*! [X100 0001] Digital command signal */
55     T30_TSI = 0x42,         /*! [X100 0010] Transmitting subscriber information */
56     T30_NSS = 0x22,         /*! [X100 0100] Non-standard facilities set-up */
57     T30_SUB = 0xC2,         /*! [X100 0011] Sub-address */
58     T30_SID = 0xA2,         /*! [X100 0101] Sender identification */
59     /*! T30_TCF - Training check is a burst of 1.5s of zeros sent using the image modem */
60     T30_CTC = 0x12,         /*! [X100 1000] Continue to correct */
61     T30_TSA = 0x62,         /*! [X100 0110] Transmitting subscriber internet address */
62     T30_IRA = 0xE2,         /*! [X100 0111] Internet routing address */
63 
64     /*! Pre-message response signals */
65     /*! From the receiver to the transmitter. */
66     T30_CFR = 0x84,         /*! [X010 0001] Confirmation to receive */
67     T30_FTT = 0x44,         /*! [X010 0010] Failure to train */
68     T30_CTR = 0xC4,         /*! [X010 0011] Response for continue to correct */
69     T30_CSA = 0x24,         /*! [X010 0100] Called subscriber internet address */
70 
71     /*! Post-message commands */
72     T30_EOM = 0x8E,         /*! [X111 0001] End of message */
73     T30_MPS = 0x4E,         /*! [X111 0010] Multipage signal */
74     T30_EOP = 0x2E,         /*! [X111 0100] End of procedure */
75     T30_PRI_EOM = 0x9E,     /*! [X111 1001] Procedure interrupt - end of procedure */
76     T30_PRI_MPS = 0x5E,     /*! [X111 1010] Procedure interrupt - multipage signal */
77     T30_PRI_EOP = 0x3E,     /*! [X111 1100] Procedure interrupt - end of procedure */
78     T30_EOS = 0x1E,         /*! [X111 1000] End of selection */
79     T30_PPS = 0xBE,         /*! [X111 1101] Partial page signal */
80     T30_EOR = 0xCE,         /*! [X111 0011] End of retransmission */
81     T30_RR = 0x6E,          /*! [X111 0110] Receiver ready */
82 
83     /*! Post-message responses */
84     T30_MCF = 0x8C,         /*! [X011 0001] Message confirmation */
85     T30_RTP = 0xCC,         /*! [X011 0011] Retrain positive */
86     T30_RTN = 0x4C,         /*! [X011 0010] Retrain negative */
87     T30_PIP = 0xAC,         /*! [X011 0101] Procedure interrupt positive */
88     T30_PIN = 0x2C,         /*! [X011 0100] Procedure interrupt negative */
89     T30_PPR = 0xBC,         /*! [X011 1101] Partial page request */
90     T30_RNR = 0xEC,         /*! [X011 0111] Receive not ready */
91     T30_ERR = 0x1C,         /*! [X011 1000] Response for end of retransmission */
92     T30_FDM = 0xFC,         /*! [X011 1111] File diagnostics message */
93 
94     /*! Other line control signals */
95     T30_DCN = 0xFA,         /*! [X101 1111] Disconnect */
96     T30_CRP = 0x1A,         /*! [X101 1000] Command repeat */
97     T30_FNV = 0xCA,         /*! [X101 0011] Field not valid */
98     T30_TNR = 0xEA,         /*! [X101 0111] Transmitter not ready */
99     T30_TR = 0x6A,          /*! [X101 0110] Transmitter ready */
100     T30_TK = 0x4B,          /*! [1101 0010] Transmitter keys */
101     T30_RK = 0x4A,          /*! [0101 0010] Receiver keys */
102     T30_PSS = 0x1F,         /*! [1111 1000] Present signature signal (used only as FCF2) */
103     T30_DES = 0xA0,         /*! [0000 0101] Digital extended signal */
104     T30_DEC = 0x93,         /*! [1100 1001] Digital extended command */
105     T30_DER = 0x53,         /*! [1100 1010] Digital extended request */
106     T30_DTR = 0x11,         /*! [1000 1000] Digital turnaround request (conflicts with ISP) */
107     T30_DNK = 0x9A,         /*! [X101 1001] Digital not acknowledge */
108     T30_PID = 0x6C,         /*! [X011 0110] Procedure interrupt disconnect */
109     T30_SPI = 0x10,         /*! [0000 1000] Security page indicator */
110     T30_SPT = 0x80,         /*! [0000 0001] Security page type */
111 
112     /*! Something only use as a secondary value in error correcting mode */
113     T30_NULL = 0x00,        /*! [0000 0000] Nothing to say */
114 
115     /*! Information frame types used for error correction mode, in T.4 */
116     T4_FCD = 0x06,          /*! [0110 0000] Facsimile coded data */
117     T4_CCD = 0x46,          /*! [0110 0010] Character coded data */
118     T4_RCP = 0x86           /*! [0110 0001] Return to control for partial page */
119 };
120 
121 #endif
122 /*- End of file ------------------------------------------------------------*/
123