`Menezes et al.
`
`[54] SYSTEM AND METHOD FOR EXCHANGING
`COMPUTER DATA PROCESSING
`CAPABILITES
`
`[75]
`
`Inventors: Arul Menezes, Bellevue; Sharad
`Mathur, Redmond; Michael Ginsberg,
`Bellevue, all of Wash.
`
`[73] Assignee: Microsoft Corporation, Redmond,
`Wash.
`
`[21] Appl. No.: 512,948
`
`[22] Filed:
`
`Aug. 9, 1995
`
`Related U.S. Application Data
`
`[63] Continuation of Ser. No. 149,507, Nov. 5, 1993, abandoned.
`Int. Cl.6
`•••.••..•••...••...•.............................•.... G06F 13/00
`[51]
`[52] U.S. CI •.................... 395/200.12; 395/500; 395/834;
`358/406; 358/442
`[58] Field of Search ..................................... 358/404, 405,
`358/406, 442; 395/200.12-200.14, 200.17,
`830, 831, 834
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,000,371 1211976 Ogawa ................................. 358/261.1
`5,166,977 1111992 Ross .......................................... 380118
`5,210,826
`5/1993 Takeda et al ...................... 395/200.14
`5,228,128
`7/1993 Kirn ........................................ 358/442
`5,243,438
`9/1993 Anderton et al ........................ 358/426
`5,268,770 12/1993 Yukino .................................... 358/435
`5,287,199
`2/1994 Zoccolillo ............................... 358/402
`5,386,512
`1/1995 Crisman et al. ................... 395/200.17
`
`FOREIGN PATENT DOCUMENTS
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll lllll lllll lllll llllll Ill lllll llll
`US005621894A
`5,621,894
`Patent Number:
`Apr. 15, 1997
`Date of Patent:
`
`[45]
`
`[11]
`
`2256558 12/1992 United Kingdom ............. H04N 1132
`
`OTHER PUBLICATIONS
`
`"Fax Reroute Function," IBM® Technical Disclosure Bul(cid:173)
`letin, 32:(6A), pp. 405-406, 1989.
`
`Primary Examiner-Parshotam S. Lall
`Assistant Examiner-Viet Vu
`Attorney, Agent, or Finn-Seed and Berry LLP
`
`[57]
`
`ABSTRACT
`
`A system and method for exchanging data processing capa(cid:173)
`bilities between computers. The computers exchange capa(cid:173)
`bilities so that data transfer between the computers may be
`made in the most efficient data format possible for the two
`computers. A first computer, which will receive a data file,
`sends a list of data processing capabilities to a second
`computer, which will transmit the data file to the first
`computer. The transmitting computer examines the capabili(cid:173)
`ties list of the receiving computer as well as its own
`capabilities list and determines the most efficient data format
`for the transfer. The transmitting computer may process the
`data file into an intermediate format for efficient data transfer
`so that the receiving computer will process the intermediate
`data file into the desired data format. The capabilities list can
`be cached for future communication between the computers.
`The system can update the capabilities list and inform other
`computers whether their cached capabilities list is current.
`Capabilities can also be forwarded from one computer to
`another so that a third computer can determine the capabili(cid:173)
`ties of the first computer from the second computer or the
`capabilities of the second computer from the first computer.
`The system is readily applicable to facsimile machines
`where custom and application data processing capabilities
`can be exchanged.
`
`59070363
`
`4/1984
`
`Japan ............................... H04N 1/32
`
`42 Claims, 7 Drawing Sheets
`
`START
`
`117
`
`118
`
`120
`
`122
`
`124
`
`126
`
`128
`
`112
`
`Eod
`
`IPR2016-01710
`UNIFIED EX1007
`
`
`
`U.S. Patent
`
`Apr. 15, 1997
`
`Sheet 1of7
`
`5,621,894
`
`w
`w
`Cl)
`<(
`:c
`0..
`
`<(
`w
`Cl)
`<( :c
`
`0..
`
`
`
`U.S. Patent
`
`Apr. 15, 1997
`
`Sheet 2 of 7
`
`5,621,894
`
`12
`
`CPU
`
`Memory
`
`14
`
`18
`
`20
`
`22
`
`Custom Mode
`Storage Area
`
`16
`
`Application
`Mode Storage
`Area
`
`26
`
`28
`
`30
`
`32
`
`34
`
`36
`
`Non-Volatile
`Storage Unit
`
`Capabilities
`Cache
`
`Display
`
`Conversion
`Processor
`
`Keyboard
`
`Message
`Formatter
`
`('
`
`10
`
`1/0 Interface
`
`38
`
`Physical
`Link
`
`FIG. 2
`
`
`
`U.S. Patent
`
`Apr. 15, 1997
`
`Sheet 3 of 7
`
`5,621,894
`
`START
`
`Initiate Facsimile
`Telephone Call
`(Phase A)
`
`Exchange Custom
`and CRC
`(Phase B)
`
`Exchange Facsimile
`Data Processing
`Capabilities
`(Phase 8)
`
`1 oo
`
`1 02
`
`1 04
`
`Yes
`
`Yes
`
`No
`
`Yes
`
`FIG. 3
`
`No
`
`Load Cached
`Capabilities List
`
`112
`
`
`
`U.S. Patent
`
`Apr. 15, 1997
`
`'Sheet 4 of 7
`
`5,621,894
`
`Request
`Application
`Capabilities
`
`Receive Applicaion
`Capabilities
`(Phase C)
`
`117
`
`118
`
`Cache Capabilities
`and CRC
`
`120
`
`122
`
`124
`
`126
`
`128
`
`Determine Mutually
`Compatible Data
`Form For Transfer
`
`Convert Data File
`Into Selected
`Transfer Form
`
`Format Transfer
`Form For Facsimile
`Transmission
`
`Transfer Data
`File
`(Phase C)
`
`End
`
`FIG. 4
`
`
`
`U.S. Patent
`
`Apr. 15, 1997
`
`Sheet 5 of 7
`
`5,621,894
`
`Transmitting
`Fax Machine
`
`Form
`Form
`A -~ B
`
`or
`
`Form
`Form
`A ~ c
`
`Receiving
`Fax Machine
`
`Form
`Form
`B --~> D
`
`Transfer form = Form B ....... ,..
`
`FIG. SA
`
`Transmitting
`Fax Machine
`
`Fonn
`Form
`E -~ F
`
`and
`
`Form
`Form
`F --~ G
`
`Receiving
`Fax Machine
`
`Transfer fonn = Form G ,,.
`,.
`
`Form
`G
`
`FIG. 58
`
`
`
`U.S. Patent
`
`Apr. 15, 1997
`
`Sheet 6 of 7
`
`5,621,894
`
`Start
`
`Add New
`Application Program
`to System
`
`Register New
`Application Program
`In Capabilities List
`
`150
`
`152
`
`Update Capabilities
`CRC
`
`154
`
`FIG. 6
`
`
`
`~
`\0
`00
`~ -..
`N
`~
`-..
`01
`
`.....J
`"""'
`0
`.....J
`......
`rJJ. =- ('!)
`
`('!)
`
`=1 .... y. ....
`> "O
`
`.....J
`\C
`\C
`
`"""'" ~ = """'"
`
`~
`~
`•
`00.
`~ •
`
`I
`
`,,-30
`
`I
`
`CAPABILITIES
`
`CACHE
`
`28
`
`26
`
`STORAGE AREA
`EXTENDED MODE
`
`STORAGE AREA
`
`BASIC MODE
`
`FAX3
`
`FIG. 7
`
`CAPABILITIES I ,,-30
`STORAGE AREA
`EXTENDED MODE I ,,-28
`STORAGE AREA
`
`CACHE
`
`BASIC MODE
`
`I ,,-26
`
`FAX2
`
`CAPABILITIES I ,,-3o
`STORAGE AREA
`EXTENDED MODE I ,,-28
`STORAGE AREA
`
`CACHE
`
`BASIC MODE
`
`I ,,-26
`
`FAX 1
`
`
`
`5,621,894
`
`1
`SYSTEM AND METHOD FOR EXCHANGING
`COMPUTER DATA PROCESSING
`CAPABILITES
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This application is a continuation of U.S. patent applica(cid:173)
`tion No. 08/149,507, filed Nov. 5, 1993, now abandoned.
`
`TECHNICAL FIELD
`
`The invention relates generally to a system and method
`for exchanging information related to data processing capa(cid:173)
`bilities between computers.
`
`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. Communi(cid:173)
`cation 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 25
`LAN. When information is exchanged between two com(cid:173)
`puters, the information must be in a format that the com(cid:173)
`puters 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 30
`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 receiv(cid:173)
`ing computer and, therefore, must convert the information to
`ASCII on the assumption that ASCII is a "universal" format 35
`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(cid:173)
`known computer technology. FAX machines are used to 40
`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 essen- 45
`tially 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 50
`confidential and print them out only when the proper iden(cid:173)
`tification code is entered.
`To minimize transmission time, FAX machines use data
`compression techniques well known in the art. An interna(cid:173)
`tional standard for facsimile transmission has been estab(cid:173)
`lished by the International Telegraph and Telephone Con(cid:173)
`sultative 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 digi(cid:173)
`tized 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 I -dimensional and
`
`5
`
`10
`
`2
`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 dur(cid:173)
`ing 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
`15 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
`20 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 Bis a pre-message procedure phase or negotiation
`phase for identifying and selecting facsimile data encoding
`capabilities between the calling station and the called sta(cid:173)
`tion. 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 pro(cid:173)
`cessing 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 infor(cid:173)
`mation 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 trans(cid:173)
`mits it to the receiving FAX machine.
`Phase C is the actual message transfer phase and com(cid:173)
`prises two simultaneous phases. Phase Cl is the "In-mes(cid:173)
`sage" procedure phase, which controls the transfer of data
`55 between the transmitting FAX machine and the receiving
`FAX machine. This includes synchronization, error detec(cid:173)
`tion 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
`60 machine under control of the Cl 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 sig-
`65 naling. Phase E is the call release phase in which the
`telephonic communication between the calling station and
`the called station is terminated.
`
`
`
`5,621,894
`
`3
`The CCITI encoding formats permit basic facsimile
`communication. However, as with computers coupled
`together by a LAN, FAX machines may have data process(cid:173)
`ing capabilities that can produce more efficient transmission
`than merely data encoding using one of the limited CCITI s
`encoding formats. Some FAX machines are actually incor(cid:173)
`porated 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 10
`machine does not know what data processing capabilities the
`other FAX machine possesses.
`Therefore, it can be appreciated that there is a significant
`need for a system and method for communicating informa(cid:173)
`tion about data processing capabilities between computers. 15
`
`SUMMARY OF THE INVENTION
`
`4
`do not match. The second computer requests the first appli(cid:173)
`cation mode list from the first computer if the change
`detection signal is generated. The selection means then uses
`the first application mode list instead of the stored first
`extended mode list.
`The first custom mode list may be automatically trans(cid:173)
`ferred to the second computer. The first application mode list
`may be transferred to the second computer only upon
`request.
`In an alternative embodiment, the first and second com(cid:173)
`puters are facsimile machines having a facsimile mode
`storage area containing facsimile data processing modes of
`the first and second facsimile machines, respectively. Capa(cid:173)
`bility transfer means automatically transfer the first fac(cid:173)
`simile data processing mode list from the first facsimile
`machine to the second facsimile machine.
`A custom data processing mode list may be transferred
`from the first facsimile machine to the second facsimile
`machine. Selection means within the second facsimile
`20 machine select a transfer form in which to transfer a data file
`from the second facsimile machine to the first facsimile
`machine. The selection means uses the first and second
`custom mode lists to determine a mutually compatible
`transfer form which is compatible with the data processing
`25 capabilities of the first and second facsimile machines. The
`selection means uses a mutually compatible data processing
`mode from the first and second facsimile mode lists if the
`first and second custom mode lists do not have a mutually
`compatible data processing mode.
`The system may further include first and second applica-
`tion data processing mode storage areas in the first and
`second facsimile machines, respectively, each containing an
`application data processing mode list of application data
`processing capabilities of the first and second facsimile
`machines. The capability transfer means transfers the first
`application data processing mode list from the first facsimile
`machine to the second facsimile machine upon receipt of an
`application mode list request command. The selection
`means within the second facsimile machine selects a mutu(cid:173)
`ally compatible transfer form based on the first and second
`application data processing mode lists, the first and second
`custom data processing mode lists, and the standard fac(cid:173)
`simile data processing mode list.
`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 accord(cid:173)
`ing 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. SA illustrates conversion of a data file by the system
`of FIG. 2 to an intermediate transfer form.
`FIG. SB 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
`60 application by the system of FIG. 2.
`FIG. 7 is a block diagram illustrating capabilities for(cid:173)
`warding using 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
`
`30
`
`35
`
`40
`
`The present invention is embodied in a system for con(cid:173)
`trolling communication between first and second computers,
`the first computer having at least a first custom data pro(cid:173)
`cessing mode and the second computer having at least a
`second custom data processing mode compatible with the
`first custom data processing mode. The system includes a
`first application mode storage area in the first computer
`having a first application data processing mode list contain(cid:173)
`ing at least one application data processing mode of the first
`computer. A second application mode storage area in the
`second computer has a second application data processing
`mode list containing at least one application data processing
`mode of the second computer.
`A capability transfer means transfers the first custom and
`application data processing mode lists from the first com(cid:173)
`puter to the second computer. Selection means within the
`second computer select a transfer form in which to transfer
`a data file from the second computer to the first computer.
`The selection means uses the first and second application
`mode lists to determine if the transfer form is mutually
`compatible with the data processing capabilities of the first
`and second computers. The selection means uses a mutually
`compatible data processing mode from the first and second
`custom mode lists if the first and second application mode
`lists do not have a mutually compatible data processing
`mode.
`The system may further include a conversion processor
`within the second computer for converting the data file into
`the transfer form. Communication controllers within the first
`and second computers control the transfer of the data file in
`the transfer form from the second computer to the first 50
`computer. The second computer may process the data file
`into an intermediate form based on the first application mode
`list with the intermediate form being the transfer form. The
`first computer receives the data file in the intermediate form
`and further processes it into a final form different from the 55
`intermediate form.
`The second computer may forward the first application
`mode list to a third computer upon receipt of a capabilities
`forwarding request from the third computer. The system may
`further include a capabilities storage area in the second
`computer for storing the first application mode list, with the
`selection means using the stored first application mode list
`for transfer of subsequent data files from the second com(cid:173)
`puter to the first computer. The system may further include
`detection means within the second computer to determine if 65
`the first application mode list matches the stored first appli(cid:173)
`cation mode list and generates a detection signal if the lists
`
`45
`
`
`
`5,621,894
`
`5
`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 capa(cid:173)
`bilities, 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 infor(cid:173)
`mation. 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 pro- 20
`cessing 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 25
`discussed in detail below.
`The present invention also has the ability to transfer a list
`of application data processing capabilities from the receiv(cid:173)
`ing FAX machine to the transmitting FAX machine. The
`application capabilities list may contain such information as 30
`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 addi(cid:173)
`tion to a FAX board. Application capabilities include data 35
`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 40
`phase (phase C).
`The receiving FAX machine indicates the presence of
`application capabilities in the NSF data frame. The trans(cid:173)
`mitting FAX machine receives the NSF data frame and
`determines whether or nor to request the application capa(cid:173)
`bilities.
`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 WindowsTM Printing System data format,
`in which data is formatted in predetermined data frames. If
`the receiving FAX machine has indicated that it can process
`WindowsTM 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 is embodied in a system 10, shown
`in block diagram form in FIG. 2. A central processing unit
`
`6
`(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
`5 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
`10 all of the above described components are required for
`operation according to the principles of the present inven(cid:173)
`tion. 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
`15 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 receiv(cid:173)
`ing 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 34 places the data file and the
`application capabilities list into the proper format for trans(cid:173)
`fer. In the present embodiment, the data file is "linearized"
`by the formatter 34. Linearization refers to the process of
`linking the various component of a facsimile message such
`as the message sender information, message recipient infor-
`mation, 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. 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
`60 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 com(cid:173)
`puter. If the system 10 is part of a FAX machine, the
`telephone line coupling one FAX machine to another may
`65 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.
`
`45
`
`50
`
`55
`
`
`
`5,621,894
`
`15
`
`35
`
`7
`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 prin(cid:173)
`ciples 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 transmit(cid:173)
`ting 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 transmit(cid:173)
`ting 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 capabili(cid:173)
`ties cache 30 (see FIG. 2) of the transmitting FAX machine. 20
`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 25
`known and described in the CCITI standards. The system
`10 uses the negotiation phase (Phase B of FIG. 1) to
`exchange the list of custom capabilities above and beyond
`the CCITI encoding formats. In step 102 the custom capa(cid:173)
`bilities are exchanged using the NSF data frames. Note that 30
`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 appli(cid:173)
`cation capabilities is also transmitted with the custom capa(cid:173)
`bilities in step 102. The user may add data processing 40
`capabilities to the system 10 from time to time, which causes
`the application capabilities CRC to be changed. The appli(cid:173)
`cation 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 45
`cache 30 (see FIG. 2), the application capabilities CRC is
`stored with the capabilities. During a subsequent facsimile
`communication, the transmitting FAX machine will com(cid:173)
`pare the received application capabilities CRC with the
`previously stored application capabilities CRC for the
`receiving FAX machine to determine if the cached capabili(cid:173)
`ties 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 appli(cid:173)
`cation capabilities CRC does not match the transmitted
`application capabilities CRC, the capabilities stored in the
`capabilities cache 30 are outdated.
`The CCITI encoding formats, such as MH, MR, and 60
`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 65
`the identity of the receiving FAX machine from the facsimile
`telephone number or from the identification data exchanged
`
`8
`between the transmitting and receiving FAX machines. If
`there has been no previous communication with the receiv(cid:173)
`ing FAX machine, the result of decision 106 is NO. If there
`has been previous communication with the receiving FAX
`5 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
`10 capabilit