WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for computer data transmission    
United States Patent5473691   
Link to this pagehttp://www.wikipatents.com/5473691.html
Inventor(s)Menezes; Arul (Bellevue, WA); Mathur; Sharad (Redmond, WA); Ginsberg; Michael (Bellevue, WA)
AbstractThe system of the present invention processes data for communication between first and second computers by linearizing the communications message. The message comprises a linear header portion, an extended header portion, and a message body. The linear header portion identifies the number of message recipients and message types. The extended header contains detailed information about the message recipients, such as recipient name and address. The extended header may also contain message subject information, polling information, and password data. The header information is used by the receiving computer to prepare to process the expected data type. The message body may be transferred in a form that takes advantage of the data processing capabilities of the first and second computers. The computers may exchange data processing capabilities so that the most efficient transfer form may be selected. The extended header and message body are encoded using a well-known ASN-1 data encoding process. In addition, the message body may be compressed and encrypted. The system may be readily used in facsimile communication where the first and second computers are facsimile machines.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Menezes; Arul (Bellevue, WA); Mathur; Sharad (Redmond, WA); Ginsberg; Michael (Bellevue, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     December 5, 1995
Application Number     08/149,265
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 5, 1993
US Classification     713/161 358/440 380/243 713/163
Int'l Classification     H04K 001/00
Examiner     Swann; Tod R.
Assistant Examiner    
Attorney/Law Firm     Seed and Berry
Address
Parent Case    
Priority Data    
USPTO Field of Search     380/18 380/23 380/24 380/25 380/48 380/49 380/50 358/256
Patent Tags     computer data transmission
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5307413
Denzer
713/151
Apr,1994

[0 after 0 votes]
5303303
White
713/160
Apr,1994

[0 after 0 votes]
4953210
McGlynn
380/266
Aug,1990

[0 after 0 votes]
4927349
Schirmer
431/10
May,1990

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A system for controlling communication between first and second facsimile machines, the system comprising:

a formatter to generate formatted data according to a predetermined format comprising a message object having a plurality of data headers and corresponding data attachments, each of said data headers containing header data describing said corresponding data attachments; and

a controller controlling transfer of said formatted data from the first facsimile machine to the second facsimile machine, said controller transferring said plurality of data headers prior to transferring any of said corresponding data attachments.

2. The system of claim 1 wherein each of said plurality of data headers contains a plurality of header data fields, and said plurality of header data fields comprises one of a header size data field indicating the size of said data header, a message type data field indicating the type of data being transferred in said corresponding data attachment, a recipient number data field indicating the number of intended recipients of said formatted data, and a recipient type data field indicating recipient parameters.

3. The system of claim 2 wherein said plurality of header data fields includes a flag data field indicating the presence of encrypted data in said formatted data.

4. The system of claim 2 wherein said plurality of header data fields includes a flag data field indicating the presence of image map data in said formatted data.

5. The system of claim 1 wherein said predetermined format includes an extended header for providing detailed recipient information about an intended recipient of said formatted data.

6. The system of claim 5 wherein said extended header contains at least a first data field, said extended header data field comprising one of a subject data field containing information relating to the subject of said formatted data, a poll name data field indicating a filename if one of the first and second facsimile machines is sending a poll request, a password data field containing an authorized user identification, and a message originator data field containing data indicating the identity of the sender of said formatted data.

7. The system of claim 5 wherein said formatted data is transferred to at least a first recipient, said extended header containing a message recipient data field containing data indicating a list of all recipients of said message.

8. The system of claim 7 wherein said message recipient data field comprises a recipient name, and a recipient address.

9. The system of claim 1 wherein the second facsimile machine receives said data headers prior to receiving said corresponding data attachments and uses said data headers to prepare in advance of receiving said corresponding data attachments for processing said corresponding data attachments.

10. The system of claim 1 wherein said formatter generates said formatted data in a linearized format having a linearized sequence indicative of a transfer sequence in which said controller will transfer said formatted data.

11. The system of claim 10 wherein said linearized sequence includes a routing header containing data indicative of a transmission path from the first facsimile machine to the second facsimile machine, a recipient header containing data indicative of an intended recipient of said formatted data, said data headers, and said corresponding data attachments.

12. A system for controlling communication between first and second computers, the system comprising:

a formatter to generate formatted data according to a predetermined linearized format indicative of a sequence in which said formatted data will be transferred from the first computer to tile second computer, said linearized format comprising an unsigned and unencrypted linear header containing routing data indicative of a transfer path from the first computer to the second computer, an extended header containing data indicative of an intended recipient of said formatted data, said extended header containing a digital signature to permit detection of alterations to said extended header, at least a first attachment data block containing information to be transferred from tile first computer to the second computer, and an attachment header corresponding to each attachment data block and containing data related to a type of processing to be performed on said corresponding attachment data block by the second computer; and

a controller controlling transfer of said formatted data from the first computer to the second computer.

13. The system of claim 12 wherein said linear header contains a data field containing a plurality of flags, said flags being used by said linearizer to describe said parameters.

14. The system of claim 13 wherein one of said plurality of flags indicates the presence of encrypted data in said data.

15. The system of claim 13 wherein one of said plurality of flags indicates the presence of image data in said data.

16. The system of claim 12 wherein said linear header data field comprises a plurality of data fields comprising a size data field indicating the size of said linear header, a message type data field indicating the type of said data, a recipient number data field indicating the number of message recipients, and a recipient type data field indicating recipient parameters.

17. The system of claim 12 wherein said extended header contains at least a first data field, said first extended header data field comprising one of a subject data field containing information relating to the subject of said data, a poll name data field indicating a filename if one of the first and second computers is sending a poll request, a password data field containing an authorized user identification, and a message originator data field containing data indicating the identity of the sender of said data.

18. The system of claim 12 wherein said extended header contains a message recipient data field containing data indicating a list of all recipients of said formatted data.

19. The system of claim 18 wherein said message recipient data field comprises a recipient name, and a recipient address.

20. . The system of claim 12 wherein said attachment data block is encoded using ASN-1 encoding.

21. The system of claim 12 wherein said attachment data block is compressed before transmission to the second computer.

22. The system of claim 12 wherein said attachment data block is encrypted before transmission to the second computer.

23. The system of claim 12 wherein the second computer receives said attachment header prior to receiving said corresponding attachment data block and uses said attachment header to prepare in advance of receiving said corresponding data attachment block for processing said corresponding attachment data block.

24. The system of claim 12 wherein said formatted data is transferred to the second computer through a relay computer, said relay computer altering said linear header to indicate transfer through said relay computer.

25. The system of claim 12 wherein said type of processing to be performed by the second computer is printing said corresponding attachment data block.

26. The system of claim 12 wherein said recipient is the second computer and said type of processing to be performed by the second computer is storing said corresponding attachment data block.

27. The system of claim 12 wherein the first and second computers are first and second facsimile machines, respectively, and said type of processing to be performed by said second facsimile machine is a poll request, said corresponding attachment data block containing polling data.

28. The system of claim 27 wherein said polling data includes pathway data indicating the location of a selected data file stored within said second facsimile machine.

29. A method for controlling communication between first and second facsimile machines, the method comprising the steps of:

formatting data according to a predetermined format comprising a message object having a plurality of data headers and corresponding data attachments each of said headers containing header data describing said corresponding data attachment;

transferring said plurality of data headers from the first facsimile machine to the second facsimile machine; and

after transferring all of said plurality of data headers, then transferring said corresponding data attachments from the first facsimile machine to the second facsimile machine.

30. The method of claim 29 wherein each of said plurality of data headers contains a plurality of data fields, and said plurality of header data fields comprises a header size data field indicating the size of said header, a message type data field indicating the type of said message, a recipient number data field indicating the number of intended message recipients of said message, and a recipient type data field indicating recipient parameters.

31. The method of claim 30 wherein said plurality of header data fields includes a flag data field indicating the presence of encrypted data in said formatted data.

32. The method of claim 30 wherein said plurality of header data fields includes a flag data field indicating the presence of image data in said formatted data.

33. The method of claim 29 wherein said predetermined format includes an extended header for providing detailed recipient information about an intended recipient of said formatted data.

34. The method of claim 33 wherein said extended header contains at least a first data field, said extended header data field comprising one of a subject data field containing information relating to the subject of said formatted data, a poll name data field indicating a filename if one of the first and second facsimile machines is sending a poll request, a password data field containing an authorized user identification, and a message originator data field containing data indicating the identity of the sender of said formatted data.

35. The method of claim 33 wherein said formatted data is transferred to at least a first intended recipient, said extended header containing a message recipient data field containing data indicating a list of all intended recipients of said formatted data.

36. The method of claim 35 wherein said message recipient data field comprises a recipient name, and a recipient address.

37. The method of claim 29 wherein said step of formatting generates formatted data in a linearized format having a linearized sequence indicative of a transfer sequence in which said controller will transfer said formatted data.

38. The method of claim 37 wherein said linearized sequence includes a routing header containing data indicative of a transmission path from the first facsimile machine to the second facsimile machine, a recipient header containing data indicative of an intended recipient of said formatted data, said data headers, and said corresponding data attachments.

39. A method for controlling communication between first and second computers, the method comprising the steps of:

generating an unsigned and unencrypted linear header containing routing data indicative of a transfer path from the first computer to the second computer:

generating an extended header containing data indicative of an intended recipient of said formatted data, said extended header containing a digital signature to permit detection of alterations to said extended header:

generating at least a first attachment data block containing information to be transferred from the first computer to the second computer;

generating an attachment header corresponding to each attachment data block and containing data related to a type of processing to be performed on said corresponding attachment data block by the second computer; and

transferring said formatted data from the first computer to the second computer.

40. The method of claim 39 wherein said linear header contains a data field containing a plurality of flags to describe said parameters, said step of generating said linear header including the formatting of said flags.

41. The method of claim 40 wherein one of said plurality of flags indicates the presence of encrypted data in data.

42. The method of claim 40 wherein one of said plurality of flags indicates the presence of image data in the data.

43. The method of claim 39 wherein said linear header data field comprises a plurality of data fields comprising a size data field indicating the size of said linear header, a message type data field indicating the type of said formatted data, a recipient number data field indicating the number of message recipients, and a recipient type data field indicating recipient parameters.

44. The method of claim 39 wherein said extended header contains at least a first data field, said first extended header data field comprising one of a subject data field containing information relating to the subject of said formatted data, a poll name data field indicating a filename if one of the first and second computers is sending a poll request, a password data field containing an authorized user identification, and a message originator data field containing data indicating the identity of the sender of said formatted data.

45. The method of claim 39 wherein said extended header contains a message recipient data field containing data indicating a list of all recipients of said formatted data.

46. The method of claim 45 wherein said message recipient data field comprises a recipient name, and a recipient address.

47. The method of claim 39 wherein said attachment data block is encoded using ASN-1 encoding before transmission to the second computer.

48. The method of claim 39 wherein said attachment data block is compressed before transmission to the second computer.

49. The method of claim 39 wherein said attachment data block is encrypted before transmission to the second computer.

50. The method of claim 39 wherein the second computer receives said attachment header prior to receiving said corresponding attachment data block.

51. The method of claim 39 wherein said formatted data is transferred to the second computer through a relay computer, the method further including the step of altering said linear header to indicate transfer through said relay computer.

52. The method of claim 39 wherein said type of processing to be performed by the second computer is printing said corresponding attachment data block.

53. The method of claim 39 wherein said recipient is the second computer and said type of processing to be performed by the second computer is storing said corresponding attachment data block.

54. The method of claim 39 wherein the first and second computers are first and second facsimile machines, respectively, and said type of processing to be performed by said second facsimile machine is a poll request, said corresponding attachment data block containing polling data.

55. The method of claim 54 wherein said polling data includes pathway data indicating the location of a selected data file stored within said second facsimile machine.
 Description Submit all comments and votes
 


TECHNICAL FIELD

The invention relates generally to a system and method for formatting and processing data, and more particularly, for formatting processing facsimile data.

BACKGROUND OF THE INVENTION

Computers are commonly used in the workplace for data processing and storage. Access to computer information is a key element in the successful use of computers. Communication between computers has become a critical aspect of access to the computer information. A local area network (LAN) allows several computers to be coupled together to enhance their computing capability. One computer can access information stored in another computer through the LAN. When information is exchanged between two computers, the information must be in a format that the computers can recognize and process. Information is often exchanged in a standard format such as ASCII, for example. However, an ASCII format exchange may require that the information be converted from its original format to ASCII format. The computer transferring information has no way of determining the data processing capabilities of the receiving computer and., therefore, must convert the information to ASCII on the assumption that ASCII is a "universal" format that all computers can recognize.

One form of computer is a facsimile (FAX) machine. A FAX machine may comprise an interface board within a computer, or may be a stand-alone device employing well-known computer technology. FAX machines are used to transfer information from one location to another. FAX machines of older design had little or no computing power and were limited to scanning a page and transmitting a digitized version of the page to a receiving FAX machine that reproduced the page. Modem FAX machines are essentially a form of computer and often have storage capability allowing the FAX machine to scan a document and store the digitized version of the machine for transmission at a later time, such as when telephone rates decrease at night. The receiving FAX machine can store received messages that are confidential and print them out only when the proper identification code is entered.

To minimize transmission time, FAX machines use data compression techniques well known in the art. An international standard for facsimile transmission has been established by the International Telegraph and Telephone Consultative Committee (CCITT) and published as Terminal Equipment and Protocols for Telematic Services (1989). References to CCITT standards are made throughout this disclosure. These standards are well known to those skilled in the art and will not be discussed in detail. To conform to the CCITT standard, all FAX machines have Modified Huffman (MH) encoding capability to compress that digitized data for transmission. Newer FAX machines may also employ MR or MMR encoding techniques to compress the data to a greater extent. The MH and MR data encoding are known as CCITT recommendation T.4 1-dimensional and 2-dimensional encoding, respectively, while the MMR is known as CCITT recommendation T.6 2-dimensional encoding. These data encoding techniques are well known and will not be discussed herein. It is to be understood that reference to a particular encoding capability infers that the particular FAX machine also has the ability to decode that particular data format. For example, a reference to a FAX machine with MMR encoding capability almost always means that the same FAX machine can decode MMR encoded data.

The standardized facsimile data encoding capabilities of a receiving FAX machine are automatically transmitted during what may be termed as the negotiation phase of a facsimile telephone call. The various phases of a facsimile transmission, shown in FIG. 1, are described in the CCITT standards.

Phase A, shown in FIG. 1, is the call establishment phase in which the telephonic communication is established between a calling station and a called station. The calling station is the station initiating the facsimile telephone call and the called station is the station receiving the facsimile telephone call. As is well known, both the calling station and the called station are able to transmit or receive facsimile messages.

Phase B is a pre-message procedure phase or negotiation phase for identifying and selecting facsimile data encoding capabilities between the calling station and the called station. In phase B, the receiving FAX machine transmits a digital identification signal (DIS) data frame that describes the particular data encoding formats that are recognizable to the receiving FAX machine. The individual data bits of the DIS data frame identify the particular facsimile data processing modes of the receiving FAX machine. The DIS data frame is defined by the CCITT standard and cannot be used for other purposes. As previously discussed, the capabilities include data encoding such as MH, MR, and MMR. The MH, MR, and MMR data encoding capabilities are defined within recommendation T.4 and recommendation T.6 of the CCITT standard. In addition to the identification of data encoding capabilities, the DIS data frame is used to provide information about the basic data processing capabilities of the receiving FAX machine. This may include limited information such as resolution (e.g., pixels per inch), paper sizes, and the like. These standardized facsimile data processing capabilities or modes are referred to herein as "CCITT encoding formats." The transmitting FAX machine responds with a confirming signal and selects a mutually compatible CCITT encoding format that allows the most efficient data transfer. The transmitting FAX machine encodes the data according to the selected CCITT encoding format and transmits it to the receiving FAX machine.

Phase C is the actual message transfer phase and comprises two simultaneous phases. Phase C1 is the "In-message" procedure phase, which controls the transfer of data between the transmitting FAX machine and the receiving FAX machine. This includes synchronization, error detection and correction, and line supervision. Phase C2 is the actual data transmission phase in which data is transferred by the transmitting FAX machine to the receiving FAX machine under control of the C1 phase. For simplicity, these simultaneous phases will be referred to as phase C.

Phase D is the post-message procedure phase in which information is transferred regarding the end of message signaling, confirmation signaling and end of facsimile signaling. Phase E is the call release phase in which the telephonic communication between the calling station and the called station is terminated.

The CCITT encoding formats permit basic facsimile communication. However, as with computers coupled together by a LAN, FAX machines may have data processing capabilities that can produce more efficient transmission than merely data encoding using one of the limited CCITT encoding formats. Some FAX machines are actually incorporated into computers by way of a FAX interface board. These computers may have great data processing capability, but the data processing capability cannot be called into play when transmitting or receiving a facsimile because one FAX machine does not know what data processing capabilities the other FAX machine possesses.

Presently, facsimile machines do not permit the transfer of data in a flexible manner that allows the simple addition data relating to recipients, relay instructions, file type information, and the like.

Therefore, it can be appreciated that there is a significant need for a system and method for advanced communication capabilities between computers.

SUMMARY OF THE INVENTION

The present invention is embodied in a system for controlling communication between first and second computers with the system comprising a controller controlling transfer of data between the first and second computers and a format means for formatting the data according to a predetermined format comprising a message object and a designated recipient. The message object has an object type containing the message, the message type identifying a class of the message, and message flags identifying parameters associated with the message. In one embodiment, the predetermined format includes a header containing a plurality of data fields describing parameters of the message. The parameters may include information relating to header size and message type. The plurality of headers may also comprise one of a header size data field indicating the size of the header, a message type data field indicating the type of data being transferred, a recipient number data field indicating the number of recipients of the message, and a recipient type data field indicating additional parameters of recipients. The header data field may also include a flag data field indicating the presence of encrypted data in the message as well as a flag data field indicating the presence of image data in the message.

The message object may also include at least a first attachment object, each of the attachment objects having properties identifying an attachment type and attachment data.

In another alternative embodiment, the predetermined format may include an extended header to provide detailed recipient information. The extended header contains at least a first data field and comprises one of a subject data field containing information relating to the subject of the message, a poll name data field indicating a file name if one of the first and second computers is sending a poll request, a password data field containing an authorized user identification, and a message originator data field containing data indicating the identity of the sender of the message. When the data file is transferred to at least a first recipient, the extended header may contain a message recipient data field containing a list of all recipients of the message. The message recipient data field comprises a recipient name and a recipient address.

In yet another alternative embodiment, the system for controlling communications between first and second computers comprises a transfer means to control transfer of data between the first and second computers and a linearizer for formatting the data file according to a predetermined linearized format comprising a linear header which contains information describing parameters of the data and an extended header containing information about any recipient of the data.

In addition, the linearized format may include attachment data containing a data file to be transmitted to the recipient and an attachment header describing parameters of the attachment data. The data file may be encoded using ASN-1 encoding. The data file may be compressed before transmission to the second computer. The data file may also be encrypted before transmission to the second computer.

The linear header may contain a data field containing type information about the data. The linear header may also include a data field containing a plurality of flags which are used by the linearizer to describe the parameters of the data. One of the flags may indicate the presence of encrypted data in the data. One flag may indicate the presence of image data in the data. The linear header may also include information relating to the size of the linear header.

The linear header may comprise a plurality of data fields including a size data field indicating the size of the linear header, a message type data field indicating the type of data, a recipient number data field indicating the number of message recipients, and the recipient type data field indicating additional recipient parameters.

The system may further include an extended header containing at least a first data field, the extended header data field comprising one of a subject data field containing information relating to the subject of the data, a poll name data field indicating the file name if one of the first and second computers is sending a poll request, a password data field containing an authorized user identification, and a message originator data field containing data indicating the identity of the sender of the data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates the various standard phases of operation of a conventional machine.

FIG. 2 is a functional block diagram of a system according to the present invention.

FIG. 3 is a flow chart of the operation of the system of FIG. 2.

FIG. 4 is a continuation of the flow chart of FIG. 3.

FIG. 5A illustrates conversion of a data file by the system of FIG. 2 to an intermediate transfer form.

FIG. 5B illustrates multiple conversions of a data file by the system of FIG. 2 into a transfer form.

FIG. 6 is a flow chart of the registration of a new application by the system of FIG. 2.

FIG. 7 is a block diagram illustrating capabilities forwarding using the system of FIG. 2.

FIG. 8 is a functional block diagram of the message formatter of the system of FIG. 2.

FIG. 9 illustrates a linearized message processed by the system of FIG. 2.

FIG. 10 is a flowchart of the linearization process performed by the system of FIG. 2.

FIG. 11 is a flowchart of the delinearization process performed by the system of FIG. 2.

DETAILED DESCRIPTION OF THE INVENTION

The present invention describes a system and method for exchanging information between computers relating to the data processing capabilities of the computers. While the examples provided below are directed to capabilities exchange between FAX machines, the principles of the present invention are applicable to computers other than FAX machines.

The present invention allows the transfer of information between the receiving FAX machine and the transmitting FAX machine regarding the data processing capabilities of the respective FAX machines other than the CCITT standard formats. The FAX machine of the present invention utilizes a custom set of data processing capabilities, or custom capabilities, and a set of application data processing capabilities, or application capabilities that are associated with application programs. The CCITT standard provides the ability to transmit a non-standard facilities (NSF) data frame during the negotiation phase (phase B). The NSF data frame permits greater flexibility in the format of transmitted information. NSF data frames are sometimes used in the prior art to transmit user identification information, passwords, and facsimile relay information. The present invention uses the NSF data frame to transfer a list of the custom data processing capabilities that the receiving FAX machine has at its disposal. The custom capabilities exceed the CCITT standard encoding formats defined in the DIS data frame, and include information about imaging capabilities, polling capabilities, and the like. The custom capabilities will be discussed in detail below.

The present invention also has the ability to transfer a list of application data processing capabilities from the receiving FAX machine to the transmitting FAX machine. The application capabilities list may contain such information as the application programs available, such as would be useful if the FAX machines are interface boards in computers. For example, a computer may contain a data spreadsheet, a word processor, a sound board for voice communication, in addition to a FAX board. Application capabilities include data processing information about application programs such as the version number of the program. Application capabilities are exchanged during the data transfer phase (phase C) rather than in the negotiation phase (phase B). Furthermore, application capabilities are exchanged only upon request from the transmitting FAX machine during the data transfer phase (phase C).

The receiving FAX machine indicates the presence of application capabilities in the NSF data frame. The transmitting FAX machine receives the NSF data frame and determines whether or nor to request the application capabilities.

The present invention uses the exchanged custom and application capabilities lists to provide the data in the most appropriate format for transfer from one FAX machine to another. If the data to be transferred is in the form of a spreadsheet, the data can be transferred in that format rather than converting the data to printed pages, scanning the pages and transmitting the data using the standard facsimile data encoding capabilities. For example, the data may be in a format such as the Windows.TM. Printing System data format, in which data is formatted in predetermined data flames. If the receiving FAX machine has indicated that it can process Windows.TM. Printing System data frames, the transmitting FAX machine will send the data in that format. As can be readily seen, the ability to determine the precise capabilities of the receiving FAX machine allows the transmitting FAX machine to use the most efficient means for transferring data and permits the transfer of higher level data forms that increase the functionality of the FAX machines.

The present invention also provides a powerful data processing technique to linearize a facsimile message or messages and numerous other attachments. This permits the assembly of various components of a facsimile message into a single location for transmission.

The present invention is embodied in a system 10, shown in block diagram form in FIG. 2. A central processing unit (CPU) 12 is coupled to a memory 14 by a bus 16. The memory 14 may comprise random access memory (RAM) and read only memory (ROM). The bus 16 may carry data signals, control signals and power to the various components of the system 10. A non-volatile storage unit 18 such as a floppy disk or a hard disk may also be coupled to the CPU 12 by the bus 16. A display 20, such as a video display, LCD display, touch-sensitive display, or other display, and a keyboard 22 are coupled to the CPU 12 by the bus 16. Not all of the above described components are required for operation according to the principles of the present invention. For example, if the system 10 is part of a FAX machine, it will be appreciated that there may not be a display 20, and the keyboard 22 may be a telephone style numeric keypad to permit the user to enter the telephone number of the FAX machine to which a facsimile message is being sent. A non-volatile storage unit 18 may also not be present if the system 10 is part of a FAX machine.

The system 10 also contains a custom mode storage area 26 which stores the custom data processing capabilities of the system. An application mode storage area 28 stores a list of application data processing capabilities of the system 10. A capabilities cache 30 stores lists of custom and application capabilities received from other systems of the present design. The capabilities cache 30 also stores a data code associated with the capabilities for each specific receiving FAX machine which is used to indicate whether the stored list accurately reflects the current capabilities of the receiving FAX machine. As will be explained below, the list of stored capabilities can be used for future communication between two systems of the present design. A conversion processor 32 processes a data file into the desired form for data transfer. Operation of the conversion processor 32 to convert a data file from one form to another is well known in the art and will not be described in detail.

A message formatter/linearizer 34 places the data file and the application capabilities list into the proper format for transfer. In the present embodiment, the data file is "linearized" by the formatter/linearizer 34. Linearization refers to the process of linking the various component of a facsimile message such as the message sender information, message recipient information, and the data file itself so that the facsimile message components may be placed in one location in the memory 14 to simplify the transmission of the facsimile message.

A message formatter/linearizer 34 places the data file and the application capabilities list into the proper format for transfer. An I/O interface 36 controls the actual transfer from the system 10 to a system of another computer. It can be appreciated that the specific form of the I/O interface 36 depends on the particular application. For example, the system 10 could be part of a FAX machine, in which case the I/O interface 36 is a facsimile modem interface. If the system 10 is part of a computer coupled to other computers on a network, the I/O interface 36 is a local area network (LAN) interface, a serial interface or the like. The present invention is not to be limited to the particular interface or environment in which the system 10 is operating. A physical link 38 couples the system 10 to another system of the same design or to a prior art system. As with the I/O interface 36, the specific form of the physical link 38 depends on the particular application. The physical link 38 may be a wire cable such as a LAN cable or a serial cable or a telephone line. However, the physical link 38 may also be a microwave link or a satellite link if the system 10 is coupled remotely to another computer. If the system 10 is part of a FAX machine, the telephone line coupling one FAX machine to another may also be a wire cable, microwave link, satellite link, or the like. The present invention is not to be limited by the specific form of the physical link 38.

The following description of operation of the system 10 shown in the flow charts of FIGS. 3 and 4 relate to a FAX machine, however, it should be appreciated that the principles of the present invention are not limited to FAX machines. The flow charts of FIGS. 3 and 4 are from the perspective of the transmitting FAX machine. The transmitting FAX machine determines the transfer form based on the data processing capabilities of the transmitting and receiving FAX machines. Alternatively, the receiving FAX machine could specify the desired transfer form based on the final data form desired by the receiving FAX machine.

When a facsimile telephone call is first initiated in step 100, shown in FIG. 3 (phase A of FIG. 1), neither the transmitting nor receiving FAX machine knows the data processing capabilities of the other. This assumes that there has been no previous communication between the transmitting and receiving FAX machines. If there had been previous communication between the transmitting and receiving FAX-machines, the custom and application capabilities would have been previously exchanged and stored in the capabilities cache 30 (see FIG. 2) of the transmitting FAX machine. If the transmitting FAX machine is initiating the facsimile telephone call, the receiving FAX machine can be identified by the facsimile telephone number. Alternatively, the FAX machines can be identified by identification data (e.g., CSI data frame) exchanged between them in a manner well known and described in the CCITT standards. The system 10 uses the negotiation phase (phase B of FIG. 1) to exchange the list of custom capabilities above and beyond the CCITT encoding formats. In step 102 the custom capabilities are exchanged using the NSF data frames. Note that the custom capabilities are stored in the custom mode storage area 26 (see FIG. 2) of the receiving FAX machine. The precise manner of custom capabilities exchange using the NSF data frames will be described below. The custom capabilities are always transmitted by the receiving FAX machine regardless of whether they are actually used or not.

A cyclic redundancy check (CRC) relating to the application capabilities is also transmitted with the custom capabilities in step 102. The user may add data processing capabilities to the system 10 from time to time, which causes the application capabilities CRC to be changed. The application capabilities CRC, which is a form of checksum, is a well-known technique for determining the validity of the stored data. When capabilities are stored in the capabilities cache 30 (see FIG. 2), the application capabilities CRC is stored with the capabilities. During a subsequent facsimile communication, the transmitting FAX machine will compare the received application capabilities CRC with the previously stored application capabilities CRC for the receiving FAX machine to determine if the cached capabilities stored within the capabilities cache 30 (see FIG. 2) are current. If the stored application capabilities CRC matches the transmitted application capabilities CRC, the capabilities stored in the capabilities cache 30 are current and may be used by the transmitting FAX machine. If the stored application capabilities CRC does not match the transmitted application capabilities CRC, the capabilities stored in the capabilities cache 30 are outdated.

The CCITT encoding formats, such as MH, MR, and MMR, are exchanged in step 102 during the negotiation phase (phase B of FIG. 1), as previously described.

In decision 106, the system 10 determines whether there has been previous communication with the receiving FAX machine. As discussed above, the system 10 can determine the identity of the receiving FAX machine from the facsimile telephone number or from the identification data exchanged between the transmitting and receiving FAX machines. If there has been no previous communication with the receiving FAX machine, the result of decision 106 is NO. If there has been previous communication with the receiving FAX machine, the result of the decision 106 is YES, and the system 10, in decision 110, determines if the capabilities lists have changed since the last facsimile communication. The capabilities lists includes both custom capabilities and application capabilities that are stored within the capabilities cache 30 (see FIG. 2). The system 10 determines whether the capabilities lists have changed by comparing the application capabilities CRC received with the custom capabilities list in step 104 with the application capabilities CRC stored in the capabilities cache 30 (see FIG. 2) for the specific receiving FAX machine.

If the capabilities lists have not changed since the previous communication with the receiving FAX machine, the result of decision 110 is NO, and the system 10 loads the cached capabilities list in step 112. If the capabilities lists have changed, the result of decision 110 is YES.

If the result of decision 106 is NO (i.e., there has been no previous communication with the receiving FAX machine) or the result of decision 110 is YES (i.e., the capabilities list has changed since the last facsimile communication), the system 10, in decision 114, determines whether to request the extended capabilities list. As previously discussed, the custom capabilities list is always sent, but the application capabilities list is only sent upon request from the transmitting FAX machine. The decision to request application capabilities depends on the capabilities of the transmitting FAX machine itself. If the transmitting FAX machine has no application capabilities, there is no need to request the application capabilities list from the receiving FAX machine. If the system 10 does request the application capabilities list, the result of decision 114 is YES, and in step 117, shown in FIG. 4, the transmitting FAX machine sends a request for the application capabilities list. In response to the request for the application capabilities list, the receiving FAX machine, in step 118, sends the application capabilities list to the system 10. Note that the application capabilities list is stored in the application mode storage area 28 (see FIG. 2) of the receiving FAX machine. If the system 10 does not request the application capabilities list, the result of decision 114 is NO. In that event, or if the system 10 has loaded the cached capabilities list in step 112, the receiving FAX machine does not send the application capabilities list to the system.

If the receiving FAX machine has sent the application capabilities list in step 118, in step 120 the system 10 caches the already received custom capabilities and the application capabilities list in the capabilities cache 30 (see FIG. 2) along with t