|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |