← Back to Patent Explorer
US5628030A Expired / Lapsed US ⏱️ 0.0 years remaining

Virtual modem driver apparatus and method

Assignee: Multi Tech Systems Inc
•
Filing: 1996-02-06
•
Granted: 1997-05-06
•
Expires: 2016-02-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides for a virtual modem device for connecting to a plurality of active communication applications in an environment wherein communication applications utilize a communications driver when talking to an actual modem attached to the system. The virtual modem device selectively connects the communication applications to an actual modem, handles and connects incoming calls to the appropriate communication application, and provides for direct connection capability. The invention utilizes a software communications driver and a master communications application to control the driver connectivity to fool each communication application that it is connected to the actual modem. The virtual modem is implemented by creating a communications driver in software that emulates a modem in idle mode (e.g., when it is not off-hook and in command mode)and is utilized for each communication application that is connected to a communication port designated as a virtual modem.

Inventors

  • 👤 Steven A. Tuckner

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-10 01:36
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/10; G06F13/105; H; H04; H04M; H04M11/00; H04M11/06

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 203 words
A method of connecting a plurality of communication applications with an actual communication port connected to a single modem, wherein each communication application communicates with the actual communication port using an AT command set protocol, the method comprising the steps of: (a) emulating a plurality of virtual modems in a computer memory location, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; (b) controlling said plurality of virtual modems to connect only one of the plurality of communication applications to the actual communication port at any given time; (c) receiving and retransmitting to the actual modem AT command set-compatible initialization signals received at each of said plurality of virtual modems in order to establish proper transmission and receipt of information through each of said plurality of virtual modems to the actual modem; and (d) responding to AT command set-compatible communication signals received from each of the communication applications which are not connected to the actual communication port with appropriate modem responses to the communication signals to maintain communication with each of the non-connected communication applications such that each non-connected communication application operates as if the non-connected communication application is connected to the actual communication port.
Claim 2
Independent Claim 203 words
A method of connecting a plurality of communication applications with an actual communication port connected to a single modem, wherein each communication application communicates with the actual communication port using an AT command set protocol, the method comprising the steps of: (a) emulating a plurality of virtual modems in a computer memory location, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; (b) controlling said plurality of virtual modems to connect only one of the plurality of communication applications to the actual communication port at any given time; (c) receiving and retransmitting to the actual modem AT command set-compatible initialization signals received at each of said plurality of virtual modems in order to establish proper transmission and receipt of information through each of said plurality of virtual modems to the actual modem; and (d) responding to AT command set-compatible communication signals received from each of the communication applications which are not connected to the actual communication port with appropriate modem responses to the communication signals to maintain communication with each of the non-connected communication applications such that each non-connected communication application operates as if the non-connected communication application is connected to the actual communication port.
Claim 3
Dependent Claim 19 words
The method of claim 1, further comprising the step of tracking the status of each of said virtual modems.
Claim 4
Dependent Claim 27 words
The method of claim 1, further comprising the step of establishing a plurality of buffers for storing data received from the actual modem and the communication applications.
Claim 5
Dependent Claim 20 words
The method of claim 3, wherein each of said plurality of buffers includes a transmit buffer and a receive buffer.
Claim 6
Dependent Claim 37 words
The method of claim 4, wherein said selectively connecting step includes the step of changing pointers to switch between said plurality buffers, wherein transmit and receive information is placed in buffers established for the selected communication application.
Claim 7
Independent Claim 208 words
An apparatus for implementing a virtual modem in a computer environment in which a plurality of communication applications utilize a communication driver when talking to an actual modem connected to the computer, wherein each communication application communicates with the actual modem using an AT command set protocol, the apparatus comprising: (a) memory means for storing a driver program for emulating a plurality of virtual modems, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; (b) means for controlling said plurality of virtual modems to connect only one of the plurality of communication applications to the actual modem at any given time; (c) means for receiving AT command set-compatible initialization information from the plurality of communication applications and transmitting the received initialization information to the actual modem, whereby the actual modem is properly initialized to establish communication; and (d) means for responding to AT command set-compatible communication signals received from each of the communication applications which are not connected to the actual modem with appropriate modem responses to the communication signals to maintain communication with each of the non-connected communication applications such that each non-connected communication application operates as if the non-connected communication application is connected to the actual communication port.
Claim 8
Independent Claim 208 words
An apparatus for implementing a virtual modem in a computer environment in which a plurality of communication applications utilize a communication driver when talking to an actual modem connected to the computer, wherein each communication application communicates with the actual modem using an AT command set protocol, the apparatus comprising: (a) memory means for storing a driver program for emulating a plurality of virtual modems, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; (b) means for controlling said plurality of virtual modems to connect only one of the plurality of communication applications to the actual modem at any given time; (c) means for receiving AT command set-compatible initialization information from the plurality of communication applications and transmitting the received initialization information to the actual modem, whereby the actual modem is properly initialized to establish communication; and (d) means for responding to AT command set-compatible communication signals received from each of the communication applications which are not connected to the actual modem with appropriate modem responses to the communication signals to maintain communication with each of the non-connected communication applications such that each non-connected communication application operates as if the non-connected communication application is connected to the actual communication port.
Claim 9
Dependent Claim 16 words
The apparatus of claim 6, further comprising means for tracking the status of each virtual modem.
Claim 10
Dependent Claim 34 words
The apparatus of claim 6, further comprising a memory device used for storing a plurality of buffers, wherein said buffers store data received from the actual modem and the communication applications in a queue.
Claim 11
Dependent Claim 56 words
The apparatus of claim 8, wherein each of said plurality of buffers includes a transmit and receive buffer for each virtual modem, and wherein pointers to said buffers are switched to select between selected virtual modems and communication applications, whereby transmit and receive information is placed in the proper buffer established for the selected communication application.
Claim 12
Independent Claim 176 words
An apparatus for implementing a virtual modem in a computer environment in which a plurality of communication applications utilize a communications driver when talking to an actual modem connected to the computer, comprising: (a) a memory device for storing a driver program for emulating a plurality of virtual modems and for storing buffers associated with said virtual modems, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; and (b) a processor device for selectively directing information, which is transmitted between the actual modem and a selected communication application, to said buffer associated with said virtual modem which is connected to the selected communication application, and for maintaining communication with each non-selected communication application by returning appropriate modem responses to communication signals received from each non-selected communication application, wherein each non-selected communication application is a communication application in the plurality of communication applications which is not the selected communication application, and wherein each non-selected communication application operates as if the non-selected communication application is connected to the actual modem.
Claim 13
Independent Claim 176 words
An apparatus for implementing a virtual modem in a computer environment in which a plurality of communication applications utilize a communications driver when talking to an actual modem connected to the computer, comprising: (a) a memory device for storing a driver program for emulating a plurality of virtual modems and for storing buffers associated with said virtual modems, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; and (b) a processor device for selectively directing information, which is transmitted between the actual modem and a selected communication application, to said buffer associated with said virtual modem which is connected to the selected communication application, and for maintaining communication with each non-selected communication application by returning appropriate modem responses to communication signals received from each non-selected communication application, wherein each non-selected communication application is a communication application in the plurality of communication applications which is not the selected communication application, and wherein each non-selected communication application operates as if the non-selected communication application is connected to the actual modem.
Claim 14
Dependent Claim 16 words
The apparatus of claim 10, wherein said processor device tracks the status of each virtual modem.
Claim 15
Dependent Claim 26 words
The apparatus of claim 11, wherein said plurality of buffers store data received from the actual modem and the plurality of communication application in a queue.
Claim 16
Dependent Claim 22 words
The apparatus of claim 12, wherein said plurality of buffers includes a transmit and a receive buffer associated with each virtual modem.
Claim 17
Dependent Claim 23 words
The apparatus of claim 13, wherein said processor device directs the information to said appropriate buffer by changing software pointers in said driver.
Claim 18
Dependent Claim 71 words
The method of claim 1, further comprising the step of, in response to an incoming call received at the actual communication port, determining an appropriate one of the communication applications to handle the incoming call, connecting the appropriate communication application to the actual communication port, and transmitting an incoming call signal to the appropriate communication application to emulate an incoming call such that the appropriate communication application handles the incoming call.
Claim 19
Dependent Claim 55 words
The method of claim 1, where said receiving and retransmitting step includes the steps of storing an initialization signal received from one of the plurality of communication applications, and retransmitting said received initialization signal to the actual communication port once the one of the plurality of communication applications is connected to the actual communication port.
Claim 20
Independent Claim 161 words
A method of connecting a plurality of communication applications with an actual communication port connected to a single modem, comprising the steps of: (a) emulating a plurality of virtual modems; (b) mapping each communication application to one of said plurality of virtual modems; whereby each communication application is associated with a respective virtual modem; (c) selectively connecting only one of said virtual modems at any given time to the actual communication port, to establish communication between the actual communication port and a selected communication application corresponding to said one of said virtual modems, while maintaining communication between non-selected communication applications and said respective virtual modems by returning appropriate modem responses to communication signals received from the non-selected communication applications, wherein each non-selected communication application is a communication application in the plurality of communication applications which is not the selected communication application, and wherein each non-selected communication application operates as if the non-selected communication application is connected to the actual communication port.
Claim 21
Independent Claim 161 words
A method of connecting a plurality of communication applications with an actual communication port connected to a single modem, comprising the steps of: (a) emulating a plurality of virtual modems; (b) mapping each communication application to one of said plurality of virtual modems; whereby each communication application is associated with a respective virtual modem; (c) selectively connecting only one of said virtual modems at any given time to the actual communication port, to establish communication between the actual communication port and a selected communication application corresponding to said one of said virtual modems, while maintaining communication between non-selected communication applications and said respective virtual modems by returning appropriate modem responses to communication signals received from the non-selected communication applications, wherein each non-selected communication application is a communication application in the plurality of communication applications which is not the selected communication application, and wherein each non-selected communication application operates as if the non-selected communication application is connected to the actual communication port.
Claim 22
Dependent Claim 50 words
The method of claim 17, further comprising the step of receiving an initialization signal from a communication application irrespective of whether the communication application is selected; and wherein said selectively connecting step includes the step of retransmitting said initialization signal from the selected communication application to the actual communication port.
Claim 23
Dependent Claim 31 words
The method of claim 18, wherein said receiving step includes the step of returning an appropriate modem response to said initialization signal to the communication application that transmitted said initialization signal.
Claim 24
Dependent Claim 33 words
The method of claim 17, further comprising the step of returning a failed signal to a non-selected communication application when the non-selected communication application transmits a connect command to said respective virtual modem.
Claim 25
Dependent Claim 13 words
The method of claim 20, wherein said failed signal comprises a busy response.
Claim 26
Dependent Claim 23 words
The method of claim 20, wherein said connect command is selected from tube group consisting of a dial command and an answer command.
Claim 27
Dependent Claim 83 words
The method of claim 17, further comprising the steps of: (a) receiving an incoming call from the actual communication port; (b) establishing communication with the incoming call; (c) determining an appropriate one of the communication applications to receive the incoming call; (d) connecting the actual communication port to said respective virtual modem of the appropriate communication application; and (e) transmitting an incoming call signal to the appropriate communication application to emulate an incoming call; whereby the appropriate communication application handles the incoming call.
Claim 28
Dependent Claim 14 words
The method of claim 23, wherein said incoming call signal comprises a ring command.
Claim 29
Dependent Claim 14 words
A computer-readable memory for directing a computer to implement the method of claim 17.
Claim 30
Dependent Claim 165 words
A communications driver implemented in a computer for permitting a plurality of communication applications to share an communication port connected to a single modem, the driver comprising: (a) a plurality of software-implemented virtual modems, wherein each virtual modem communicates with an associated one of the plurality of communication applications; and (b) means for selectively connecting only one of said virtual modems at any given time to the actual communication port, to establish communication between the actual communication port and a selected communication application corresponding to said one of said virtual modems, while maintaining communication between each non-selected communication application and said virtual modem associated with the non-selected communication application by returning appropriate modem responses to communication signals received from the non-selected communication applications, wherein each non-selected communication application is a communication application in the plurality of communication applications which is not the selected communication application, and wherein each non-selected communication application operates as if the non-selected communication application is connected to the actual communication port.
Claim 31
Dependent Claim 165 words
A communications driver implemented in a computer for permitting a plurality of communication applications to share an communication port connected to a single modem, the driver comprising: (a) a plurality of software-implemented virtual modems, wherein each virtual modem communicates with an associated one of the plurality of communication applications; and (b) means for selectively connecting only one of said virtual modems at any given time to the actual communication port, to establish communication between the actual communication port and a selected communication application corresponding to said one of said virtual modems, while maintaining communication between each non-selected communication application and said virtual modem associated with the non-selected communication application by returning appropriate modem responses to communication signals received from the non-selected communication applications, wherein each non-selected communication application is a communication application in the plurality of communication applications which is not the selected communication application, and wherein each non-selected communication application operates as if the non-selected communication application is connected to the actual communication port.
Claim 32
Dependent Claim 46 words
The driver of claim 26, further comprising means for receiving an initialization signal from a communication application irrespective of whether the communication application is selected; and wherein said means for selectively connecting retransmits said initialization signal from the selected communication application to the actual communication port.
Claim 33
Dependent Claim 29 words
The driver of claim 27, wherein said means for receiving includes returns an appropriate modem response to said initialization signal to the communication application that transmitted said initialization signal.
Claim 34
Dependent Claim 29 words
The driver of claim 26, wherein said meat for selectively connecting returns a failed signal to a non-selected communication application when the non-selected communication application transmits a connect command.
Claim 35
Dependent Claim 13 words
The driver of claim 29, wherein said failed signal comprises a busy response.
Claim 36
Dependent Claim 23 words
The driver of claim 29, wherein said connect command is selected from the group consisting of a dial command and an answer command.
Claim 37
Dependent Claim 85 words
The driver of claim 26, wherein said means for selectively connecting includes incoming call handling means for detecting an incoming call at the actual communication port, establishing communication with the incoming call, determining an appropriate one of the communication applications to receive the incoming call, connecting the actual communication port to said virtual modem associated with the appropriate communication application, and transmitting an incoming call signal to the appropriate communication application to emulate an incoming call; whereby the appropriate communication application handles the incoming call.
Claim 38
Dependent Claim 14 words
The driver of claim 32, wherein said incoming call signal comprises a ring command.
Claim 39
Independent Claim 216 words
A method of connecting a plurality of communication applications with an actual communication port connected to a single modem, comprising the steps of: (a) emulating a plurality of virtual modems in a computer memory location, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; (b) controlling said plurality of virtual modems to connect only one of the plurality of communication applications to the actual communication port at any given time; (c) receiving and retransmitting to the actual modem initialization signals received at each of said plurality of virtual modems in order to establish proper transmission and receipt of information through each of said plurality of virtual modems to the actual modem; (d) responding to communication signals received from each of the communication applications which are not connected to the actual communication port to maintain communication with each of the non-connected communication applications; and (e) in response to an incoming call received at the actual communication port: (1) determining an appropriate one of the communication applications to handle the incoming call; (2) connecting the appropriate communication application to the actual communication port; and (3) transmitting an incoming call signal to the appropriate communication application to emulate an incoming call such that the appropriate communication application handles the incoming call.
Claim 40
Independent Claim 216 words
A method of connecting a plurality of communication applications with an actual communication port connected to a single modem, comprising the steps of: (a) emulating a plurality of virtual modems in a computer memory location, each of said plurality of virtual modems for communicating with one of the plurality of communication applications; (b) controlling said plurality of virtual modems to connect only one of the plurality of communication applications to the actual communication port at any given time; (c) receiving and retransmitting to the actual modem initialization signals received at each of said plurality of virtual modems in order to establish proper transmission and receipt of information through each of said plurality of virtual modems to the actual modem; (d) responding to communication signals received from each of the communication applications which are not connected to the actual communication port to maintain communication with each of the non-connected communication applications; and (e) in response to an incoming call received at the actual communication port: (1) determining an appropriate one of the communication applications to handle the incoming call; (2) connecting the appropriate communication application to the actual communication port; and (3) transmitting an incoming call signal to the appropriate communication application to emulate an incoming call such that the appropriate communication application handles the incoming call.

References Cited (Backward Citations)

US4040014A Cited
US4045774A Cited
US4425625A Cited
US4503288A Cited
US4797878A Cited
US5155847A Cited
US4989203A Cited
US5408527A Cited
US5369700A Cited
US5452329A Cited
US5355365A Cited
US5524047A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-05-05 2000-11-04 2001-05-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-05-05 2004-11-04 2005-05-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-05-05 2008-11-04 2009-05-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag