Brother MFC Fax Language Documentation The Brother MFC fax (on the MFC 6800 and maybe some others) works as if it it is a printer. Brother implemented a language that is similar to PJL for faxing. Basically you just send the fax in a propriatory formated FCL language to the printer. The implementation is a farly straight forward and easy to implement. Unfortunatly using such methods, there is really no way to poll the MFC for the faxing status. (At least I have no idea how to get fax status from the MFC.) For everything to work correctly, I am assuming that the MFC has been setup correctly. Which means the internal fax machine settings for the return phone number, name of the person, etc.. have been setup. The format of the language is as follows. I have included comments for each line of the fax language. ESC%-12345X@PJL (start of every job) @PJL ENTER LANGUAGE=FCL (choose fax language) ESCDATE[2002/03/10(21:51:53)2] (current date/time) ESCDIALNUM[ (Phone Number) ] (number to dial) ESCSENDFAX[] (don't know yet) ESCDIALNUM[ (Phone Number) ] (* repeated for each number to dial) ESCSENDFAX[] (* repeated for each number to dial) ESCRESOLUTION[FINE] (resolution of the fax) ESCPUTDATA[ (size of data stream in bytes) , (data) ] (start of data) ESCRESOLUTION[FINE] (* repeated for each page in fax) ESCPUTDATA[ (size of data stream in bytes) , (data) ] (* repeated for each page of the fax) ESC%-12345X (end of fax) An detailed explination of each line is detailed below. ESC%-12345X@PJL This is a standard PJL command. @PJL ENTER LANGUAGE=FCL This is a standard PJL command which choses the proprietry FCL language. Unfortunatly I have not been able to find any information about the FCL language on the net. ESCDATE[2002/03/10(21:51:53)2] This line is where the current date and time of the fax is defined. The date and time should be in the same format as shown. YYYY/DD/MM(HH:MM:SS). The time is in Military time. ESCDIALNUM[ (Phone Number) ] This command is used to determine what number to dial for the fax. The MFC is able to broadcast up to 99 different numbers. To broadcast to different numbers this command and the SENDFAX command must be repeated for each number. ESCSENDFAX[] This command does not have a option field. It is assumed that this command is needed to send the fax. When broadcasting, this command needs to be repeated along with the DIALNUM command. ESCRESOLUTION[FINE] This command choses the resolution that the fax will be sent at. Currently I have not tested any other resolutions except 'fine' so I do not know the other valid entrys for resolution. This entry must be repeated for every fax page that is sent. ESCPUTDATA[ (size of data stream in bytes) , (data) ] This command contains the actual fax page in Fax G3 format. Basically the two needed pieces of information needed is the size of the data in bytes and the data in the G3 format appended afterwards. Note the end of the command contains a ']'. For a multipage fax, this entry and the RESOLUTION command must be included for each page. ESC%-12345X This is a standard PJL command.