MS At Work Fax file format: documented!

Michael St. Laurent mikes at hartwellcorp.com
Wed May 16 07:40:35 GMT 2001


For those who are interested in MS Fax Integration I've been able to decode
the file format that Microsoft At Work Fax uses when it writes to the shared
directory to send a fax over the network to another system for transmission.

Here it is:

All numerics are little-endian formated

Heading Section
------------------------------
Header block length (4 bytes)
Header info block length (4 bytes)
Offset to submitting system name string (2 bytes)
Offset to Subject line string (2 bytes)
FAX ID number (4 bytes)
Padding nulls (8 bytes) - could be part of FAX ID #
Unknown but related to file length (4 bytes)
Offset to scheduling block (4 bytes)
Padding nulls (2 bytes)
Number of filename block offsets (2 bytes)
Number of recipient block offsets (2 bytes)
Padding nulls (2 bytes)
Offset to filename block (4 bytes) - may repeat
Offset to recipient block (4 bytes) - may repeat
Name of submitting system (NULL term)
Subject Line (NULL term)
Schedule block length (2 bytes)
Dial retries (2 bytes)
Minutes between retries (2 bytes)
Schedule type (2 bytes)
Send before date/time (16 bytes)
Send after date/time (16 bytes)
Filename block (28 bytes) - may repeat
Recipient header block length (2 bytes) - recipient block may repeat
Recipient block length (2 bytes)
Offset (relative) to recipient name (2 bytes)
Offset (relative) to recipient address (2 bytes)
Padding nulls (2 bytes)
Offset (relative) to coverpage filename (2 bytes)
Padding nulls (28 bytes)
Recipient number (4 bytes)
Padding nulls (4 bytes)
Recipient name (NULL term)
Recipient address (NULL term)
Coverpage filename (NULL term)

File Section (may repeat)
---------------------------
File block length (4 bytes)
MG3 file signature string "0x0A000C000100080001000000" (12 bytes)
Tag "0x618042" (3 bytes)
Length of Subject line string (1 byte)
Subject line (NULL term)
Tag "0x6580" (2 bytes)
Tag "0x618047" (3 bytes)
Length of sender address string (1 byte)
Sender address (NULL term)
Tag "0x46" (1 byte)
Length of sender name string (1 byte)
Sender name (NULL term)
Padding nulls (5 bytes)
Tag "0x6680" (2 bytes)
Tag "0x618047" (3 bytes)
Length of recipient address string (1 byte)
Recipient address (NULL term)
Tag "0x46" (1 byte)
Length of recipient name string (1 byte)
Recipient name (NULL term)
Padding nulls (7 bytes)
Unknown - possibly checksum (19 bytes)
G3 header block tag "G3" (2 bytes) - G3 section may repeat
G3 header block length (2 bytes)
Unknown heading information (60 bytes)
G3 fax data block length (4 bytes)
G3 fax data - bit state inverted

The schedule type can be: 01-ASAP, 03-After given time, 04-Between given
times.  Dates/Times are expressed in Greenwich Mean Time and the format is 2
bytes each for: Year, Month, Day, Day of week, Hour (24), Minute.  If the
schedule type is 01 the date/time fields will be empty.  If schedule type is
04 the user chose the "discount rates" selection for time to send and the
date/time fields will be blank except for the hour field (in this case the
time is not GMT).



--------------------
Michael St. Laurent
Hartwell Corporation




More information about the samba-technical mailing list