WO2000045580A2 - Implementing special protocols using standard modems - Google Patents

Implementing special protocols using standard modems Download PDF

Info

Publication number
WO2000045580A2
WO2000045580A2 PCT/US2000/002168 US0002168W WO0045580A2 WO 2000045580 A2 WO2000045580 A2 WO 2000045580A2 US 0002168 W US0002168 W US 0002168W WO 0045580 A2 WO0045580 A2 WO 0045580A2
Authority
WO
WIPO (PCT)
Prior art keywords
real
communication device
time data
wherem
data
Prior art date
Application number
PCT/US2000/002168
Other languages
French (fr)
Other versions
WO2000045580A3 (en
Inventor
David C. Oliver
Original Assignee
Data Race, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data Race, Inc. filed Critical Data Race, Inc.
Publication of WO2000045580A2 publication Critical patent/WO2000045580A2/en
Publication of WO2000045580A3 publication Critical patent/WO2000045580A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M11/00Telephonic communication systems specially adapted for combination with other electrical systems
    • H04M11/06Simultaneous speech and data transmission, e.g. telegraphic transmission over the same conductors
    • H04M11/068Simultaneous speech and data transmission, e.g. telegraphic transmission over the same conductors using time division multiplex techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42314Systems providing special services or facilities to subscribers in private branch exchanges
    • H04M3/42323PBX's with CTI arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6445Admission control
    • H04L2012/6459Multiplexing, e.g. TDMA, CDMA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6475N-ISDN, Public Switched Telephone Network [PSTN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6481Speech, voice

Definitions

  • the present invention relates to the field of modem-based telecommunication, and more particularly to a system and method for implementing an arbitrary communication protocol (or collection of protocols) through software in conjunction with a standard modem device
  • V 32, V 32b ⁇ s, V 34, V 34b ⁇ s, and V 90 which support increasing data signaling rates across standard telephone lines (l e analog POTS lines)
  • Other standards provide for the transport of data on ISDN lines, or for special purpose connections such as Digital Subscriber Loop
  • tiansport mechanism is used herem to denote a protocol which addresses issues such as signaling rates, modulation, and coding, etc
  • V 34 defines a protocol for a modem operating at data signaling rates of up to 28800 bits/s for use over dial-up lines or leased lines
  • Some of the fundamental characteristics of a V 34 modem include (a) channel separation using echo cancellation, (b) duplex and half-duplex operational modes, (c) QAM modulation on each channel, and (d) trellis coding V 34b ⁇ s provides data signaling rates up to 33600 bits/s with fallback to 31200 bits/s or V 34 transfer rates
  • the more recent V 90 protocol assumes a connection through the PSTN consisting of an analog modem and digital modem pair, and supports signaling rates up to 56000 bits/s downstream (I e from the digital modem to the analog modem), and 33600 bits/s upstream
  • a protocol refers to an agreed upon procedure to control the orderly exchange of information between communicating parties
  • Chip manufacturers, modem manufacturers/integrators, software developers, and end consumers all benefit from the standardization of communication protocols By building hardware and/or software products conforming to the standardized protocols, each manufacturer provides for interoperability with the products of other manufacturers Consumers generally are more likely to purchase modems and modem-related products when assured of such interoperability Thus, manufacturers have a strong incentive to build modems conforming to the most recent protocol standards which generally support the most advanced set of performance features and highest signaling rates Development of modems conforming to these standards is a major effort However, standardized modems may be marketed at low cost with reasonable expectation of return on the costs of development due to the vast size of the market for standardized modem products Transport mechanisms, since they deal with low-level functionality such as modulation, are very naturally implemented as part of the modem Modems typically include a customized DSP or controller chip for running algorithms which implement the transport mechanisms The embedded DSP allows modern modems to support a wide variety of sophisticated performance features such as auto-dialing, auto-answe ⁇ ng, signal rate negotiation, automatic
  • DSVD Digital Simultaneous Voice and Data
  • a soft modem reduces the complexity of physical hardware at the expense of performing some of the modem algorithms in software on the host computer.
  • the physical hardware is responsible for implementing a particular transport mechanism, e.g. V.90.
  • the host software component of the soft modem is responsible for performing so called data protocols, and handling issues such as call establishment, data rate negotiation, electrical switching, etc.
  • a computer system coupled to a standard V.80 modem executes a software protocol program.
  • An arbitrary communication protocol (or collection of communication protocols) may be implemented in the software protocol program Smce the mterface to the modem is defined by a standard, such as the V 80 standard, the software protocol program rapidly expands to multiple operating systems platforms.
  • the communication protocol(s) implemented by the software protocol program may include, e.g., any of the following, or combination thereof
  • this system and method may be used to implement the client side of a virtual presence system
  • a software protocol module running on the host computer may receive user voice data and non-voice data (LAN-oriented data, fax data, and telephony control data, etc.) and multiplexes these data streams mto a first multiplexed data stream.
  • the multiplexed data stream is provided to the standard, e g V 80, modem for transmission to a virtual presence server through an analog telephone line.
  • the software protocol module may receive a second multiplexed data stream from the standard, e g V 80, modem which was transmitted by the virtual presence server.
  • the software protocol module demultiplexes the second multiplexed data stream into a voice data stream and one or more non-voice data streams (e.g., a LAN data stream, a telephony control stream, and/or a fax data stream).
  • the voice data stream is decompressed and provided to voice processing hardware such as a sound card for presentation to a speaker.
  • LAN data may be provided to a software application running on the host computer.
  • Fax data may be provided to a fax machine coupled to the host computer, or alternatively, to a fax software application
  • the host computer may also execute a virtual presence application which presents a graphical user interface which includes a virtual phone
  • the user may place calls, receive calls, transfer calls, etc. using the virtual phone interface
  • the protocol software may allow the user to simultaneously and transparently access LAN data, engage m voice conversations, send/receive faxes.
  • the present invention contemplates a communication system comprising a host computer, a first communication device (e g. a modem) and a computer-readable medium
  • the first communication device is coupled to the host computer and to a PSTN
  • the first communication device implements a standard program interface (e g.
  • the computer-readable medium is also coupled to the host computer, and stores program instructions that, when executed by the host computer, are configured to implement a special communication protocol
  • the special communication protocol is operable to multiplex real-time data from a real-time data source with non-real-time data from a non-real-time data source into one multiplexed data stream.
  • the special communication protocol is further operable to provide the multiplexed data stream to the first communication device usmg the standard program interface, wherem the multiplexed data stream is provided for transmission to the second communication device.
  • Real-time data may include, e.g., digitized voice data and/or telephony control data.
  • a virtual presence application such as the Be There!TM application manufactured by DATA RACE ® , Inc.
  • Examples of non-real-time include the data streams generated by software applications such as, e.g., an Internet browser, an email client, a fax software application, etc., or any combmation thereof.
  • Non-real-time data may also include fax transmission data generated by a fax machme coupled to the host computer
  • Fig. 1 illustrates a protocol implemented in software on a host computer m connection with a standard modem
  • Fig. 2 illustrates a virtual presence system accordmg to the present invention, wherem a remote client may dial mto a virtual presence server to invoke virtual presence, e.g. transparent and automatic voice, fax, data connectivity to an office environment;
  • a remote client may dial mto a virtual presence server to invoke virtual presence, e.g. transparent and automatic voice, fax, data connectivity to an office environment;
  • Fig. 3 is a screenshot of a graphical user interface for a virtual presence application which mcludes a virtual telephone for placmg calls, receiving calls, and performing other telephony functions;
  • Fig. 4 is a block diagram of a client-side implementation of a virtual presence protocol m software on the host computer, where the protocol software interacts with a standard modem;
  • Fig. 5 is another block diagram of the virtual presence system which highlights the connectivity of the virtual presence server and server modems coupled to the virtual presence server; and
  • Fig. 6 is a block diagram of a server modem configured for use in the virtual presence server, and its immediate connections to the PSTN, PBX, and virtual presence server
  • the present invention comprises a new approach to implementing protocols m communication systems, especially modem-based communication systems, which is less susceptible to changes m modem transport mechanisms, and which easily expands to multiple modem platforms
  • a special voice/data multiplexing protocol is implemented in software on the host computer in conjunction with a standard V.80 modem.
  • the International Telecommunication Union (ITU) has adopted the H.324 standard for video conferencmg over analog telephone lines H.324 specifies a standard method for video conferencmg applications to interface with modems. This method is codified in the V 80 standard.
  • a prospective manufacturer of video conferencmg software may design and test with respect to a smgle modem interface which greatly reduces the development time for the video conferencmg software.
  • Modem manufacturers are strongly motivated to provide modems conforming to V.80 in view of the market potential of H.324 video conferencmg products.
  • V.80 was conceived as part of the H.324 protocol stack which targets video conferencing applications
  • the V.80 standard interface need not be constrained to H.324 framework.
  • the standardized interface provided by V 80 may be used to support the unplementation of an arbitrary protocol in software on the host computer
  • the software modules embodying the protocol may be designed and tested against the V 80 interface thereby speeding the tune to market of the software protocol. Consumers may thereby be afforded the opportunity to purchase software products implementing any desired protocol in conjunction with a V 80 modem.
  • one embodiment of the present invention comp ⁇ ses implementing an arbitrary protocol (which may have nothing to do with video conferencmg) in software on a host computer, wherem the software assumes a V 80 (or other standard) modem interface, as illustrated by Figure 1
  • Fig.1 Software Protocol m Conjunction with Standard Modem
  • protocol software 20 running on a host computer communicates with an arbitrary modem conforming to the V 80 standard (or other standard), i.e. modem 30.
  • the protocol software 20 implements an arbitrary protocol (or collection of protocols) beyond those already implemented m the V.80 modem 30 Because the V 80 modem has the well defined interface given by the V.80 specification, the protocol software may be optimized to exploit this interface By layering an additional protocol in software interfaced to a single standardized interface, a new protocol may be more rapidly developed and tested.
  • the existence of a special software protocol 20 mterfaced to the standardized V 80 interface simplifies or eliminates the need to develop multiple versions for a multiplicity of distinct and non-standard modem interfaces.
  • V.80 modems are ubiquitously available in the consumer market at reasonable cost. Thus, by purchasmg a V.80 modem and protocol software 20, a consumer may realize a desired communication function at significantly less expense than if a specialized modem incorporating the equivalent functionality were purchased. Updates to the protocol software 20 are easily provided. Furthermore, the functionality of protocol software 20 is retamed even if modem 30 is replaced or upgraded as long as the replacement/upgrade modem is V.80 compliant (or compliant with whatever standard protocol software 20 is designed to communicate with).
  • a user may desire to replace modem 30 when new high-speed transport mechanisms become available
  • modem 30 when new high-speed transport mechanisms become available
  • the ability to add communication functionality by the purchase of a low-cost software protocol module 20 to add the desired functionality is strongly compelling.
  • Protocol software 20 may implement one or more standardized protocols or non-standardized protocols such as, for example, any of the following, or combination thereof:
  • protocol software 20 may implement, e.g., the V.42 data compression protocol and/or the V.42 error correction protocol.
  • Protocol software 20 may be configured to communicate with an operatmg system (not shown) such as Windows NT*", Windows* 95, Linux*, Sun* OS, etc. It is noted that a manufacturer may rapidly develop versions of protocol software 20 for several different operating systems smce the added complexity of designmg for multiple non-standard modem interfaces has been eliminated
  • the V.80-comphant modem 30 may couple to the PSTN 40 through an analog phone lme 35 (also known as a POTS line)
  • the V 80 modem 30 may implement a transport mechanism such as V.34b ⁇ s or V.90. It is observed that the V.80 modem 30 may be a soft modem
  • the V 80 modem 30 includes a software component which executes on the host computer, and the mterface 25 between protocol software 20 and the V.80 modem 30 may be a software interface to the software component.
  • Fig. 2 A Virtual Presence System
  • the protocol software 20 is used to implement the client side of a virtual presence system as shown in Figure 2.
  • a remote user situated at computer system 102 connects to an office environment through a V 80-comphant modem 104 (or other standardized modem)
  • the office environment may include a virtual presence server 108 which may be coupled to the PSTN 106 through telephone lmes 107
  • the virtual presence server 108 may extend to the remote user the illusion of bemg in the office: the remote user may have simultaneous access to the data services of local area network 112 and the telephony services of PBX 110
  • the user computer system 102 When connected to the virtual presence server 108, the user computer system 102 may behave as if it were a node of local area network 112 just like physically resident LAN nodes 116A, 116B, and 116C.
  • the remote user may be presented with a virtual phone through a graphical user interface running on computer system 102
  • the virtual phone may behave as if it were an office telephone extension just like physically resident office telephones 120A, 120B, and 120C.
  • the remote user may therefore simultaneously access any of the processing services offered by LAN 112, and engage in telephone conversations through PBX 110.
  • the remote user may "surf the web" through LAN 112 and simultaneously converse with a colleague situated at one of office telephones 120A through 120C.
  • Virtual presence server 108 routes the data traffic to/from LAN 112, and the voice traffic to/from PBX 110.
  • the virtual presence server 108 may perform a remote access call forwarding operation (RACF) which commands the PBX 110 to forward any subsequent telephone calls targeting (i.e intended for) the remote user's office telephone 120A to the virtual presence server through one of lmes 109.
  • RAF remote access call forwarding operation
  • the virtual presence server 108 forwards these telephone calls to the remote user situated at computer system 102. It is noted that the remote user may disable the call forwarding feature if desired.
  • the remote location where the user is situated is equipped with only a single telephone lme.
  • the telephone lme 105 through which the remote user dials mto the office environment may be the only telephone line available at the remote site.
  • the remote user may be situated m a living space (house, apartment, dormitory, etc.) where only one telephone line is provided.
  • persons traveling quite often find themselves in situations where only one telephone is immediately available such as hotel rooms, airport lobbies, etc..
  • this telephone line 105 will not be able to receive direct telephone calls.
  • the user computer system 102 may perform a call forwarding operation which commands the PSTN 106 to redirect subsequent calls targetmg (i.e. initially intended for) telephone line 105 to the remote user's office telephone 120A This is preferably achieved by performing a redirect-on-busy operation.
  • calls targeted for (i.e. initially dialed for) the number of telephone line 105 may be forwarded by the PSTN to the PBX 110 with an indication of the remote user's office telephone number.
  • the PBX 110 then forwards the telephone call (smce the RACF operation discussed above is in force) to the virtual presence server 108.
  • the virtual presence server 108 forwards the telephone call to the remote user situated at computer system 102.
  • the remote user may be able to receive telephone calls dialed for telephone lme 105 even when telephone line 105 is being used to access the virtual presence server 108
  • the virtual phone which is graphically presented to the remote user on the monitor of computer system 102 may be configured to emulate any of a variety of standard models for office telephones or telephony devices.
  • the remote user may configure the virtual phone to resemble his/her office phone 120A for ease of use.
  • the remote user may configure to the virtual phone to provide different and/or more advanced features than his/her office telephone 120A
  • Figure 3 illustrates the graphical user interface for the virtual phone according to one embodiment executmg under the Windows' 95 operatmg system.
  • the remote user may engage in voice conversations with other office mates or external third parties 122 (i.e.
  • the virtual presence server 108 may automatically and transparently redirect the call to the remotely connected office mate.
  • an office mate or external third party 122 dials the remote user's office number (i.e. the number assigned to the remote user's office telephone 120A)
  • the virtual presence server 108 may automatically and transparently redirect the call to the remote user through the remote connection.
  • a person physically located m the office environment dials a local extension number or direct inward dialing (DID) number to call an office mate at one of office telephones 120A through 120C.
  • the local extension number is generally an N-digit abbreviation of the of the corresponding full telephone number.
  • the remote user may dial the local extension number of an office mate m the office environment, just as if the remote user were physically located m the office environment Similarly, an office mate in the office environment may dial the local extension of the remote user and accesses the remote user, just as if the remote user were physically located in the corporate office.
  • Local area network 112 includes a collection of LAN nodes 116A through 116C. It is noted that LAN nodes 116A through 116C represent an arbitrary plurality of LAN nodes. Similarly, office telephones 120A through 120C represent an arbitrary plurality of office telephones. LAN 112 may have any desired topology: the linear topology shown in Figure 2 is for pictorial convenience only LAN 112 may use Ethernet, Token Ring, or other types of network protocol.
  • the LAN 112 may also use the Isochronous Ethernet (IsoEthernet) protocol (given by the IEEE 802.9a specification)
  • the LAN nodes may represent client computers or servers such as file servers, print servers, application servers, modem servers, etc
  • Firewall 114 couples to the Internet 118 and LAN 112, and limits access to the LAN 112 by external parties accessing the LAN through the Internet.
  • Virtual presence server 108 is coupled to LAN 112 as well as PBX 110.
  • the office environment may be a corporate office or place of busmess. More generally, the office environment represents any establishment having access to a PBX and a computer network. In one embodiment of the invention, the office environment is an Internet Service Provider (ISP). In this case, the virtual presence server 108 enables the ISP to extend voice telephony services to its subscribers in addition to Internet access.
  • ISP Internet Service Provider
  • User computer system 102 is illustrated m Fig. 2 as being a personal computer. However, it is understood that user computer system 102 may be any realized by any of various types of computers. For example, a person travelling on a busmess trip is more likely to have a portable or laptop computer than a desktop personal computer. In other embodiments, user computer system 102 may be substituted by communication devices such as a personal digital assistant (PDA) or a cellular phone, as desired
  • V.80 modem 104 is illustrated in Fig. 2 as being an external modem
  • V.80 modem 104 may assume a variety of forms
  • V.80 modem 104 may be a modem card configured for insertion into an expansion bus slot of user computer system 102
  • V.80 modem 104 may be a soft modem which includes both a software component which runs on the host and a hardware module.
  • the V.80 modem 104 may be may be configured as a PCMCIA card to be inserted mto a PCMCIA slot of the laptop computer It is also noted that modem 104 is discussed as a V.80 standard modem as a prefe ⁇ ed embodiment. However, modem 104 may be designed for other standards as well.
  • V.80 modem 104 may couple to the PSTN 106 through an analog phone lme 105 (i.e. a POTS lme).
  • Virtual presence server may coupled (a) to the PSTN through multiple phone lmes 107, and (b) to the PBX 110 through multiple lines 109, in order to support virtual presence for a plurality of remote users.
  • PBX 110 may be coupled to the PSTN through multiple phone lines 111.
  • PBX 110 is configured to provide telephony services to office personnel
  • office personnel situated at office telephones 120A through 120C may initiate telephone calls or mtercomm dialogs with each other, or may place and receive calls to/from external third parties 122.
  • an office personnel B situated at one of the office telephones, say office telephone 120B dials the extension of office personnel C situated at office telephone 120C.
  • PBX 110 establishes an audio connection between the two office telephones. C may not need to pickup his/her handset for the connection to be established.
  • Each office telephone is preferably equipped with a speaker and microphone apart from those already resident withm the telephone handsets to support this mtercomm feature.
  • C's voice may be picked up by C's microphone and transmitted to B, while B's voice may be transmitted to C's speaker
  • B's voice may be transmitted to C's speaker
  • C may choose to pick up his/her handset for privacy or out of courtesy to others.
  • PBX 110 may be a service, such as Centrex* or Plexar 8 , provided by the local telephone company, with the equipment located at the telephone company's switch
  • user computer system 102 may be coupled to a physical telephone, handset or headset (not shown) in order to redirect mtercomm dialogs to the handset for the sake of privacy or out of courtesy to others in the vicinity of computer system 102.
  • a physical telephone, handset or headset not shown
  • the mtercomm dialog may be redirected to the handset.
  • the remote user may place a telephone call (or mtercomm dialog) to an office mate or external third party 122 using the graphical user interface provided with the virtual phone (see Figure 3).
  • the mouse may be used to select digits on the virtual keypad.
  • the remote user may type a phone number on the keyboard of computer system 102, or select a phone number from a call list or phone book displayed by the virtual phone. If a physical telephone is coupled to the user computer system 102, the remote user may use the physical telephone in typical fashion by lifting the handset and dialing digits on the keypad of the physical telephone. In one alternative embodiment, the remote user may verbally recite the digits of the telephone number into a microphone: voice recognition software running on the user computer system 102 decodes the digits.
  • computer system 102 may execute a virtual presence application 150 and a virtual presence protocol component 170 as shown in Figure 4
  • the virtual presence application 150 may present the remote user with a graphical user interface which may include the virtual phone depicted in Figure 3
  • the VP application 150 communicates with telephony control module 160 m the VP protocol component 170
  • User computer system 102 preferably includes a sound card (not shown) which may be coupled to a microphone and speaker.
  • the microphone and speaker may allow the remote user to converse with others through the remote connection, i.e. the connection achieved by V.80 modem 104, analog phone lme 105, PSTN 106, one of phone lines 107, and virtual presence server 108.
  • the user speaks into the microphone.
  • the microphone transduces the user's voice mto an analog voice signal.
  • the sound card digitizes the analog voice signal.
  • the digitized voice stream is supplied to the speech compression/decompression module 162 of the VP protocol component 170. Conversely, the speech compression/decompression module 162 supplies a stream of voice samples which represent the correspondent's voice.
  • the virtual presence system may support voice conferencing.
  • the user may actually be conversing with multiple co ⁇ espondents while simultaneously engagmg m data communication with through LAN 112.
  • the co ⁇ espondent's voice stream may be supplied to the sound card
  • the sound card converts the co ⁇ espondent's voice stream into an analog signal which is then fed to the speaker so the remote user can then hear the co ⁇ espondent.
  • a sound card embodies one mechanism for transducing a user's voice excitation mto a digitized voice stream However, many other mechanisms may be employed Any such mechanism will be refe ⁇ ed to herem as a sound transducing mechanism
  • the remote user may engage in data communication with nodes on LAN 112
  • the remote user may invoke (a) a web browser to "surf the web", (b) an email client to check email, (c) an internet telephony (VoIP) application to talk to others through the office LAN 112, (d) a file manager to access file servers on LAN 112, etc
  • the data communication and voice telephony may occur simultaneously through the same remote connection to the virtual presence server 108
  • Software application 158 represents an arbitrary application which is configured engage in data communication
  • software application 158 may be an Internet browser, an email client, a fax software application, etc
  • Software application 158 exchanges data packets with remote access client 156
  • Remote access client 156 acts in conjunction with a remote access server (running on virtual presence server 108), and provides the software application 156 with a transparent connection to LAN 112
  • the remote access client 156 may send and receive data to/from a virtual COM port 157
  • Data compression/decompression module 164 may also be coupled to remote access client 156 Data compression/decompression module 164 receives the data sent by remote access client 156, and compresses this data according to, e g , the V 42b ⁇ s compression protocol The compressed data stream may be supplied to e ⁇ or co ⁇ ection module 166 Conversely, data compression/decompression module 164 may receive from e ⁇ or co ⁇ ection module 166 a stream of e ⁇ or-co ⁇ ected data, and decompress the e ⁇ or-co ⁇ ected stream according to, e g , the V 42b ⁇ s protocol The decompressed data stream may be supplied to virtual COM port 157 for access by the software application 158
  • E ⁇ or co ⁇ ection module 166 may receive the compressed data stream from data compression/decompression module 164, and incorporate e ⁇ or co ⁇ ection information to the compressed data stream according to, e g , the V 42 protocol The e ⁇ or co ⁇ ection information assists the virtual presence server 108 m co ⁇ ectmg e ⁇ ors m transmission of the compressed data stream Conversely, e ⁇ or co ⁇ ection module 166 may perform e ⁇ or co ⁇ ection according to, e g , the V 42 protocol on a data stream received from packet multiplexer/demultiplexer 168
  • the VP protocol component 170 comp ⁇ ses a system of software modules which execute on computer system 102
  • the VP protocol component 170 may include telephony control module 160, speech compression/decompression module 162, data compression decompression module 164, e ⁇ or co ⁇ ection module 166, and packet multiplexer/demultiplexer 168
  • VP protocol component 170 is responsible for implementing the client side of a virtual presence protocol
  • Telephony control module 160 communicates with the virtual presence application 150 Telephony control module 160 may send telephone control packets to packet multiplexer m response to commands sent by virtual presence application 150 Conversely, telephony control module 160 may send commands to virtual presence application 150 in response to telephony control packets received from packet multiplexer 168
  • Speech compression decompression module 162 receives the user digitized voice stream 152 and may apply speech compression according to, e g , the TrueSpeech or G 729 algorithm
  • the compressed speech packet stream is supplied to packet multiplexer/demultiplexer 168
  • speech compression/decompression module 162 may receive a stream of compressed stream packets from the packet multiplexer/demultipler 168, and decompress the compressed stream accordmg to, e.g., the TrueSpeech or G.729 algorithm.
  • the decompression step recovers the co ⁇ espondent's voice signal 154.
  • the co ⁇ espondent's voice signal 154 may be supplied to a sound card for output to the remote user.
  • Packet multiplexer 168 may receive (a) the outgoing telephony control stream generated by telephony control module 160, (b) the compressed speech packets generated by speech compression/decompression module 162, and (c) the data stream provided by e ⁇ or co ⁇ ection module 166, and multiplexes these three streams.
  • the multiplexed packet stream is supplied to standard (e.g V 80) modem 104.
  • Standard V.80 modem 104 may modulate an analog signal with the multiplexed data and transmit the multiplexed stream to the virtual presence server 108 through analog phone lme 105, PSTN 106, and one of phone lines 107.
  • virtual presence server 108 may transmit a second stream of multiplexed packet data to V.80 modem 104 through the same remote connection.
  • the second stream of multiplexed packets may contam a pseudo-random mixture of telephony control packets, compressed speech packets, and data packets
  • the second stream of multiplexed packets is supplied to packet multiplexer/demultiplexer 168.
  • Packet multiplexer/demultiplexer 168 demultiplexes the second stream, telephony packets are sent to telephone control module 160; compressed speech packets are sent to speech compression/decompression module 162, data packets are sent to e ⁇ or co ⁇ ection module 166
  • the virtual presence client 102 may provide concu ⁇ ent fax transmission service over the same V 80 modem-connection to the virtual presence server 108.
  • the remote user may send or receive fax transmissions while accessing the office LAN 112 and engagmg in a voice conversation.
  • the remote user may be engaged m a voice conversation with a third party 122 while accessing the Internet through LAN 112 and receiving a fax transmission from a fax source.
  • the fax source may be a fax machine 123 coupled to the PBX 110, an external fax machine 124 connected to the PSTN, or a node of LAN 112.
  • user computer system 102 may send fax transmissions
  • the remote user may have a remote fax machine 100 coupled to computer system 102.
  • the user computer system 102 may be configured with fax software which allows the computer system 102 to emulate a fax machme in conjunction with V.80 modem 104. With such fax software, the physical fax machine 100 may not be necessary.
  • the fax software is especially beneficial for persons travelling and without immediate access to a fax machine.
  • the fax software also may have a graphical user interface to support dialing a destmation fax number. It is noted that the fax software may be mtegrated with the virtual phone software, or may be an mdependent application.
  • the virtual presence server 108 may command the PBX to forward the user's office telephone number to itself as desc ⁇ bed above
  • the virtual presence server 108 may perform a remote access call forwarding (RACF) operation which commands the PBX 110 to forward subsequent telephone calls intended for the user's fax machme 123 to a fax server 126
  • RACF remote access call forwarding
  • the fax server 126 receives the call and the ensumg fax transmission.
  • the fax server 126 forwards the fax transmission data to the virtual presence server 108 through LAN 112.
  • the virtual presence server 108 forwards the fax transmission data to user computer system 102.
  • the virtual presence server 108 may multiplex the fax transmission data with (a) a voice stream separately received from PBX 1 10, (b) a telephony control stream which mediates the extension of PBX functionality to the remote user, and (c) a data stream received from LAN 112
  • fax calls intended for the user's office fax machme 123 are transparently and automatically forwarded to the remote user.
  • the user computer system 102 receives the multiplexed stream and demultiplexes it mto the va ⁇ ous component streams.
  • virtual presence protocol software 170 performs the demultiplexing function.
  • Telephony control packets are supplied to telephony control module 160
  • Voice packets are supplied to the speech compression/decompression module 162.
  • Fax transmission data and LAN data packets are supplied to data e ⁇ or co ⁇ ection module 166
  • E ⁇ or co ⁇ ection may be followed by decompression m data compression/decompression module 164.
  • Decompressed fax data packets and LAN data packets may be provided to the remote access client 156 (e g.
  • the fax data packets may be forwarded by the remote access client to fax machine 100 or to a fax software application (not shown)
  • the decompressed LAN data packets are supplied to software application 158 Examples of LAN data packets include email packets, Internet Protocol (IP) packets, etc
  • Fax server 126 may couple to PBX 110 through telephone lines 125 in order to support multiple incoming or out-gomg fax transmissions
  • fax server 126 couples to LAN 112
  • Fax server 126 may include memory for stormg received fax transmissions, and a plurality of fax modems receiving or transmitting fax data on telephone lines 125
  • the user computer system 102 may perform a call forwarding operation which commands the PSTN to forward telephone calls intended for telephone line 105 to the user's office telephone number This was discussed m connection with forwarding voice telephone calls to the remote user through the PBX and virtual presence server 108, l e voice telephone calls dialed for the number of telephone lme 105 when telephone line 105 is engaged with the connection to the virtual presence server 108
  • this forwarding operation may also enable fax calls dialed for the number of telephone lme 105 to be forwarded to the remote user as follows.
  • fax calls directed to (dialed for) telephone lme 105 may be forwarded by the PSTN to the PBX 110 with an indication of the user's office telephone number.
  • the PBX forwards the fax call to the virtual presence server 108 through one of lines 109
  • the virtual presence server 108 goes off hook to answer the fax call
  • the virtual presence server detects that the call is fax oriented preferably via a CNG signal
  • the virtual presence server commands the PBX to transfer the fax call to fax server 126.
  • the fax server 126 receives the ensuing fax transmission from the fax source and forwards the fax transmission data to the virtual presence server 108
  • the virtual presence server may multiplex the fax transmission data with a voice telephony stream, a telephony control stream, and/or a LAN data stream as described above
  • the multiplexed stream is sent to the user computer system 102 through the remote connection User computer system 102 (i.e.
  • virtual presence protocol component 170 recovers the fax data from the multiplexed stream and supplies the fax data to fax machine 100 or to a fax software application (not shown) running on user computer system 102 Thus, fax calls intended for the number of telephone line 105 are forwarded to the remote user through PBX 110, fax server 126, and virtual presence server 108.
  • user computer system 102 may send fax transmissions to any desired fax destination.
  • a stream of fax data may be generated.
  • the fax data may be supplied to remote access client 156
  • a software application 158 may supply the remote access client with a stream of LAN-oriented data, i.e. data which targets LAN 112.
  • Remote access client 156 may provide the fax data and LAN-oriented data to data compression/decompression module 164 through virtual COM port 157.
  • Data compression/decompression module 164 applies a data compression algorithm to the fax data packets and LAN-oriented data packets preferably accordmg to the V.42b ⁇ s standard.
  • the compressed fax packets and compressed LAN-oriented data packets may be sent to e ⁇ or co ⁇ ection module 166 where an e ⁇ or co ⁇ ection algorithm is applied, preferably according to the V.42 standard.
  • Packet mux/demux 168 may multiplex (a) a telephony control stream received from telephony control module 160, (b) the user's compressed voice stream received from speech compression module 162, (c) the compressed LAN- oriented data stream, and (d) the compressed fax data stream from e ⁇ or co ⁇ ection module 166.
  • the multiplexed stream may be sent to the virtual presence server 108 through V.80 modem 104
  • the virtual presence server 108 demultiplexes the multiplexed stream received from user computer system 108.
  • the fax stream may be e ⁇ or co ⁇ ected (e g. V 42) and decompressed (e.g V.42b ⁇ s), and sent to fax server 126.
  • Fax server 126 supplies the fax data or a co ⁇ espondmg fax signal to PBX 110 through one of lines 125.
  • PBX 110 supplies the fax signal to the fax destmation.
  • the fax destination may be fax machme 123 which is internal to the office environment
  • the fax destmation may be an external fax machme coupled to the PSTN such as fax machine 124
  • the PBX supplies the fax signal to the external fax machine 124 through the PSTN and one of lines 111
  • fax server 126 since fax server 126 is coupled to LAN 112, it may supply the fax data to another node on LAN 112.
  • computer 116A may include virtual fax software which enables it to receive fax, store, and display fax data.
  • fax server 126 may transmit the fax data to computer 116A through LAN 112
  • fax server 126 may transmit the fax data to a node of the Internet 118
  • the virtual presence server 108 preferably comprises a high-performance computer system which connects to LAN 112 and office PBX 110 as shown in Figure 5.
  • the virtual presence server 108 preferably executes the Wmdows NT* operating system, and thus comprises a Windows NT* server.
  • the virtual presence server 108 may run the UNIX* operating system or any other suitable operating system.
  • the virtual presence server 108 may couple to a plurality of server modems SMI through SM3. It is noted that the three server modems SMI through SM3 represent an arbitrary plurality.
  • the server modems are preferably configured as expansion cards for insertion mto expansion bus slots of the virtual presence server 108.
  • server modems may be configured for coupling to I/O ports of the virtual presence server 108
  • the virtual presence server 108 may be coupled to the PSTN through a plurality of analog telephone lines 107 which are typically refe ⁇ ed to as trunk lines
  • the virtual presence server may be coupled to office
  • PBX 110 through a plurality of lines 109 commonly refe ⁇ ed to as station lines PBX 110 may be coupled to a central office (not shown) of the PSTN through a plurality of telephone lmes 111.
  • the PBX 110 such as a Plexar* system, may reside in a Central Office (CO) of the PSTN rather than m the office environment.
  • CO Central Office
  • the plurality of trunk lines 107 may be configured as a hunt group.
  • the user computer system 102 calls a telephone number associated with the hunt group, and the PSTN rotors the call to the first non-busy line of trunk lines 107
  • Server software executmg on the virtual presence server 108 controls the server modems to perform vanous functions as will be described below.
  • the server modems have status and control registers accessible by the virtual presence server 108 via I/O-mapped or memory-mapped addresses
  • the server modems further include memory, such as RAM, which is accessible by the virtual presence server 108 via memory-mapped addresses
  • the virtual presence server 108 reads and w ⁇ tes the status and control registers and memory to control the server modems
  • the server modems may generate one or more interrupt request signals to the virtual presence server 108 to notify the virtual presence server 108 of various events For example, the reception of telephony control messages from the remote user computer system 102 typically evokes an interrupt to the virtual presence server 108
  • Server modem SMI may be a specially developed hardware unit which supports the virtual presence protocol
  • Server modem SMI may be connected to the PSTN through one of analog trunk lines 107 denoted with the label 107-1
  • Server modem SMI may also be connected to the PBX (or to a functional equivalent in the Central Office of the PSTN) through one of analog station lines 109 denoted with the label 109-1
  • Server modem SMI may include a processor 210 coupled to (a) a first smgle lme telephone (SLT) interface 200, (b) a data pump 202, (c) memory 204, (d) vocoder 206, and (e) a second SLT interface 208
  • SLT interface 200 couples to the PSTN 106 through trunk line 107-1, while SLT mterface 208 couples to the PBX 110 (or PSTN) through station line 109-1
  • the SLT interfaces 200 and 208 present interfaces which appear to the PSTN and PBX respectively substantially like standard telephones
  • the processor 210 is operably coupled to the virtual presence server 108 by an expansion bus, such as an Industry Standard Architecture (ISA) or Peripheral Component Interconnect (PCI) bus, through bus mterface circuitry.
  • the processor 210 receives data from and sends data to the virtual presence server 108.
  • the processor 210 comprises any processor device which is capable of executmg a stored program of instructions
  • processor 210 may be an embedded microcontroller
  • the processor 210 receives status information from the SLT mterfaces 200 and 208 regardmg events such as detection of ringing voltages and the reception of DTMF tones on trunk lme 107-1 and station line 109- 1 respectively.
  • the processor 210 controls the SLT interfaces 200 and 208 to perform actions such as generating on off hook conditions and generating DTMF tones on trunk lme 107-1 and station lme 109-1 respectively.
  • Memory 204 may store program code for processor 210 and may buffer data m support of multiplexing, demultiplexing, and data transfer operations Thus, a portion of memory 204 may comp ⁇ ses RAM which is accessible to the virtual presence server 108 via memory-mapped addresses
  • the data pump 202 is coupled to the SLT interface 200
  • Data pumps are well known m the art of modem design Vocoders, such as vocoder 206, are well known in the art of voice/speech processmg Vocoder 206 performs voice encodmg and decoding
  • Server modem SMI may exchange (a) data modulated analog signals with the user computer system 102 through trunk lme 107-1, (b) analog voice signals with a voice co ⁇ espondent through station lme 109-1, and (c) LAN/fax data with virtual presence server 108 Server modem SMI may perform multiplexing and demultiplexing operations which provide the remote user with simultaneous voice, fax, and LAN data access
  • the data pump 202 may receive modulated analog signals from the trunk line 107-1 via SLT mterface 200
  • the modulated analog signals are transmitted by the user computer system 102 with the assistance of virtual presence protocol software 170 and V 80 modem 104
  • the data pump 202 demodulates the analog signals to recover a digital data stream
  • the processor 210 receives the digital data stream, identifies data packets within the stream, and determines the type of each data packet
  • the processor 210 forwards LAN-oriented data packets and fax data packets to the virtual presence server 108
  • the virtual presence server 108 forwards the LAN-oriented data to LAN 112, and fax data packets to fax server 126 through LAN 112
  • the processor 210 forwards the voice packets to the vocoder 206
  • the vocoder 206 decompresses the voice packets and converts the decompressed voice data into analog voice signals, which are provided to the PBX 110 on station line 109-1
  • the analog voice signals are forwarded by the
  • the processor 210 notifies the server software (running on the virtual presence server 108) of the reception of va ⁇ ous telephony control messages, such as messages to generate on/off hook conditions on station line 109-1 or trunk lme 107-1, or to perform PBX control functions such as transfernng a call or putting a call on hold Also, the processor 210 notifies the server software of the detection of various telephony events, such as the detection of on/off hook conditions on the station line 109-1 or trunk lme 107-1 or the detection of ringing signals on the station line 109-1 or trunk lme 107-1
  • voice signals from the voice co ⁇ espondent may be forwarded by PBX 110 to station line 109-1
  • the vocoder 206 receives the analog voice signals from station line 109-1 through SLT interface 208
  • the vocoder 206 digitizes, encodes and compresses the analog voice signals into voice packets
  • the processor 210 receives the voice packets from the vocoder 206 and multiplexes the voice packets with LAN-oriented data packets and fax data packets received from the virtual presence server 108 and with telephony control messages
  • the LAN-oriented data packets are received by the virtual presence server 108 from other nodes on the office LAN 112
  • the processor 210 multiplexes the va ⁇ ous types of packets and provides the multiplexed data stream to the data pump 202
  • Data pump 202 modulates the multiplexed data onto analog signals for transmission on trunk lme 107-1 to the remote user's V 80 modem 104
  • control message is one which instructs the virtual presence application 150 (running on the user computer system 102) to ring the telephone 101
  • the server software also sends commands to the processor 210 to perform va ⁇ ous telephony actions, such as to generate on/off hook conditions on the station line 109-1 or trunk line 107-1
  • the server modem SMI may enable the remote user to simultaneously engage in (a) data communications with the office LAN 112, (b) fax transfer through fax server 126, and (c) voice conversation through PBX 112
  • This simultaneous data, fax and voice communication may be performed using a single telephone line 105 at the remote site, thereby savmg the remote user the cost of installing and maintaining a second telephone lme
  • the remote user has access to the full range of PBX telephony features as if he/she were physically present m the office
  • the remote user may place calls, receive calls, transfer calls, place calls on hold, initiate conference calls, etc
  • the remote user may employ the same mechanism for invoking these telephony features as if he/she were using his/her office telephone 120A
  • server modem SMI may need to be configured for synchronous transfer
  • the virtual presence server 108 may negotiate the initial connection with the V 80 modem 104 usmg the
  • the multiplexing, demultiplexing, and fax/telephony control operations are performed in software on the virtual presence server 108
  • the system and method of the present invention is of particular benefit when used in the client-server environment, m which many (often geographically separated and organizationally separated) client modems call into the same server modem SMI at different times In this situation, the cost and logistics of outfitting, maintaining and supporting all the clients with special function modems can be prohibitive
  • the method allows protocols to be provided to a client by software download, and allows multiple protocols to be provided to the same client without risk that conflicts between the protocols will disrupt operation
  • Private Branch Exchange 110 is responsible for providing telephony services to office personnel
  • the virtual presence server 108 is not limited to operation with a PBX
  • the PBX 110 may be replaced by a key system unit (KSU), or a voice switch such as Centrex ® , Plexar*, Essex*, etc
  • KSU key system unit
  • the virtual presence server 108 connects to the call server
  • the term "telephony server” is defined to be any system which performs telephony switchmg services, and thus includes a PBX, a KSU, or voice switch
  • the virtual presence server 108 performs the functions of a call server as well as a virtual presence server
  • the virtual presence server 108 m one embodiment comp ⁇ ses a Signal Computing System Architecture (SCSA) server or a Multi- Vendor Integration Protocol (MVIP) server for performing call management functions as well as virtual presence functions
  • the virtual presence server 108 includes one or more SCSA or MVTP buses which facilitate the communication of digital data between two or more communications devices.
  • SCSA Signal Computing System Architecture
  • MVIP Multi- Vendor Integration Protocol

Abstract

A system and method for implementing an arbitrary protocol such a voice/data multiplexing protocol using a generic modem and protocol software running on a host computer. An existing server-modem may support a special-purpose protocol such as voice and data multiplexing for a virtual presence application. A client computer may access the dedicated server-modem using a standard modem having a standard program interface, especially a V.80 modem, while the corresponding client-side protocol is implemented in software on the client computer. In particular, a virtual presence protocol may be implemented in software on the client computer and may interface to the standard program interface of the client-side modem.

Description

TITLE IMPLEMENTING SPECIAL PROTOCOLS USING STANDARD MODEMS
Field of the Invention The present invention relates to the field of modem-based telecommunication, and more particularly to a system and method for implementing an arbitrary communication protocol (or collection of protocols) through software in conjunction with a standard modem device
Description of the Related Art In the field of modem-based telecommunication, organizations such as the International
Telecommunications Union (ITU) strive to anticipate emerging technologies and define relevant standards for those technologies Recent years have witnessed an evolving range of transport mechanisms such as V 32, V 32bιs, V 34, V 34bιs, and V 90 which support increasing data signaling rates across standard telephone lines (l e analog POTS lines) Other standards provide for the transport of data on ISDN lines, or for special purpose connections such as Digital Subscriber Loop The term tiansport mechanism is used herem to denote a protocol which addresses issues such as signaling rates, modulation, and coding, etc
For example, V 34 defines a protocol for a modem operating at data signaling rates of up to 28800 bits/s for use over dial-up lines or leased lines Some of the fundamental characteristics of a V 34 modem include (a) channel separation using echo cancellation, (b) duplex and half-duplex operational modes, (c) QAM modulation on each channel, and (d) trellis coding V 34bιs provides data signaling rates up to 33600 bits/s with fallback to 31200 bits/s or V 34 transfer rates The more recent V 90 protocol assumes a connection through the PSTN consisting of an analog modem and digital modem pair, and supports signaling rates up to 56000 bits/s downstream (I e from the digital modem to the analog modem), and 33600 bits/s upstream A protocol refers to an agreed upon procedure to control the orderly exchange of information between communicating parties
Chip manufacturers, modem manufacturers/integrators, software developers, and end consumers all benefit from the standardization of communication protocols By building hardware and/or software products conforming to the standardized protocols, each manufacturer provides for interoperability with the products of other manufacturers Consumers generally are more likely to purchase modems and modem-related products when assured of such interoperability Thus, manufacturers have a strong incentive to build modems conforming to the most recent protocol standards which generally support the most advanced set of performance features and highest signaling rates Development of modems conforming to these standards is a major effort However, standardized modems may be marketed at low cost with reasonable expectation of return on the costs of development due to the vast size of the market for standardized modem products Transport mechanisms, since they deal with low-level functionality such as modulation, are very naturally implemented as part of the modem Modems typically include a customized DSP or controller chip for running algorithms which implement the transport mechanisms The embedded DSP allows modern modems to support a wide variety of sophisticated performance features such as auto-dialing, auto-answeπng, signal rate negotiation, automatic rate adaptation to line conditions, etc Other protocols have been developed to support special applications or more specialized user requirements. For example, Digital Simultaneous Voice and Data (DSVD) modems have been developed to support multiplexing of voice (i.e telephony signaling) with data across analog phone lines. Development of these special protocols is also a major effort. However, the market for special protocol modems is relatively small Thus, the development cost on a per unit basis is necessarily high. Furthermore, smce the special protocol has been implemented as part of the modem, each new modem transport mechanism requires a new implementation of the special protocol.
An alternative approach to modem design is represented by so called soft modems. A soft modem reduces the complexity of physical hardware at the expense of performing some of the modem algorithms in software on the host computer. The physical hardware is responsible for implementing a particular transport mechanism, e.g. V.90. The host software component of the soft modem is responsible for performing so called data protocols, and handling issues such as call establishment, data rate negotiation, electrical switching, etc. However, from the point of view of a manufacturer targeting the development of a special protocol, soft modems are problematical: each soft modem will m general have a unique software interface to the transport mechanism hardware Thus, in order to implement a special protocol in conjunction with soft modems, a manufacturer may be faced with the formidable task of developing multiple versions targeting a multiplicity of different soft modems Furthermore, whenever the hardware changes, all the modules implementing the special protocol must necessarily be modified.
In order to implement N different protocols PI, P2, .., PN for L distinct microcontrollers Ml, M2, ..., ML, requires N*L different realizations- each protocol must be separately implemented for each microcontroller due to the uniqueness of microcontroller architectures. The same statement could be made for L distinct soft modems. Furthermore, changes to a microcontroller architecture generally require the hardware and/or software modules realizing all N of the protocols PI, P2, ..., PN to be modified Thus, the complexity of designing multiple protocols on multiple modem platforms is roughly quadratic. Clearly, there exists a substantial need for a new approach to implementing protocols, especially special purpose protocols, in modem-based communication systems In particular, a system and methodology which minimizes the complexity of implementing multiple protocols on multiple modem platforms is needed Furthermore, a system and method is needed for reducing or eliminating the time required to redesign a protocol when the underlying modem transport mechanism is changed
Summary of the Invention
The problems described above are largely resolved by the system and method for implementing communication protocols according to the present invention According to a preferred embodiment of the present invention, a computer system coupled to a standard V.80 modem executes a software protocol program. An arbitrary communication protocol (or collection of communication protocols) may be implemented in the software protocol program Smce the mterface to the modem is defined by a standard, such as the V 80 standard, the software protocol program rapidly expands to multiple operating systems platforms. The communication protocol(s) implemented by the software protocol program may include, e.g., any of the following, or combination thereof
(a) proprietary protocols,
(b) new and evolving standard protocols, which are not generally available for client modems,
(c) obsolescent protocols, which are no longer generally available for client modems; and
(d) special purpose communication protocols
In the category of special purpose communication protocols, this system and method may be used to implement the client side of a virtual presence system In particular, a software protocol module running on the host computer may receive user voice data and non-voice data (LAN-oriented data, fax data, and telephony control data, etc.) and multiplexes these data streams mto a first multiplexed data stream. The multiplexed data stream is provided to the standard, e g V 80, modem for transmission to a virtual presence server through an analog telephone line. In addition, the software protocol module may receive a second multiplexed data stream from the standard, e g V 80, modem which was transmitted by the virtual presence server. The software protocol module demultiplexes the second multiplexed data stream into a voice data stream and one or more non-voice data streams (e.g., a LAN data stream, a telephony control stream, and/or a fax data stream). The voice data stream is decompressed and provided to voice processing hardware such as a sound card for presentation to a speaker. LAN data may be provided to a software application running on the host computer. Fax data may be provided to a fax machine coupled to the host computer, or alternatively, to a fax software application
The host computer may also execute a virtual presence application which presents a graphical user interface which includes a virtual phone The user may place calls, receive calls, transfer calls, etc. using the virtual phone interface The protocol software may allow the user to simultaneously and transparently access LAN data, engage m voice conversations, send/receive faxes. It is noted that the assumption of a V 80-complιant modem is not strictly necessary Any modem with a standardized interface to the host computer suffices In addition, it is noted to that the assumption of an analog telephone medium is not strictly necessary either Namely, any communication medium will suffice as long as the adapting device which intervenes between the host computer and the communication medium has a standardized interface to the host computer The present invention contemplates a communication system comprising a host computer, a first communication device (e g. a modem) and a computer-readable medium The first communication device is coupled to the host computer and to a PSTN The first communication device implements a standard program interface (e g. the V 80 interface) for communicating data which is to be transmitted/received to/from a second communication device across the PSTN. The computer-readable medium is also coupled to the host computer, and stores program instructions that, when executed by the host computer, are configured to implement a special communication protocol The special communication protocol is operable to multiplex real-time data from a real-time data source with non-real-time data from a non-real-time data source into one multiplexed data stream. The special communication protocol is further operable to provide the multiplexed data stream to the first communication device usmg the standard program interface, wherem the multiplexed data stream is provided for transmission to the second communication device.
Real-time data may include, e.g., digitized voice data and/or telephony control data. For example, a virtual presence application such as the Be There!™ application manufactured by DATA RACE®, Inc., displays a virtual telephone interface to a user for controllmg the initiation and reception of virtual telephone calls through a communication device such as a modem Examples of non-real-time include the data streams generated by software applications such as, e.g., an Internet browser, an email client, a fax software application, etc., or any combmation thereof. Non-real-time data may also include fax transmission data generated by a fax machme coupled to the host computer
Brief Description of the Drawings
A better understanding of the present invention can be obtained when the vaπous embodiments of the following detailed description is considered in conjunction with the following drawings, m which-
Fig. 1 illustrates a protocol implemented in software on a host computer m connection with a standard modem;
Fig. 2 illustrates a virtual presence system accordmg to the present invention, wherem a remote client may dial mto a virtual presence server to invoke virtual presence, e.g. transparent and automatic voice, fax, data connectivity to an office environment;
Fig. 3 is a screenshot of a graphical user interface for a virtual presence application which mcludes a virtual telephone for placmg calls, receiving calls, and performing other telephony functions;
Fig. 4 is a block diagram of a client-side implementation of a virtual presence protocol m software on the host computer, where the protocol software interacts with a standard modem;
Fig. 5 is another block diagram of the virtual presence system which highlights the connectivity of the virtual presence server and server modems coupled to the virtual presence server; and Fig. 6 is a block diagram of a server modem configured for use in the virtual presence server, and its immediate connections to the PSTN, PBX, and virtual presence server
While the mvention is susceptible to vaπous modifications and alternative forms, specific embodiments are shown by way of example in the drawmgs and will herein be described in detail. It should be understood however, that the drawmgs and detailed description thereto are not intended to limit the mvention to the particular forms disclosed. But on the contrary the invention is to cover all modifications, equivalents and alternatives following within the spiπt and scope of the present invention as defined by the appended claims.
Detailed Description of the Preferred Embodiment
The present invention comprises a new approach to implementing protocols m communication systems, especially modem-based communication systems, which is less susceptible to changes m modem transport mechanisms, and which easily expands to multiple modem platforms In a preferred embodiment of the present mvention, a special voice/data multiplexing protocol is implemented in software on the host computer in conjunction with a standard V.80 modem. The International Telecommunication Union (ITU) has adopted the H.324 standard for video conferencmg over analog telephone lines H.324 specifies a standard method for video conferencmg applications to interface with modems. This method is codified in the V 80 standard. Thus, a prospective manufacturer of video conferencmg software may design and test with respect to a smgle modem interface which greatly reduces the development time for the video conferencmg software. Modem manufacturers are strongly motivated to provide modems conforming to V.80 in view of the market potential of H.324 video conferencmg products.
While V.80 was conceived as part of the H.324 protocol stack which targets video conferencing applications, the V.80 standard interface need not be constrained to H.324 framework. According to the present invention, the standardized interface provided by V 80 may be used to support the unplementation of an arbitrary protocol in software on the host computer The software modules embodying the protocol may be designed and tested against the V 80 interface thereby speeding the tune to market of the software protocol. Consumers may thereby be afforded the opportunity to purchase software products implementing any desired protocol in conjunction with a V 80 modem. Thus, one embodiment of the present invention compπses implementing an arbitrary protocol (which may have nothing to do with video conferencmg) in software on a host computer, wherem the software assumes a V 80 (or other standard) modem interface, as illustrated by Figure 1
Fig.1 : Software Protocol m Conjunction with Standard Modem In the embodiment of Figure 1, protocol software 20 running on a host computer communicates with an arbitrary modem conforming to the V 80 standard (or other standard), i.e. modem 30. The protocol software 20 implements an arbitrary protocol (or collection of protocols) beyond those already implemented m the V.80 modem 30 Because the V 80 modem has the well defined interface given by the V.80 specification, the protocol software may be optimized to exploit this interface By layering an additional protocol in software interfaced to a single standardized interface, a new protocol may be more rapidly developed and tested. The existence of a special software protocol 20 mterfaced to the standardized V 80 interface simplifies or eliminates the need to develop multiple versions for a multiplicity of distinct and non-standard modem interfaces.
It is noted that V.80 modems are ubiquitously available in the consumer market at reasonable cost. Thus, by purchasmg a V.80 modem and protocol software 20, a consumer may realize a desired communication function at significantly less expense than if a specialized modem incorporating the equivalent functionality were purchased. Updates to the protocol software 20 are easily provided. Furthermore, the functionality of protocol software 20 is retamed even if modem 30 is replaced or upgraded as long as the replacement/upgrade modem is V.80 compliant (or compliant with whatever standard protocol software 20 is designed to communicate with). For example, a user may desire to replace modem 30 when new high-speed transport mechanisms become available For the person already possessmg a V.80 modem, the ability to add communication functionality by the purchase of a low-cost software protocol module 20 to add the desired functionality is strongly compelling.
Protocol software 20 may implement one or more standardized protocols or non-standardized protocols such as, for example, any of the following, or combination thereof:
(a) proprietary protocols,
(b) new and evolving standard protocols, which are not generally available for client modems; (c) obsolescent protocols, which are no longer generally available for client modems; and
(d) special purpose communication protocols In the category of standardized protocols, protocol software 20 may implement, e.g., the V.42 data compression protocol and/or the V.42 error correction protocol.
Protocol software 20 may be configured to communicate with an operatmg system (not shown) such as Windows NT*", Windows* 95, Linux*, Sun* OS, etc. It is noted that a manufacturer may rapidly develop versions of protocol software 20 for several different operating systems smce the added complexity of designmg for multiple non-standard modem interfaces has been eliminated
The V.80-comphant modem 30 may couple to the PSTN 40 through an analog phone lme 35 (also known as a POTS line) The V 80 modem 30 may implement a transport mechanism such as V.34bιs or V.90. It is observed that the V.80 modem 30 may be a soft modem In this case, the V 80 modem 30 includes a software component which executes on the host computer, and the mterface 25 between protocol software 20 and the V.80 modem 30 may be a software interface to the software component.
Fig. 2: A Virtual Presence System In the preferred embodiment of the present invention, the protocol software 20 is used to implement the client side of a virtual presence system as shown in Figure 2. A remote user situated at computer system 102 connects to an office environment through a V 80-comphant modem 104 (or other standardized modem) The office environment may include a virtual presence server 108 which may be coupled to the PSTN 106 through telephone lmes 107 The virtual presence server 108 may extend to the remote user the illusion of bemg in the office: the remote user may have simultaneous access to the data services of local area network 112 and the telephony services of PBX 110 When connected to the virtual presence server 108, the user computer system 102 may behave as if it were a node of local area network 112 just like physically resident LAN nodes 116A, 116B, and 116C. Furthermore, the remote user may be presented with a virtual phone through a graphical user interface running on computer system 102 The virtual phone may behave as if it were an office telephone extension just like physically resident office telephones 120A, 120B, and 120C. The remote user may therefore simultaneously access any of the processing services offered by LAN 112, and engage in telephone conversations through PBX 110. For example, the remote user may "surf the web" through LAN 112 and simultaneously converse with a colleague situated at one of office telephones 120A through 120C. Virtual presence server 108 routes the data traffic to/from LAN 112, and the voice traffic to/from PBX 110. It is assumed that one of office telephones 120A through 120C, say office telephone 120A, "belongs" to the remote user, l e is assigned for use by the remote user when he/she is physically present in the office When the remote user dials into the virtual presence server 108 through the V.80 modem 104, the virtual presence server 108 may perform a remote access call forwarding operation (RACF) which commands the PBX 110 to forward any subsequent telephone calls targeting (i.e intended for) the remote user's office telephone 120A to the virtual presence server through one of lmes 109. After the forwarding operation, calls from office mates, or calls from third parties 122 outside the office, which initially target the remote user's office telephone 120A are forwarded to the virtual presence server. The virtual presence server 108 forwards these telephone calls to the remote user situated at computer system 102. It is noted that the remote user may disable the call forwarding feature if desired.
Quite often the remote location where the user is situated is equipped with only a single telephone lme. In other words, the telephone lme 105 through which the remote user dials mto the office environment may be the only telephone line available at the remote site. For example, the remote user may be situated m a living space (house, apartment, dormitory, etc.) where only one telephone line is provided. Also, persons traveling quite often find themselves in situations where only one telephone is immediately available such as hotel rooms, airport lobbies, etc.. Thus, while the remote user is connected to the virtual presence server 108 through the single telephone line 105, this telephone line 105 will not be able to receive direct telephone calls. To circumvent this problem, the user computer system 102 may perform a call forwarding operation which commands the PSTN 106 to redirect subsequent calls targetmg (i.e. initially intended for) telephone line 105 to the remote user's office telephone 120A This is preferably achieved by performing a redirect-on-busy operation. Thus, calls targeted for (i.e. initially dialed for) the number of telephone line 105 may be forwarded by the PSTN to the PBX 110 with an indication of the remote user's office telephone number. The PBX 110 then forwards the telephone call (smce the RACF operation discussed above is in force) to the virtual presence server 108. Finally, the virtual presence server 108 forwards the telephone call to the remote user situated at computer system 102. Thus, the remote user may be able to receive telephone calls dialed for telephone lme 105 even when telephone line 105 is being used to access the virtual presence server 108
The virtual phone which is graphically presented to the remote user on the monitor of computer system 102 may be configured to emulate any of a variety of standard models for office telephones or telephony devices. For example, the remote user may configure the virtual phone to resemble his/her office phone 120A for ease of use. Alternatively, the remote user may configure to the virtual phone to provide different and/or more advanced features than his/her office telephone 120A Figure 3 illustrates the graphical user interface for the virtual phone according to one embodiment executmg under the Windows' 95 operatmg system. Using the virtual phone, the remote user may engage in voice conversations with other office mates or external third parties 122 (i.e. persons external to the office environment) If the remote user dials an office mate who is also remote connected to the virtual presence server 108, the virtual presence server 108 may automatically and transparently redirect the call to the remotely connected office mate. Similarly, if an office mate or external third party 122 dials the remote user's office number (i.e. the number assigned to the remote user's office telephone 120A), the virtual presence server 108 may automatically and transparently redirect the call to the remote user through the remote connection. Typically, a person physically located m the office environment dials a local extension number or direct inward dialing (DID) number to call an office mate at one of office telephones 120A through 120C. The local extension number is generally an N-digit abbreviation of the of the corresponding full telephone number. Accordmg to the present invention, the remote user may dial the local extension number of an office mate m the office environment, just as if the remote user were physically located m the office environment Similarly, an office mate in the office environment may dial the local extension of the remote user and accesses the remote user, just as if the remote user were physically located in the corporate office.
Local area network 112 includes a collection of LAN nodes 116A through 116C. It is noted that LAN nodes 116A through 116C represent an arbitrary plurality of LAN nodes. Similarly, office telephones 120A through 120C represent an arbitrary plurality of office telephones. LAN 112 may have any desired topology: the linear topology shown in Figure 2 is for pictorial convenience only LAN 112 may use Ethernet, Token Ring, or other types of network protocol. The LAN 112 may also use the Isochronous Ethernet (IsoEthernet) protocol (given by the IEEE 802.9a specification) The LAN nodes may represent client computers or servers such as file servers, print servers, application servers, modem servers, etc Firewall 114 couples to the Internet 118 and LAN 112, and limits access to the LAN 112 by external parties accessing the LAN through the Internet. Virtual presence server 108 is coupled to LAN 112 as well as PBX 110.
The office environment may be a corporate office or place of busmess. More generally, the office environment represents any establishment having access to a PBX and a computer network. In one embodiment of the invention, the office environment is an Internet Service Provider (ISP). In this case, the virtual presence server 108 enables the ISP to extend voice telephony services to its subscribers in addition to Internet access.
User computer system 102 is illustrated m Fig. 2 as being a personal computer. However, it is understood that user computer system 102 may be any realized by any of various types of computers. For example, a person travelling on a busmess trip is more likely to have a portable or laptop computer than a desktop personal computer. In other embodiments, user computer system 102 may be substituted by communication devices such as a personal digital assistant (PDA) or a cellular phone, as desired
V.80 modem 104 is illustrated in Fig. 2 as being an external modem However, it should be understood that V.80 modem 104 may assume a variety of forms For example, V.80 modem 104 may be a modem card configured for insertion into an expansion bus slot of user computer system 102 Alternatively, V.80 modem 104 may be a soft modem which includes both a software component which runs on the host and a hardware module. In the case that computer system 102 is a laptop computer or portable computer, the V.80 modem 104 may be may be configured as a PCMCIA card to be inserted mto a PCMCIA slot of the laptop computer It is also noted that modem 104 is discussed as a V.80 standard modem as a prefeπed embodiment. However, modem 104 may be designed for other standards as well.
V.80 modem 104 may couple to the PSTN 106 through an analog phone lme 105 (i.e. a POTS lme). Virtual presence server may coupled (a) to the PSTN through multiple phone lmes 107, and (b) to the PBX 110 through multiple lines 109, in order to support virtual presence for a plurality of remote users.
PBX 110 may be coupled to the PSTN through multiple phone lines 111. PBX 110 is configured to provide telephony services to office personnel For example, office personnel situated at office telephones 120A through 120C may initiate telephone calls or mtercomm dialogs with each other, or may place and receive calls to/from external third parties 122. In an mtercomm dialog, an office personnel B situated at one of the office telephones, say office telephone 120B, dials the extension of office personnel C situated at office telephone 120C. In response to this dialing, PBX 110 establishes an audio connection between the two office telephones. C may not need to pickup his/her handset for the connection to be established. Each office telephone is preferably equipped with a speaker and microphone apart from those already resident withm the telephone handsets to support this mtercomm feature. Thus, C's voice may be picked up by C's microphone and transmitted to B, while B's voice may be transmitted to C's speaker Of course, C may choose to pick up his/her handset for privacy or out of courtesy to others.
It is noted that PBX 110 may be a service, such as Centrex* or Plexar8, provided by the local telephone company, with the equipment located at the telephone company's switch
In a sumlar fashion, user computer system 102 may be coupled to a physical telephone, handset or headset (not shown) in order to redirect mtercomm dialogs to the handset for the sake of privacy or out of courtesy to others in the vicinity of computer system 102. For example, by picking up the handset, the mtercomm dialog may be redirected to the handset. The remote user may place a telephone call (or mtercomm dialog) to an office mate or external third party 122 using the graphical user interface provided with the virtual phone (see Figure 3). In order to actually dial the digits of the a phone number to be called there are a variety of alternatives. The mouse may be used to select digits on the virtual keypad. The remote user may type a phone number on the keyboard of computer system 102, or select a phone number from a call list or phone book displayed by the virtual phone. If a physical telephone is coupled to the user computer system 102, the remote user may use the physical telephone in typical fashion by lifting the handset and dialing digits on the keypad of the physical telephone. In one alternative embodiment, the remote user may verbally recite the digits of the telephone number into a microphone: voice recognition software running on the user computer system 102 decodes the digits.
Fig. 4 Software Protocol Client for Virtual Presence
In order to support the delivery of virtual presence to the remote user, computer system 102 may execute a virtual presence application 150 and a virtual presence protocol component 170 as shown in Figure 4 The virtual presence application 150 may present the remote user with a graphical user interface which may include the virtual phone depicted in Figure 3 In response to user inputs (or lack thereof), the VP application 150 communicates with telephony control module 160 m the VP protocol component 170
User computer system 102 preferably includes a sound card (not shown) which may be coupled to a microphone and speaker. The microphone and speaker may allow the remote user to converse with others through the remote connection, i.e. the connection achieved by V.80 modem 104, analog phone lme 105, PSTN 106, one of phone lines 107, and virtual presence server 108. The user speaks into the microphone. The microphone transduces the user's voice mto an analog voice signal. The sound card digitizes the analog voice signal. The digitized voice stream is supplied to the speech compression/decompression module 162 of the VP protocol component 170. Conversely, the speech compression/decompression module 162 supplies a stream of voice samples which represent the correspondent's voice. (The correspondent is the person to whom the user is talking ) It is noted that the virtual presence system may support voice conferencing. Thus, the user may actually be conversing with multiple coπespondents while simultaneously engagmg m data communication with through LAN 112. The coπespondent's voice stream may be supplied to the sound card The sound card converts the coπespondent's voice stream into an analog signal which is then fed to the speaker so the remote user can then hear the coπespondent. A sound card embodies one mechanism for transducing a user's voice excitation mto a digitized voice stream However, many other mechanisms may be employed Any such mechanism will be refeπed to herem as a sound transducing mechanism
Through the same remote connection, the remote user may engage in data communication with nodes on LAN 112 Consider the following examples The remote user may invoke (a) a web browser to "surf the web", (b) an email client to check email, (c) an internet telephony (VoIP) application to talk to others through the office LAN 112, (d) a file manager to access file servers on LAN 112, etc The data communication and voice telephony may occur simultaneously through the same remote connection to the virtual presence server 108 Software application 158 represents an arbitrary application which is configured engage in data communication For example, software application 158 may be an Internet browser, an email client, a fax software application, etc Software application 158 exchanges data packets with remote access client 156 Remote access client 156 acts in conjunction with a remote access server (running on virtual presence server 108), and provides the software application 156 with a transparent connection to LAN 112 The remote access client 156 may send and receive data to/from a virtual COM port 157
Data compression/decompression module 164 may also be coupled to remote access client 156 Data compression/decompression module 164 receives the data sent by remote access client 156, and compresses this data according to, e g , the V 42bιs compression protocol The compressed data stream may be supplied to eπor coπection module 166 Conversely, data compression/decompression module 164 may receive from eπor coπection module 166 a stream of eπor-coπected data, and decompress the eπor-coπected stream according to, e g , the V 42bιs protocol The decompressed data stream may be supplied to virtual COM port 157 for access by the software application 158
Eπor coπection module 166 may receive the compressed data stream from data compression/decompression module 164, and incorporate eπor coπection information to the compressed data stream according to, e g , the V 42 protocol The eπor coπection information assists the virtual presence server 108 m coπectmg eπors m transmission of the compressed data stream Conversely, eπor coπection module 166 may perform eπor coπection according to, e g , the V 42 protocol on a data stream received from packet multiplexer/demultiplexer 168
The VP protocol component 170 compπses a system of software modules which execute on computer system 102 The VP protocol component 170 may include telephony control module 160, speech compression/decompression module 162, data compression decompression module 164, eπor coπection module 166, and packet multiplexer/demultiplexer 168 VP protocol component 170 is responsible for implementing the client side of a virtual presence protocol
Telephony control module 160 communicates with the virtual presence application 150 Telephony control module 160 may send telephone control packets to packet multiplexer m response to commands sent by virtual presence application 150 Conversely, telephony control module 160 may send commands to virtual presence application 150 in response to telephony control packets received from packet multiplexer 168
Speech compression decompression module 162 receives the user digitized voice stream 152 and may apply speech compression according to, e g , the TrueSpeech or G 729 algorithm The compressed speech packet stream is supplied to packet multiplexer/demultiplexer 168 In the reverse direction, speech compression/decompression module 162 may receive a stream of compressed stream packets from the packet multiplexer/demultipler 168, and decompress the compressed stream accordmg to, e.g., the TrueSpeech or G.729 algorithm. The decompression step recovers the coπespondent's voice signal 154. As mentioned above, the coπespondent's voice signal 154 may be supplied to a sound card for output to the remote user.
Packet multiplexer 168 may receive (a) the outgoing telephony control stream generated by telephony control module 160, (b) the compressed speech packets generated by speech compression/decompression module 162, and (c) the data stream provided by eπor coπection module 166, and multiplexes these three streams. The multiplexed packet stream is supplied to standard (e.g V 80) modem 104. Standard V.80 modem 104 may modulate an analog signal with the multiplexed data and transmit the multiplexed stream to the virtual presence server 108 through analog phone lme 105, PSTN 106, and one of phone lines 107. In the reverse direction, virtual presence server 108 may transmit a second stream of multiplexed packet data to V.80 modem 104 through the same remote connection. The second stream of multiplexed packets may contam a pseudo-random mixture of telephony control packets, compressed speech packets, and data packets The second stream of multiplexed packets is supplied to packet multiplexer/demultiplexer 168. Packet multiplexer/demultiplexer 168 demultiplexes the second stream, telephony packets are sent to telephone control module 160; compressed speech packets are sent to speech compression/decompression module 162, data packets are sent to eπor coπection module 166
Concuπent Fax Service
In addition to simultaneous independent voice and data (i.e. LAN) access, the virtual presence client 102 may provide concuπent fax transmission service over the same V 80 modem-connection to the virtual presence server 108. The remote user may send or receive fax transmissions while accessing the office LAN 112 and engagmg in a voice conversation. For example, the remote user may be engaged m a voice conversation with a third party 122 while accessing the Internet through LAN 112 and receiving a fax transmission from a fax source. The fax source may be a fax machine 123 coupled to the PBX 110, an external fax machine 124 connected to the PSTN, or a node of LAN 112. In addition to receivmg fax transmissions, user computer system 102 may send fax transmissions To this end, the remote user may have a remote fax machine 100 coupled to computer system 102. Also, the user computer system 102 may be configured with fax software which allows the computer system 102 to emulate a fax machme in conjunction with V.80 modem 104. With such fax software, the physical fax machine 100 may not be necessary. The fax software is especially beneficial for persons travelling and without immediate access to a fax machine. The fax software also may have a graphical user interface to support dialing a destmation fax number. It is noted that the fax software may be mtegrated with the virtual phone software, or may be an mdependent application. When the user computer system 102 dials mto the virtual presence server 108, the virtual presence server 108 may command the PBX to forward the user's office telephone number to itself as descπbed above In addition, the virtual presence server 108 may perform a remote access call forwarding (RACF) operation which commands the PBX 110 to forward subsequent telephone calls intended for the user's fax machme 123 to a fax server 126 After the RACF operation, a subsequent call intended for the user's fax machme 123 to forwarded by PBX to the fax server 126. The fax server 126 receives the call and the ensumg fax transmission. The fax server 126 forwards the fax transmission data to the virtual presence server 108 through LAN 112. The virtual presence server 108 forwards the fax transmission data to user computer system 102. The virtual presence server 108 may multiplex the fax transmission data with (a) a voice stream separately received from PBX 1 10, (b) a telephony control stream which mediates the extension of PBX functionality to the remote user, and (c) a data stream received from LAN 112 Thus, fax calls intended for the user's office fax machme 123 are transparently and automatically forwarded to the remote user.
The user computer system 102 receives the multiplexed stream and demultiplexes it mto the vaπous component streams. As shown in Figure 4, virtual presence protocol software 170 performs the demultiplexing function. Telephony control packets are supplied to telephony control module 160 Voice packets are supplied to the speech compression/decompression module 162. Fax transmission data and LAN data packets are supplied to data eπor coπection module 166 Eπor coπection may be followed by decompression m data compression/decompression module 164. Decompressed fax data packets and LAN data packets may be provided to the remote access client 156 (e g. Wmsock) The fax data packets may be forwarded by the remote access client to fax machine 100 or to a fax software application (not shown) The decompressed LAN data packets are supplied to software application 158 Examples of LAN data packets include email packets, Internet Protocol (IP) packets, etc
Fax server 126 may couple to PBX 110 through telephone lines 125 in order to support multiple incoming or out-gomg fax transmissions In addition, fax server 126 couples to LAN 112 Fax server 126 may include memory for stormg received fax transmissions, and a plurality of fax modems receiving or transmitting fax data on telephone lines 125
As mentioned earlier, the user computer system 102 may perform a call forwarding operation which commands the PSTN to forward telephone calls intended for telephone line 105 to the user's office telephone number This was discussed m connection with forwarding voice telephone calls to the remote user through the PBX and virtual presence server 108, l e voice telephone calls dialed for the number of telephone lme 105 when telephone line 105 is engaged with the connection to the virtual presence server 108 However, it is noted that this forwarding operation may also enable fax calls dialed for the number of telephone lme 105 to be forwarded to the remote user as follows. Just like voice telephone calls, fax calls directed to (dialed for) telephone lme 105 may be forwarded by the PSTN to the PBX 110 with an indication of the user's office telephone number. The PBX forwards the fax call to the virtual presence server 108 through one of lines 109 The virtual presence server 108 goes off hook to answer the fax call The virtual presence server detects that the call is fax oriented preferably via a CNG signal In response to this detection of a fax-oriented call, the virtual presence server commands the PBX to transfer the fax call to fax server 126. The fax server 126 receives the ensuing fax transmission from the fax source and forwards the fax transmission data to the virtual presence server 108 The virtual presence server may multiplex the fax transmission data with a voice telephony stream, a telephony control stream, and/or a LAN data stream as described above The multiplexed stream is sent to the user computer system 102 through the remote connection User computer system 102 (i.e. virtual presence protocol component 170) recovers the fax data from the multiplexed stream and supplies the fax data to fax machine 100 or to a fax software application (not shown) running on user computer system 102 Thus, fax calls intended for the number of telephone line 105 are forwarded to the remote user through PBX 110, fax server 126, and virtual presence server 108.
In addition to receiving fax transmissions, user computer system 102 may send fax transmissions to any desired fax destination. Usmg either fax machme 100 or a virtual fax application, a stream of fax data may be generated. The fax data may be supplied to remote access client 156 Also, a software application 158 may supply the remote access client with a stream of LAN-oriented data, i.e. data which targets LAN 112. Remote access client 156 may provide the fax data and LAN-oriented data to data compression/decompression module 164 through virtual COM port 157. Data compression/decompression module 164 applies a data compression algorithm to the fax data packets and LAN-oriented data packets preferably accordmg to the V.42bιs standard. The compressed fax packets and compressed LAN-oriented data packets may be sent to eπor coπection module 166 where an eπor coπection algorithm is applied, preferably according to the V.42 standard. Packet mux/demux 168 may multiplex (a) a telephony control stream received from telephony control module 160, (b) the user's compressed voice stream received from speech compression module 162, (c) the compressed LAN- oriented data stream, and (d) the compressed fax data stream from eπor coπection module 166. The multiplexed stream may be sent to the virtual presence server 108 through V.80 modem 104
The virtual presence server 108 demultiplexes the multiplexed stream received from user computer system 108. The fax stream may be eπor coπected (e g. V 42) and decompressed (e.g V.42bιs), and sent to fax server 126. Fax server 126 supplies the fax data or a coπespondmg fax signal to PBX 110 through one of lines 125. PBX 110 supplies the fax signal to the fax destmation. The fax destination may be fax machme 123 which is internal to the office environment Alternatively, the fax destmation may be an external fax machme coupled to the PSTN such as fax machine 124 In this case, the PBX supplies the fax signal to the external fax machine 124 through the PSTN and one of lines 111 Also, since fax server 126 is coupled to LAN 112, it may supply the fax data to another node on LAN 112. For example, computer 116A may include virtual fax software which enables it to receive fax, store, and display fax data. Thus, fax server 126 may transmit the fax data to computer 116A through LAN 112 Similarly, fax server 126 may transmit the fax data to a node of the Internet 118
Virtual Presence Server
The virtual presence server 108 preferably comprises a high-performance computer system which connects to LAN 112 and office PBX 110 as shown in Figure 5. The virtual presence server 108 preferably executes the Wmdows NT* operating system, and thus comprises a Windows NT* server. Alternatively, the virtual presence server 108 may run the UNIX* operating system or any other suitable operating system. The virtual presence server 108 may couple to a plurality of server modems SMI through SM3. It is noted that the three server modems SMI through SM3 represent an arbitrary plurality. The server modems are preferably configured as expansion cards for insertion mto expansion bus slots of the virtual presence server 108.
Alternatively, the server modems may be configured for coupling to I/O ports of the virtual presence server 108
The virtual presence server 108 may be coupled to the PSTN through a plurality of analog telephone lines 107 which are typically refeπed to as trunk lines The virtual presence server may be coupled to office
PBX 110 through a plurality of lines 109 commonly refeπed to as station lines PBX 110 may be coupled to a central office (not shown) of the PSTN through a plurality of telephone lmes 111. In an alternate embodiment, the PBX 110 such as a Plexar* system, may reside in a Central Office (CO) of the PSTN rather than m the office environment.
In the prefeπed embodiment, the plurality of trunk lines 107 may be configured as a hunt group. Preferably, the user computer system 102 calls a telephone number associated with the hunt group, and the PSTN rotors the call to the first non-busy line of trunk lines 107
Server software executmg on the virtual presence server 108 controls the server modems to perform vanous functions as will be described below. Preferably, the server modems have status and control registers accessible by the virtual presence server 108 via I/O-mapped or memory-mapped addresses The server modems further include memory, such as RAM, which is accessible by the virtual presence server 108 via memory-mapped addresses The virtual presence server 108 reads and wπtes the status and control registers and memory to control the server modems Furthermore, the server modems may generate one or more interrupt request signals to the virtual presence server 108 to notify the virtual presence server 108 of various events For example, the reception of telephony control messages from the remote user computer system 102 typically evokes an interrupt to the virtual presence server 108
Server Modem Architecture
Figure 6 illustrates the architecture of a representative one of the server modems, say server modem SMI, according to the prefeπed embodiment Server modem SMI may be a specially developed hardware unit which supports the virtual presence protocol Server modem SMI may be connected to the PSTN through one of analog trunk lines 107 denoted with the label 107-1 Server modem SMI may also be connected to the PBX (or to a functional equivalent in the Central Office of the PSTN) through one of analog station lines 109 denoted with the label 109-1 Server modem SMI may include a processor 210 coupled to (a) a first smgle lme telephone (SLT) interface 200, (b) a data pump 202, (c) memory 204, (d) vocoder 206, and (e) a second SLT interface 208
SLT interface 200 couples to the PSTN 106 through trunk line 107-1, while SLT mterface 208 couples to the PBX 110 (or PSTN) through station line 109-1 The SLT interfaces 200 and 208 present interfaces which appear to the PSTN and PBX respectively substantially like standard telephones In the prefeπed embodiment, the processor 210 is operably coupled to the virtual presence server 108 by an expansion bus, such as an Industry Standard Architecture (ISA) or Peripheral Component Interconnect (PCI) bus, through bus mterface circuitry. The processor 210 receives data from and sends data to the virtual presence server 108. The processor 210 comprises any processor device which is capable of executmg a stored program of instructions For example, processor 210 may be an embedded microcontroller
The processor 210 receives status information from the SLT mterfaces 200 and 208 regardmg events such as detection of ringing voltages and the reception of DTMF tones on trunk lme 107-1 and station line 109- 1 respectively The processor 210 controls the SLT interfaces 200 and 208 to perform actions such as generating on off hook conditions and generating DTMF tones on trunk lme 107-1 and station lme 109-1 respectively. Memory 204 may store program code for processor 210 and may buffer data m support of multiplexing, demultiplexing, and data transfer operations Thus, a portion of memory 204 may compπses RAM which is accessible to the virtual presence server 108 via memory-mapped addresses The data pump 202 is coupled to the SLT interface 200 Data pumps are well known m the art of modem design Vocoders, such as vocoder 206, are well known in the art of voice/speech processmg Vocoder 206 performs voice encodmg and decoding
Server modem SMI may exchange (a) data modulated analog signals with the user computer system 102 through trunk lme 107-1, (b) analog voice signals with a voice coπespondent through station lme 109-1, and (c) LAN/fax data with virtual presence server 108 Server modem SMI may perform multiplexing and demultiplexing operations which provide the remote user with simultaneous voice, fax, and LAN data access
During operation of server modem SMI, the data pump 202 may receive modulated analog signals from the trunk line 107-1 via SLT mterface 200 The modulated analog signals are transmitted by the user computer system 102 with the assistance of virtual presence protocol software 170 and V 80 modem 104 The data pump 202 demodulates the analog signals to recover a digital data stream The processor 210 receives the digital data stream, identifies data packets within the stream, and determines the type of each data packet The processor 210 forwards LAN-oriented data packets and fax data packets to the virtual presence server 108 The virtual presence server 108 forwards the LAN-oriented data to LAN 112, and fax data packets to fax server 126 through LAN 112 The processor 210 forwards the voice packets to the vocoder 206 The vocoder 206 decompresses the voice packets and converts the decompressed voice data into analog voice signals, which are provided to the PBX 110 on station line 109-1 The analog voice signals are forwarded by the PBX 110 to the voice coπespondent The voice coπespondent may be using one of office telephones 120, or may be usmg a telephone coupled to the PSTN
In the prefeπed embodiment, the processor 210 notifies the server software (running on the virtual presence server 108) of the reception of vaπous telephony control messages, such as messages to generate on/off hook conditions on station line 109-1 or trunk lme 107-1, or to perform PBX control functions such as transfernng a call or putting a call on hold Also, the processor 210 notifies the server software of the detection of various telephony events, such as the detection of on/off hook conditions on the station line 109-1 or trunk lme 107-1 or the detection of ringing signals on the station line 109-1 or trunk lme 107-1
Concuπently and in the reverse direction, voice signals from the voice coπespondent may be forwarded by PBX 110 to station line 109-1 The vocoder 206 receives the analog voice signals from station line 109-1 through SLT interface 208 The vocoder 206 digitizes, encodes and compresses the analog voice signals into voice packets The processor 210 receives the voice packets from the vocoder 206 and multiplexes the voice packets with LAN-oriented data packets and fax data packets received from the virtual presence server 108 and with telephony control messages The LAN-oriented data packets are received by the virtual presence server 108 from other nodes on the office LAN 112 The processor 210 multiplexes the vaπous types of packets and provides the multiplexed data stream to the data pump 202 Data pump 202 modulates the multiplexed data onto analog signals for transmission on trunk lme 107-1 to the remote user's V 80 modem 104 In one embodiment, the multiplexed data streams transmitted between the user computer system 102 and virtual presence server 108 comprise IP (Internet Protocol) packets In the prefeπed embodiment, the processor 210 sends control messages to the user computer system
102 in response to commands from the server software An example of a control message is one which instructs the virtual presence application 150 (running on the user computer system 102) to ring the telephone 101 The server software also sends commands to the processor 210 to perform vaπous telephony actions, such as to generate on/off hook conditions on the station line 109-1 or trunk line 107-1
Thus, the server modem SMI may enable the remote user to simultaneously engage in (a) data communications with the office LAN 112, (b) fax transfer through fax server 126, and (c) voice conversation through PBX 112 This simultaneous data, fax and voice communication may be performed using a single telephone line 105 at the remote site, thereby savmg the remote user the cost of installing and maintaining a second telephone lme Furthermore, the remote user has access to the full range of PBX telephony features as if he/she were physically present m the office For example, the remote user may place calls, receive calls, transfer calls, place calls on hold, initiate conference calls, etc Advantageously, the remote user may employ the same mechanism for invoking these telephony features as if he/she were using his/her office telephone 120A Since server modem SMI communicates with V 80 modem 104, server modem SMI may need to be configured for synchronous transfer The virtual presence server 108 may negotiate the initial connection with the V 80 modem 104 usmg the digital V 8bιs protocol, rather than the cuπently conventional V 8 protocol Also, conventions such as ISO asynchronous HDLC may be used to convert from asynchronous data to synchronous data In an alternative embodiment, the server modem SMI is a standard V 80 modem just like modem 104
The multiplexing, demultiplexing, and fax/telephony control operations are performed in software on the virtual presence server 108
The system and method of the present invention is of particular benefit when used in the client-server environment, m which many (often geographically separated and organizationally separated) client modems call into the same server modem SMI at different times In this situation, the cost and logistics of outfitting, maintaining and supporting all the clients with special function modems can be prohibitive The method allows protocols to be provided to a client by software download, and allows multiple protocols to be provided to the same client without risk that conflicts between the protocols will disrupt operation
In the office environment of Fig 2, Private Branch Exchange 110 (PBX) is responsible for providing telephony services to office personnel However, the virtual presence server 108 is not limited to operation with a PBX The PBX 110 may be replaced by a key system unit (KSU), or a voice switch such as Centrex®, Plexar*, Essex*, etc In embodiments where the office environment includes a call server instead of a conventional PBX, the virtual presence server 108 connects to the call server In the present disclosure, the term "telephony server" is defined to be any system which performs telephony switchmg services, and thus includes a PBX, a KSU, or voice switch
In one embodiment, the virtual presence server 108 performs the functions of a call server as well as a virtual presence server For example, the virtual presence server 108 m one embodiment compπses a Signal Computing System Architecture (SCSA) server or a Multi- Vendor Integration Protocol (MVIP) server for performing call management functions as well as virtual presence functions That is, the virtual presence server 108 includes one or more SCSA or MVTP buses which facilitate the communication of digital data between two or more communications devices.
Although the system and method hereindescribed have been described in connection with the prefeπed embodiment, it is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the invention as defined by the appended claims.

Claims

Claims
1. A communication system compπsmg: a host computer; a first communication device coupled to the host computer and to a PSTN, wherein said first communication device implements a standard program interface for communicating data to be transmitted/received to/from a second communication device across the PSTN; and a computer-readable medium coupled to the host computer, wherem said computer-readable medium stores program instructions that, when executed by said host computer, are configured to implement a special communication protocol operable to: multiplex first real-time data from a real-time data source with first non-real-time data from a non-real-time data source mto one multiplexed data stream; and provide said multiplexed data stream to said first communication device usmg said standard program mterface, wherein said multiplexed data stream is provided for transmission to said second communication device
2. The communication system of claim 1, wherem said standard program mterface comprises a V.80- comp ant mterface.
3. The communication system of claim 1 or 2, wherein said first communication device comprises a
V.80-comphant modem.
4. The communication system of any of claims 1-3, wherein said real-time data source comprises a virtual presence application, wherein said virtual presence application compπses program instructions stored on said computer-readable medium that, when executed by said host computer, display a virtual telephone interface to a user for controllmg the initiation and reception of telephone calls through said first communication device, wherem said first real-time data compπses telephony control mformation provided by said virtual presence application.
5. The communication system of any of claims 1-3, wherein said real-time data source compπses a sound transducing system which is configured to receive voice excitation and to generate a digitized voice stream from said voice excitation, wherein said first real-time data comprises said digitized voice stream.
6. The communication system of any of claims 1-5, wherein said first non-real-time data source comprises a software application executing on said host computer.
7. The communication system of any of claims 1-6, wherem a virtual presence server coupled to said second communication device is operable to: receive said multiplexed data stream from said second communication device; demultiplex said multiplexed data stream; and provide said first real-time data to a real-time data destination and said first non-real-time data to a non-real-time data destmation.
The communication system of claim 7, wherem said virtual presence server is further operable to: multiplex second real-time-data from said real-time data destmation with second non-real-time data from said non-real-time data destination mto a second multiplexed data stream; provide said second multiplexed data stream to said second communication device for transmission to said first communication device
9 The communication system of any of claims 1-6, wherein said special communication protocol is further operable to: receive a second multiplexed data stream from said first communication device, wherem said second multiplexed data stream comprises second real-time data and second non-real-time data; demultiplex said second multiplexed data stream; and provide said second real-time data to said real-time data source and said second non-real-time data to said non-real-time data source
10. A method for implementing a communication protocol usmg a host computer and a first communication device, wherem said first communication device implements a standard program mterface for communicating data to be transmitted/received to/from a second communication device across the PSTN, the method comprising accessing program instructions stored in a computer-readable medium; and executmg said program instructions on said host computer, wherein said executing induces: multiplexing first real-time data from a real-time data source with first non-real-time data from a non-real-time data source mto one multiplexed data stream; and providing said multiplexed data stream to said first communication device using said standard program interface, wherein said multiplexed data stream is provided for transmission to said second communication device.
11. The method of claim 10, further comprising receiving said first real-time data from a virtual presence application, wherem said virtual presence application comprises program instructions stored on said computer- readable medium that, when executed by said host computer, display a virtual telephone interface to a user for controllmg the initiation and reception of telephone calls through said first communication device, wherem said first real-time data comprises telephony control information provided by said virtual presence application.
12. The method of claim 10 or 11, further comprising receiving said first real-time data from a sound transducing system, wherein said sound transducing system implements - receiving voice excitation; and generatmg a digitized voice stream from said voice excitation, wherein said first real-time data comprises said digitized voice stream
13. The method of any of claims 10-12, further comprising receivmg said first non-real-time data from a software application executmg on said host computer
14 The method of any of claims 10-13, further compnsmg sendmg said multiplexed data stream to a virtual presence server, wherem said virtual presence server coupled to said second communication device is configured for: receiving said multiplexed data stream from said second communication device, demultiplexing said multiplexed data stream; and providmg said first real-time data to a real-time data destmation and said first non-real-time data to a non-real-time data destmation
15 The method of claim 14, wherem said virtual presence server is further operable to- multiplex second real-time-data from said real-time data destmation with second non-real-time data from said non-real-time data destination into a second multiplexed data stream; and provide said second multiplexed data stream to said second communication device for transmission to said first communication device
16. The method of any of claims 10-13 further compnsmg receiving a second multiplexed data stream from said first communication device, wherem said second multiplexed data stream comprises second real-time data and second non-real-time data; demultiplexing said second multiplexed data stream; and providing said second real-time data to said real-time data source and said second non-real-time data to said non-real-time data source
17. A communication system compnsmg: a host computer; a first communication device coupled to the host computer and to a PSTN, wherem said first communication device implements a standard program interface for communicating data to be transmitted/received to/from a second communication device across the PSTN, and a computer-readable medium coupled to the host computer, wherem said computer-readable medium stores program instructions that, when executed by said host computer, are configured to implement a communication protocol operable to provide a first data stream to said first communication device using said standard program mterface, wherem said first data stream is provided to said first communication device for transmission to said second communication device 18 The communication system of claim 17, wherem said communication protocol is further operable to receive a second data stream from said first communication device usmg said standard program mterface, wherem said second data stream is provided from said second communication device
19 A method for implementing a communication protocol usmg a host computer and a first communication device, wherem said first communication device implements a standard program interface for communicating data to be transmitted received to/from a second communication device across the PSTN, the method comprising accessing program instructions stored m a computer-readable medium, and executmg said program instructions on said host computer, wherem said executing implements a communication protocol operable to provide a first data stream to said first communication device usmg said standard program interface, wherem said first data stream is provided to said first communication device for transmission to said second communication device
20 The method of claim 19, wherein said communication protocol is further operable to receive a second data stream from said first communication device using said standard program mterface, wherem said second data stream is provided from said second communication device
21 The method of any of claims 10-16, 19 or 20, or the communication system of claim 17 or 18, wherem said standard program interface comprises a V 80-complιant interface
22 The method of any of claims 10-16, 19 or 20, or the communication system of claim 17 or 18, wherem said first communication device compnses a V 80-complιant modem
PCT/US2000/002168 1999-01-28 2000-01-28 Implementing special protocols using standard modems WO2000045580A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US23882099A 1999-01-28 1999-01-28
US09/238,820 1999-01-28

Publications (2)

Publication Number Publication Date
WO2000045580A2 true WO2000045580A2 (en) 2000-08-03
WO2000045580A3 WO2000045580A3 (en) 2000-12-14

Family

ID=22899462

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/002168 WO2000045580A2 (en) 1999-01-28 2000-01-28 Implementing special protocols using standard modems

Country Status (1)

Country Link
WO (1) WO2000045580A2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764639A (en) * 1995-11-15 1998-06-09 Staples; Leven E. System and method for providing a remote user with a virtual presence to an office

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764639A (en) * 1995-11-15 1998-06-09 Staples; Leven E. System and method for providing a remote user with a virtual presence to an office

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"In-band DCE control and synchronous data modes for asynchronous DTE (ITU Recommendation V.80)" August 1996 (1996-08) , ITU-T TELECOMMUNICATION STANDARIZATION SECTOR OF ITU , GENEVA (SWITZERLAND) XP002146413 cited in the application the whole document *
LINDBERGH D: "THE H.324 MULTIMEDIA COMMUNICATION STANDARD" IEEE COMMUNICATIONS MAGAZINE,US,IEEE SERVICE CENTER. PISCATAWAY, N.J, vol. 34, no. 12, 1 December 1996 (1996-12-01), pages 46-51, XP000636453 ISSN: 0163-6804 *

Also Published As

Publication number Publication date
WO2000045580A3 (en) 2000-12-14

Similar Documents

Publication Publication Date Title
US6345047B1 (en) Computer telephony adapter and method
US6639913B1 (en) System and method for communicating voice and data over a local packet network
US7177401B2 (en) TTY communication over packet networks
US7715413B2 (en) Multi-network exchange system for telephony applications
US7664100B2 (en) Voice-over-IP telephone devices and systems
US6930999B1 (en) Scalable voice over IP system providing independent call bridging for outbound calls initiated by user interface applications
US20040052242A1 (en) POTS/broadband voice cross-connect system
JP2002512738A (en) Phone doubler device
JP2000511724A (en) Access network through dedicated media
JPH1093689A (en) Method for providing broadband subscriber with service function by using narrowband server
MXPA01000781A (en) Telecommunications system, method and subscriber unit for use therein.
US8730950B1 (en) Method and system for processing voice traffic from a multi-channel link into a VoIP network over a broadband network
US8675638B2 (en) Method and apparatus for enabling dual tone multi-frequency signal processing in the core voice over internet protocol network
US6230133B1 (en) Home office communication system and method
JP2003509974A (en) Telecommunications systems and devices
US6526058B1 (en) VODSL service provision
US7620035B2 (en) Voice-over-IP device using dial-up modem
JP3263651B2 (en) Voice data exchange system
WO2000045580A2 (en) Implementing special protocols using standard modems
US20030048772A1 (en) System for converting GR303 signals to NCS signals
KR20010094490A (en) Ip phone system and network access method thereof
US20020037001A1 (en) VoIP phone line eliminator
KR20010019508A (en) Internet Phone interface adapter and method thereof
JP2002504761A (en) Computer Phone Integrated PBX
KR200330840Y1 (en) Voice/Data Integrated Multi functional Access Apparatus

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

122 Ep: pct application non-entry in european phase