1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
|
Network Working Group H. Alvestrand
Request for Comments: 2159 UNINETT
Category: Standards Track January 1998
A MIME Body Part for FAX
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1998). All Rights Reserved.
1. Introduction
This document contains the definitions, originally contained in RFC
1494, on how to carry CCITT G3Fax in MIME, and how to translate it to
its X.400 representation.
NOTE: At the moment, this format does not seem appropriate for a
"general purpose image format for the Internet", if such a beast can
exist. It exists only to carry information that is already in G3 Fax
format, and may be usefully converted to other formats when used in
specific contexts.
2. The image/g3fax content-type
This content-type is defined to carry G3 Facsimile byte streams.
In general, a G3Fax image contains 3 pieces of information:
(1) A set of flags indicating the particular coding scheme.
CCITT Recommendation T.30 defines how the flags are
transmitted over telephones. In this medium, the flags are
carried as parameters in the MIME content-type header
field.
(2) A structure that divides the bits into pages. CCITT
recommendation T.4 describes a "return to command mode"
string; this is used here to indicate page breaks.
Alvestrand Standards Track [Page 1]
^L
RFC 2159 MIME Body Part for FAX January 1998
(3) For each page, a sequence of bits that form the encoding of
the image. CCITT recommendation T.4 defines the bit image
format. This is used without change. The highest bit of
the first byte is the first bit of the T.4 bitstream.
2.1. G3Fax Parameters
The following parameters are defined:
(1) page-length - possible values: A4, B4 and Unlimited
(2) page-width - possible values: A3, A4, B4
(3) encoding - possible values: 1-dimensional, 2-dimensional,
Uncompressed
(4) resolution - possible values: Fine, Coarse
(5) DCS - a bit string, represented in Base64.
(6) pages - an integer, giving the number of pages in the
document
If nothing is specified, the default parameter settings are:
page-length=A4
page-width=A4
encoding=1-dimensional
resolution=Coarse
Alvestrand Standards Track [Page 2]
^L
RFC 2159 MIME Body Part for FAX January 1998
It is possible (but misleading) to view the representation of these
values as single-bit flags. They correspond to the following bits of
the T.30 control string and X.400 G3FacsimileParameters:
Parameter T.30 bit X.400 bit
page-length=A4 no bit set
page-length=B4 19 21
page-length=Unlimited 20 20
page-width=A4 no bit set
page-width=A3 18 22
page-width=B4 17 23
encoding=1-dimensional no bit set
encoding=2-dimensional 16 8
encoding=Uncompressed 26 30
resolution=Coarse no bit set
resolution=Fine 15 9
The reason for the different bit numbers is that X.400 counts bits in
an octet from the MSB down to the LSB, while T.30 uses the opposite
numbering scheme.
If any bit but these are set in the Device Control String, the DCS
parameter should be supplied.
2.2. Content Encoding
X.400 defines the g3-facsimile data stream as a SEQUENCE of BIT
STRINGs. Each BIT STRING is a page of facsimile image data, encoded
as defined by Recommendation T.4. The following content encoding is
reversible between MIME and X.400 and ensures that page breaks are
honored in the MIME representation.
An EOL is defined as a bit sequence of
000000000001 (eleven zeroes and a one).
Each page of the message is delimited by a sequence of six (6) EOLs
that MUST start on a byte boundary. The image bit stream is padded
with zeroes as needed to achieve this alignment.
Searching for the boundary is a matter of searching for the byte
sequence (HEX) 00 10 01 00 10 01 00 10 01, which cannot occur inside
the image.
Alvestrand Standards Track [Page 3]
^L
RFC 2159 MIME Body Part for FAX January 1998
See Section 7.5 for the algorithm on conversion between this encoding
and the X.400 encoding.
The Base64 content-transfer-encoding is appropriate for carrying this
content-type.
3. g3-facsimile - image/g3fax
X.400 Body part: g3-facsimile
MIME Content-Type: image/g3fax
Conversion Type: nearly Byte copy
Comments:
The Parameters of the X.400 G3Fax body part are mapped to the
corresponding Parameters on the MIME Image/G3Fax body part and vice
versa. Note that:
(1) If fineResolution is not specified, pixels will be twice as
tall as they are wide
(2) If any bit not corresponding to a specially named option is
set in the G3Fax NonBasicParameters, the "DCS" parameter
must be used.
(3) Interworking is not guaranteed if any bit apart from those
specially named are used in the NonBasicParameters
From X.400 to G3Fax, the body is created in the following way:
(1) Any trailing EOL markers on each bitstring is removed. The
bit order is changed to conform to the most common Internet
encoding (highest bit of first byte = first bit of the
G3Fax). The bitstring is padded to a byte boundary.
(2) 6 consecutive EOL markers are appended to each bitstring.
(3) The padded bitstrings are concatenated together
An EOL marker is the bit sequence 000000000001 (11 zeroes and a
one).
From G3Fax to X.400, the body is created in the following way:
(1) The body is split into bitstrings at each occurrence of 6
consecutive EOL markers. Trailing EOLs must NOT be removed,
since the X.400 Implementor Guide recommends that each page
should end with 6 consecutive EOLs. (This is a change from
RFC 1494).
Alvestrand Standards Track [Page 4]
^L
RFC 2159 MIME Body Part for FAX January 1998
(2) Each bitstring is made into an ASN.1 BITSTRING, reversing
the order of bits within each byte to conforom to the X.400
Implementors Guide recommendation for bit order in the
G3Fax body part.
(3) The bitstrings are made into an ASN.1 SEQUENCE, which forms
the body of the G3Fax body part.
4. Usability of G3Fax body parts
This section is not part of the proposed standard, but is intended as
guidance for people implementing G3Fax handling, so that they know a
little about what to expect.
The DCS bitstring is a LONG thing; the T.30 Recommendation (1993)
gives 67 bits with specific functions, SG8 Report R33 extends this to
75 bits, and Report R41 (approved in 1995) extends it to 79 bits.
(For curiosity - bit 68 says that the coding is JPEG; bit 27 is
"error correcting mode). No sane implementor will send such things
without being able to negotiate them down if the recipient doesn't
support it, but there is no guarantee that messages with such bits
set in the DCS won't arrive through X.400.
The ISO P2 profile from 1995 [PROFILE] says that the profile makes
support for reception of two-dimensional and fine-resolution
mandatory if g3-facsimile is supported at all. Research by Andrew
Gordon of Net-Tel indicates that it is easy for an access unit to
support fine resolution, unlimited length and B4 length, while
support for B4 width is nearly impossible, and A3 width is hard.
Another interesting point is that some fax machines have trouble if
the scan lines do not contain exactly the declared number of pixels
on each scan line, so "omitting right-hand white space" is likely to
give trouble.
5. Security Considerations
There are no known security issues specific to the FAX body part.
Alvestrand Standards Track [Page 5]
^L
RFC 2159 MIME Body Part for FAX January 1998
6. References
[MIME]
Freed, N., and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Bodies",
RFC 2045, November 1996.
[GUIDE]
X.400 Implementor's Guide, version 8.
[PROFILE]
ISO/IEC ISP 12062-2: 1995:
[T.30]
ITU-T Recommendation T.30 (1993): Procedures for document
facsimile transmission in the general switched telephone network.
7. Author's Address
Harald Tveit Alvestrand
UNINETT
P.O.box 6883 Elgeseter
N-7002 Trondheim
NORWAY
EMail: Harald.T.Alvestrand@uninett.no
Alvestrand Standards Track [Page 6]
^L
RFC 2159 MIME Body Part for FAX January 1998
8. Full Copyright Statement
Copyright (C) The Internet Society (1998). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Alvestrand Standards Track [Page 7]
^L
|