EXHIBIT G

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 1 of 24 PageID #: 317
USOO6574239B1 

(12) United States Patent (10) Patent No.: US 6,574,239 B1 

Dowling et al. (45) Date of Patent: Jun. 3, 2003 

(54) VIRTUAL CONNECTION OF A REMOTE 5,757,890 A 5/1998 Venkatakrishnan 

UNIT TO ASERVER 5,771,353 A * 6/1998 Eggleston et al. .......... 709/227 

5,896,444 A 4/1999 Perlman et al. 

(76) Inventors: Eric Morgan Dowling, 1132 W. SS A : SE Its tal 709/206 

Lookout Dr., Richardson, TX (US) 2- - - ggleSLOn et al. .......... 

75080; Mark Nicholas Anastasi, 405 .. A : s2: c 709f2O6 

C Trail. Highland Village, TX 2- Y - 2 f ggleston et al. .......... f 

opperas , Illg 9C, 6,308.281 B1 10/2001 Hall, Jr. et al. 

(US) 75077 6,317,455 B1 11/2001 Williams et al. 

6,426,946 B1 7/2002 Takagi et al. 

(*) Notice: Subject to any disclaimer, the term of this 9. 

patent is extended or adjusted under 35 FOREIGN PATENT DOCUMENTS 

U.S.C. 154(b) by 0 days. WO WO 99/27702 6/1999 

(21) Appl. No.: 09/167,698 * cited by examiner 

(22) Filed: Oct. 7, 1998 Primary Examiner Salvatore Cangialosi 

(51) Int. Cl." H04J 3700 (74) Attorney, Agent, or Firm-Eric M. Dowling 

(52) U.S. Cl. ........................................ 370/469; 370/329 (57) ABSTRACT 

(58) Field of Search ................................. 370/329, 389, 370/468, 469; 709/203, 206, 227 A method is provided for reconnecting a telephone modem with a reduced delay by reducing a time associated with 

(56) References Cited retraining. A wireline communication connection is initial 

ized by a telephone modem to train a set of parameters. The 

U.S. PATENT DOCUMENTS parameters are Stored in a memory Structure. The connection 

4,285,061 A 8/1981 Ho is used for communication, and is then terminated. At a later 

4,416,015 A 11/1983 Gitlin time, the connection is reestablished by accessing the 

4,489.416 A 12/1984 Stuart parameters from memory and using them to reconnect the 

4,578,796 A 3/1986 Charalambous et al. modem with a reduced set-up delay. Another method 

4,852,151 A 7/1989 Dittakavi et al. involves coupling to a first physical layer and establishing a 

4,995,074 A 2/1991 Goldman et al. Session with a server, and then decoupling from the first 

5,127,051 A 6/1992 Chan et al. physical layer while maintaining the Session. Later, the 

5,287.401 A 2/1994 Lin Session is resumed using a Second physical layer. At least 

5,321,722 A 6/1994 Ogawa one of the physical layers involves a local interface unit that 

35: A yo t includes a landline connection to a WAN. 

5,600,712 A 2/1997 Hanson et al. 

5,751,796 A 5/1998 Scott et al. 75 Claims, 4 Drawing Sheets 

600 

v 

605 - ESTABLISH COMMUNICATION 

WITH REMOTE UNIT 

610-N ACCEPT AUTHORIZATION 

PARAMETERS 

STABLISH APPLICATION 

615 SESSION FOR 

REMOTE UNIT 

620- PROVIDE ENTRY 

N TABLE STRUCTURE 

DISCONNECT FROM 

625-1 REMOTE UNIT 650 

REESTABLISH MANIAN COMMUNICATIONS WITH WIRTUAL 

650- REMOTE UNT SESSION 

ACCEPT AUTHORIZATION 

635-1 CODES 

RESUME SESSION 

640-1 ACT WITES 

 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 2 of 24 PageID #: 318
U.S. Patent Jun. 3, 2003 Sheet 1 of 4 US 6,574,239 B1 

10 100 

? 

CONTROL 120 PROGRAM COMMUNICATION 127 

MODULE / 

MODULE 

125 

DISPLAY uns 

150 MONTOR MODULE 158 

135 

MASS POWER 

140 STORAGE MODULE 145 FIC 1 

184 

150N 151 APPLICATION LA APPLICATION 152 

SESSIONS SESSIONS 

182 

154 - REMOTE UNIT LA VIRTUAL SESSION - 156 

VIRTUAL SESSION SERVER 

158 TRANSPORT - - - - - - - - TRANSPORT 160 

FIC. 1A 

164- Nt(WURK - - - - - - - - 166 

1701 LINK - - - - - - - 172 

176 PHYSICAL PHYSICAL 178 

18O 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 3 of 24 PageID #: 319
U.S. Patent Jun. 3, 2003 Sheet 2 of 4 US 6,574,239 B1 

200 

TABLE 225 

2O7 STRUCTURE 

100 210 

REMOTE COMMUNICATION S6 215 

2. 

212 COMMUNICATION APPLICATION 220 

FI C. 2 SERVER PROGRAM 

500 

305 INTERFACE SCREENS BASED WORKFLOW PROCESSING 

PREDICTION PREDICTION 

TERMINATE 

CONNECTION 

FIC 3 

ESTABLESH CONNECTION 

N BACKGROUND 32O 

EXCHANGE 

3251 AUTHENTICATION DATA 

ESTABLISH/REACTIVATE 330 SESSION 

 

 

 

 

 

 

 

 

 

 

 

 

 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 4 of 24 PageID #: 320
U.S. Patent Jun. 3, 2003 Sheet 3 of 4 US 6,574,239 B1 

400 

y 

405 RECEIVE COMMUNICATIONS 

REQUEST FROM 

USER PROGRAM 

410 NITATE CONNECTION 

415 AUTHORIZATION 

CONFIRMATION 

420 NTAL DATA 

COMMUNICATION 

425 NITA DATA DISPLAY 500 

LINE-RATE NEGOTATION y 

430 IN THE BACKGROUND 

ESTABLISH FRST 505 

SUBSEQUENT CONNECTION WITH 

435 HIGH-SPEED TRANSFER REMOTE ENTITY 

FIC 4 ESTABLISH SESSION 

WITH REMOTE ENTITY 

DROP CURRENT 

CONNECTION 

ESTABLISH SECOND 

CONNECTION WITH 

REMOTE ENTITY 

COMMUNCATE 

AUTHORIZATION SEQUENCE 

RESUME SESSION 

WITH REMOTE ENTITY 

FIC 6 

540 

MANTAN 

VIRTUAL 

SESSION 

 

 

 

 

 

 

 

 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 5 of 24 PageID #: 321
U.S. Patent Jun. 3, 2003 Sheet 4 of 4 US 6,574,239 B1 

600 700 

ESTABLISH AND 

AUTHENTCATE 

SESSION 

ESTABLISH COMMUNICATION 

WTH REMOTE UNIT 705 

ACCEPT AUTHORIZATION 

PARAMETERS 

ESTABLISH APPLICATION 

SESSION FOR 

REMOTE UNIT 

615 

ACCEPT COMMUNICATION 

REQUEST FOR 715 

620- PROVIDE ENTRY REMOTE UNIT 

N TABLE STRUCTURE 

SET UP CALLER-ID 720 

PACKET 

DISCONNECT FROM 

625 REMOTE UNIT 

DIAL-OUT TO REMOTE - 725 

REESTABLISH MANTAIN UNT AND FORWARD 

630 COMMUNICATIONS WITH VIRTUAL 

REMOTE UNIT SESSION 

PACKETIZE THE 

AccEP Agization 745 

SEND COMMUNICATION 

RESUME SESSION 750 

640 ACTIVITIES 

FIC.. 6 FIC 7 

800- 805 

810 

815 

REACTIVATE VIRTUAL SESSION 820 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 6 of 24 PageID #: 322
US 6,574.239 B1 

1 

VIRTUAL CONNECTION OF A REMOTE 

UNIT TO ASERVER 

BACKGROUND OF THE INVENTION 

1. Field of the Invention 

This invention relates generally to client-server comput 

ing architectures and communication techniques. More 

particularly, the invention relates to a System whereby a 

mobile worker and a central Server may maintain a virtually 

continuous connection without the need to maintain a physi cal connection continuously. 

2. Description of the Related Art 

The concept of a virtual connection has arisen in connec 

tion with telecommuting and related applications. Such a 

system is described in U.S. Pat. No. 5,764,639. A telecom 

muter dials into a Server using a Standard telephone line. The 

telecommuter's modem and a modem controlled by the 

central Server establish a connection therebetween. Once a 

connection is established, the telecommuter may access a 

computer connected to the Server, read emails and receive 

phone calls and faxes. For example, if a customer attempts 

to call the telecommuter at work by dialing into a private 

branch exchange (PBX), the server will convert the incom 

ing call to a packetized form, Such as H.323, and redirect the 

call via the existing connection between the telecommuter 

and the Server. Using this System, the telecommuter may 

access a computer at work, answer phone calls and answer 

emails. The telecommuter thus appears to be present in his 

or her office and thus has a virtual presence there. Note for 

this System to properly function, the telecommuter must stay 

connected to the server at all times. While this does not 

present a significant problem for local telecommuting, this 

Solution is quite costly for long distance telecommuting. 

Likewise, this Solution is very costly if the telecommuter is 

mobile and must maintain a virtual presence with the Server 

using a cellular wireleSS connection. Furthermore, in Some 

areas it may be difficult to maintain a wireless connection 

continuously. A lost connection may also prevent one from 

regaining access to the System until Some period of time has 

passed. Some mobile workers require only intermittent 

access to the Server, but find it too inconvenient to place a 

dial-in call and to log onto the System every time acceSS is 

needed. 

There is a need to provide mobile workers with various 

forms of virtual connectivity. Mobile workers differ from 

telecommuters in that while a telecommuter typically works 

from a Single home location or remote office, a mobile 

worker moves from location to location during the course of 

a normal working day. An example of a mobile worker is a 

home-care professional. A home-care professional is a medi 

cal worker who periodically travels to visit with different 

Sets of homebound patients according to their individual 

needs. The individual patients each have a set of medical 

records indicative of their medical histories. A patient's medical record is preferably maintained as an interactive 

electronic document containing multiple parts. For example, 

the medical record indicates to the home-care professional precisely what procedures are to be performed and what 

medications are to be administered or otherwise given to the 

patient. Once the Services are performed, the home-care 

professional must annotate the medical record accordingly. 

The medical record is updated to reflect the patient's vital 

Signs and other information related to patient progress. Also, 

a billing System takes note to track expendables and Services 

rendered. For example, the patient may be billed per Visit 

15 

25 

35 

40 

45 

50 

55 

60 

65 

2 

and each visit may involve the expenditure of billable resources Such as medicines. 

In the above Scenario, a mobile worker must interact with 

a central Server during the course of a day. The worker may wish to access the central Server while Visiting a patient. The 

worker may also wish to access the Server from a location 

where only a wireleSS connection can be established. From 

a performance perspective, an ideal Solution is to provide the 

mobile worker with a wireleSS connection from a remote 

unit to a central Server. Such a wireleSS connection could be 

established via a high-powered radio connection with a 

broad area of coverage or via an existing cellular or personal 

communication system (PCS) network. Solutions using high-powered radio links have the disadvantage that costly 

Spectrum may be required. Maintaining a link on a cellular 

or PCS System is expensive in that a continuous connection 

consumes billable airtime which is also very costly. From an 

airtime-cost perspective, an ideal Solution would be to force 

the worker to create a connection, download or up load 

information, and work locally with data on the remote unit 

as often as possible. This Solution is tedious, and while 

Saving airtime costs, may actually represent the more costly 

Solution when professional Service costs are factored in. This 

method has the added disadvantage that when files are 

uploaded or downloaded the data must be Synchronized in 

case another user has changed the data in parallel with the 

mobile worker. Alternatively, other users must be “locked 

out' of the file from the time the mobile user downloads it 

until it is finally uploaded with any changes made. This is the 

problem Solved using Semaphores in Shared memory Sys 

tems. In the context of the present invention, a “file Sema 

phore' is a Semaphore used to lock a Second user out of a file 

while a first user is using it. Due to the aforementioned 

reasons, in many applications forcing the worker to repeat 

edly connect, disconnect, upload and download information 

is unacceptable. 

Some mobile networks have been constructed using what 

is known as cellular digital packet data (CDPD). In a CDPD 

network, a remote unit transmits a data packet on an unused 

analog channel. In this Sense the mobile unit remains Vir 

tually connected to a CDPD communication server. Wireless 

airtime is only consumed when data is actually sent. A 

disadvantage to this approach is CDPD networks are not 

universally available. Cellular coverage is much more ubiq 

uitous than CDPD coverage. Also, CDPD network Subscrib 

ers must often pay high fees and hence CDPD may not 

represent the most economical Solution. 

In Some Systems. Such as packet Switched network routers, 

offices make use of dial-out linkS. Dial-out links are useful 

when remote offices are separated by long distances. In Such 

Systems, when a packet must be routed from a first office to 

a Second office, a call is placed to route the packet. The 

dial-out connection remains connected until a no-traffic 

condition is detected, indicating the line is no longer active. 

When the no-traffic condition is detected the connection is 

dropped until it is again needed. Dial-out links are thus used 

to reduce long distance fees associated with maintaining a 

constant connection, and represents a useful Starting point 

for Solving the foregoing problems relating to the establish 

ment of a virtual presence of a mobile worker. Client-server 

protocols and fast automated connection Strategies employ 

ing dial-out links are needed to provide new ways for a 

mobile worker to maintain a virtual presence. Also, new 

methods are needed to enable dial-out links to be set up with 

low delays to make them more useful for novel Systems. 

It would be desirable to provide a system whereby a 

remote worker could maintain a Seamless connection with a 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 7 of 24 PageID #: 323
US 6,574.239 B1 

3 

central Server without the need to maintain a dedicated 

channel. It would be desirable if the remote worker could 

communicate with the central Server without the need to 

spend time to enter a password, reconnect, and wait for a line 

negotiation Sequence to proceed before being able to use the 

connection. It would be desirable for a protocol Stack to 

activate a virtual Session based on a prediction derived from 

a workflow. It would be desirable to use this prediction to set 

up a connection in the background without disturbing the 

mobile worker while the mobile worker performed tasks in a workflow. It would also be desirable to have a remote unit 

which contains most of the Screen-related information 

needed to provide the appearance of an established connec 

tion before the connection has been fully established. It 

would be desirable for the remote unit to download infor 

mation before it is needed and upload information after it is 

gathered without the user even being aware these actions are 

being performed. It would further be desirable to establish a 

Virtual Session using a first communication medium Such as 

a landline and to later communicate using the Same Virtual 

Session using a Second communication medium Such as a 

wireless link. This would allow a mobile worker to select the 

most economical or convenient means of communications at 

a given time. In embodiments involving modem-based 

connections, it would be desirable to transmit data imme 

diately using instantly available but lower line Speeds. It 

would be desirable to then negotiate a higher line Speed in 

the background while the remote worker and/or the server 

perform other tasks. Moreover, it would be desirable to 

establish a Session between a remote unit and a Server So that 

various forms of communications may proceed while pro Viding the user with the appearance the user is continuously 

connected to the server and has a virtual presence with the SCWC. 

SUMMARY OF THE INVENTION 

The present invention solves these and other problems by 

providing Systems and methods to enable a remote worker to 

Stay virtually connected to a central Server without the need 

to continuously remain connected via a physical channel. 

The present invention is useful when costs are associated 

with maintaining a connection, for example when the con 

nection has associated with it long distance, wireless, or 

other usage-related toll charges. 

A first aspect of the present invention involves a commu 

nication protocol making use of a virtual Session layer. The 

Virtual Session layer allows a communication Session and an 

application Session to be maintained in a deactivated State 

when no physical connection exists. When a remote unit 

later reconnects with a server, the virtual Session is placed into an active State and Session communications resumes as 

though uninterrupted. A remote unit, a virtual Session Server, 

and a communication System including the remote unit and 

the virtual Session Server are presented to Support Virtual 

Sessions communications. In one embodiment, the Virtual 

Session Server manages a logon Session between the remote 

unit and a Server-side application program. The virtual 

Session Server emulates the presence of the remote unit to the 

Server-Side application program and thereby maintains the 

logon. In related embodiments, the Server-side application 

program involves a communication Server capable of relay ing messages and establishing communication channels with 

the remote unit using the virtual Session layer. 

A Second aspect of the present invention involves a 

method of accessing a central Server from a remote unit. A 

first Step involves presenting a workflow to a user via a user 

interface. A Second Step involves predicting, based upon the 

5 

15 

25 

35 

40 

45 

50 

55 

60 

65 

4 

workflow, when the user will require connectivity to the 

central Server. Based upon the prediction and in the 

background, a third Step involves initiating the establish 

ment of a physical layer communication connection to the 

central Server. 

A third aspect of the present invention involves a method 

of establishing a connection with a low connection Set-up time. In a first step, the method initiates the establishment of a communication connection to be used to communicate 

with a remote entity. Next the method communicates appli cation layer data via the communication connection prior to 

the completion of a line-rate negotiation process. Next the 

method negotiates a line Speed in the background. 

A fourth aspect of the present invention involves a method 

of Setting up and operating a virtual Session. This method 

can be practiced by a client-side remote unit or a Server-side 

Virtual Session Server. A first connection is established to a 

remote entity. This first connection is then used to establish 

a set of parameters needed to define a communication 

session with the remote entity. Next the first connection 

disconnected and a set of communication Session parameters are maintained. NeXt a Second connection to the remote 

entity is established and an authorization Sequence is com 

municated. The communication Session is next reactivated 

using the communication Session using the Second connec 

tion. A related method is used to allow a remote unit to 

maintain a virtual communications presence with a remote 

communication Server coupled to a virtual Session Server. 

A fifth aspect of the invention involves a method of 

accessing a Server from a remote unit. At a first time, a first 

physical layer is used to establish a Session with the Server. 

The Session involves a communication path that involves at 

least partially the first physical layer. The first physical layer 

is then decoupled while maintaining the Session. At a Second 

time, a Second physical layer is used to resume the Session 

So that the communication path of the Session involves at 

least partially the Second physical layer. At least one of the 

physical layerS involves a local coupling to a local interface 

unit that couples to a WAN via a landline connection and the 

communication path of the Session to the Server comprises 

the landline connection. 

Another aspect of the invention involves a method of 

reconnecting a telephone modem with a reduced delay by 

reducing a time associated with retraining. A first commu 

nication connection over a wireline telephone communica 

tion channel is initialized using the telephone modem. The 

initializing is performed at least partially by performing a 

line rate negotiation Sequence with a far end modem to train 

a set of parameters to be used to Support communications 

over the wireline telephone communication channel. The Set 

of parameters can include Signal constellation parameters, 

echo canceller coefficients, and/or equalizer coefficients for 

example. The Set of parameters are then Stored in a memory 

Structure. Communication then commence at a negotiated 

date rate via the first communication connection with the far 

end modem using the parameters. Then the first communi 

cation connection is terminated. Next, the parameters are 

accessed from the memory Structure and are used to at least 

partially initialize a Second communication connection over 

the wireline telephone communication channel using the 

telephone modem. Communicaiton next commences at the 

negotiated date rate Via Said Second communication connec 

tion by reusing at least Some of the parameters. This allows 

a Setup delay time associated with the initialization of the 

first communication connection to be longer than a Setup 

delay time associated with the initialization of the Seocnd 

communication connection. 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 8 of 24 PageID #: 324
US 6,574.239 B1 

S 

BRIEF DESCRIPTION OF THE FIGURES 

The various novel features of the present invention are 

illustrated in the figures listed below and described in the 

detailed description which follows. 

FIG. 1 is a block diagram representing an embodiment of 

a remote unit designed in accordance with the present 

invention. 

FIG. 1A is a block diagram illustrating a layered Software 

architecture representative of the communication protocols 

of the present invention. 

FIG. 2 is a block diagram illustrating a System comprising 

a remote unit operably coupled to a Server via a communi 

cation medium. 

FIG. 3 is a flow chart illustrating a method of processing whereby an application program implementing a workflow 

provides a prediction of when the user will need a connec 

tion and establishes a connection in the background just 

before it is needed. 

FIG. 4 is a flow chart illustrating a method of establishing 

communication with a remote entity with a near-immediate 

Set up time. 

FIG. 5 is a flow chart illustrating a method of communi 

cating by maintaining a virtual presence without the need to 

continuously maintain a physical connection. 

FIG. 6 is a flow chart illustrating a method of processing 

performed on a Server acting as a front-end to an application 

program to maintain Sessions for remote users who are not 

continuously physically connected to the application pro 

gram. 

FIG. 7 is a flow chart illustrating a method of processing 

performed on a server managing virtual connections for 

users who are not continuously physically connected to the SCWC. 

FIG. 8 is a flow chart illustrating a method of processing 

performed by a remote unit to accept different types of 

incoming calls. 

DETAILED DESCRIPTION OF THE 

PREFERRED EMBODIMENTS 

FIG. 1 is a block diagram representing an embodiment of 

a remote unit 100 designed in accordance with the present invention. The remote unit 100 may be implemented as a 

laptop computer, a personal digital assistant, a desktop 

computer or WorkStation, or as a dedicated unit customized 

for a particular application. The remote unit 100 includes a 

central processing unit (CPU) 105 connected to a central bus 

110. The central processing unit may be implemented using 

an available microprocessor, microcontroller, or customized 

logic. For example, a Pentium TM processor from Intel Corp. 

may be used to implement the CPU 105. The central bus is 

preferably constructed as a Set of unbroken wires used to 

carry Signals between a Set of component Subsystems within 

the remote unit 100. It should be noted, in Some embodi 

ments of the present invention, the bus 110 may be imple 

mented equivalently using a set of direct parallel and/or 

serial connections between individual modules. The bus 110 

as illustrated in FIG. 1 shows a low cost and a preferred 

means to connect the illustrated Subsystems. Any combina 

tion of bus connections and direct Serial or parallel linkS may 

be used to implement the connection Structure provided by 

the bus 110. Different implementations represent different 

price-to-performance ratioS and will be dictated by the needs 

of an individual embodiment. The bus 110 also comprehends multi-layered bus structures. For example, Some embodi 

ments make use of a local processor bus connected to the 

5 

15 

25 

35 

40 

45 

50 

55 

60 

65 

6 

CPU 105, and a peripheral interconnect bus for other sub 

Systems. In multi-layered bus based designs, the different 

layers are preferably connected by bus bridges. All of these 

and other equivalent embodiments of the bus 110 are known 

to the skilled artisan. From here forward, the discussion will 

center on the illustrated embodiment of the remote unit 100 

whereby all Subsystems are directly connected via the bus 

110. Embodiments where the bus 110 represents a different 

physical interconnection topology are implicitly included in 

the discussion below. 

A memory 115 is also coupled to the bus 110. The 

memory 115 may be implemented using Static random 

access memory (SRAM) or dynamic random access memory 

(DRAM). One type of SRAM is read-only memory (ROM). 

Preferably the memory 115 includes a ROM for use at 

boot-up, and a DRAM to hold a significant amount of data 

Storage for use while executing programs. The remote unit 

100 also includes a control program module 120. The 

control program module 120 is controllably coupled to the 

CPU 105 and is also coupled to the bus 110. The central 

program module 120 typically exists as a Software module 

executed from the memory 115 by the CPU 105. The control 

program module 120 effectively configures the remote unit 

100 to operate in accordance with aspects of the present 

invention as discussed herein below. 

A communications module 125 is also coupled to the bus 

110. The communications module includes at least one 

communication interface to allow the remote unit to com 

municate with a remote entity Such as a virtual Session Server 

as will be discussed in detail hereinafter. In a preferred 

embodiment, the communications module 125 includes a 

plurality of communication interfaces. For example, a first 

interface 126 provides a wireless link, and a second com 

munication interface 127 provides one or more wireline 

links. Also, the wireline communication interface 127 may include a Standard telephone modem interface and a packet Style interface designed to plug directly into an Ethernet 

connection to be coupled to a local area network (LAN), a 

wide area network (WAN) or the Internet. The Internet is the 

well-known and ubiquitous World Wide Web. In some 

embodiments, the communications module 125 includes a 

caller-identification packet processor. A caller-identification 

packet processor receives a caller-identification packet, 

extracts information therefrom, and passes the information 

to the CPU 105. Caller-identification packets may be advan 

tageously used to identify incoming calls with a virtual 

session as discussed in connection with FIGS. 7-8. The 

communications module 125 may optionally include a voice 

interface to allow a user to engage in telephone conversa 

tions using the remote unit 100. In this case a separate 

handset or a built-in handset may be used. Alternatively a 

Speakerphone may be built into the remote unit using a 

microphone, a speaker, and an echo canceller. 

The remote unit 100 also includes a display monitor 130. 

The display monitor 130 is also coupled to the bus 110. The 

display monitor 130 is preferably implemented using a 

liquid crystal display (LCD), although other display tech 

nologies may equivalently be used. Also connected to the 

bus 110 is an optional universal input-output (I/O) module 

135. The universal I/O module includes a coupling to a set 

of external devices 138. The external devices are preferably 

data collection units as described below. The universal I/O 

module preferably provides a Standard link layer interface to 

the software module 120 executing on the CPU 105. The 

remote unit 100 also preferably includes a mass storage 

device 140. The mass storage device 140 is also connected 

to the bus 110. The mass storage device is preferably 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 9 of 24 PageID #: 325
US 6,574.239 B1 

7 

implemented using magnetic disk or optical disk technology, 

but any mass Storage device, to include a non-volatile 

memory, may be used. 

The remote unit 100 also includes a power module 145. 

The power module is preferably and optionally coupled to 

the buS 110 to receive power management control informa 

tion. The power module preferably includes a battery, an 

alternating current (AC) connector, a direct current (DC) 

connector, and a power management control interface. The 

AC connector allows the remote unit 100 to be powered 

from a standard 110 V wall outlet. The DC connector allows 

the remote unit 100 to be powered from a vehicle, for 

example by plugging the unit into a cigarette lighter outlet. 

Either of these connectors may be preferably used to also 

charge the battery in the remote unit. The power module 145 

is coupled to Supply power to a power bus which is con 

nected to all Subsystems. Depending on the power manage 

ment configuration of an individual System, different Sub 

Systems may accept power from Separate connections to 

allow portions of the remote unit to be selectively turned off 

while they are not being used. 

The remote unit 100 is operative to execute an application 

program. The application program is operative to Supply a 

Sequence of interactive Screens or a menu based interface to 

the user. The Sequence of interactive Screens or a particular 

usage of a menu based System implements a workflow. In an 

example embodiment, the remote unit 100 is carried by a 

home-care professional. The home care professional has a 

Sequence of procedures which need to be implemented in the 

course of working with a patient. This Sequence of proce 

dures gives rise to the workflow implemented in the control 

program 120 which executes on the remote unit 100. In the 

example embodiment involving a home-care professional, 

the universal I/O module is connected to a set of peripheral units to collect Vital information Such as blood pressure, 

temperature, insulin level and the like. Other information 

Such as the patients weight may be entered manually by the 

home-care professional as a part of the workflow. At certain 

times in the workflow, an external communication connec 

tion will be needed because data may need to be uploaded 

or downloaded to/from a central Server. In accordance with 

the present invention, the remote unit 100 is operative to 

provide a SeamleSS and transparent Virtual presence with the 

central Server. In general, the central Server may itself be 

Segmented into two or more individual central Servers. The 

discussion herein focuses on an embodiment whereby a 

Virtual presence is maintained with a Single central Server 

having multiple Server components. The present invention 

may be equivalently practiced by embodiments involving a 

Virtual presence with more than one central Server. Thus, one 

remote unit could maintain multiple virtual connections to 

totally Separate Server Systems. In Such a configuration the 

application workflow would dictate to which Server System 

the remote unit would physically connect while other Servers 

remain Virtually connected. 

A key aspect of the operation of the remote unit 100 is its 

ability to maintain a virtual presence with the central Server 

without continuously maintaining a physical connection. 

The remote unit 100 is operative to provide communications 

when it is needed without the user needing to go through a 

Set of normally associated connection Sequences. For 

example, in accordance with one aspect of the invention, the 

user need only interact with the Screens provided to imple 

ment the workflow while the remote unit 100 automatically 

Sets up a connection in the background to be available when 

it is needed. In embodiments where file Synchronization is 

not an issue or is handled using file Semaphores, the Software 

15 

25 

35 

40 

45 

50 

55 

60 

65 

8 

implementing the workflow automatically downloads infor 

mation before it is needed and later automatically uploads 

new information after it has been gathered. This way, users 

need not even be aware they are not connected at all times. 

The user is not burdened with the need to connect and 

reconnect, and need not be burdened with downloading and 

uploading data. The user experiences the full benefit of 

being continuously connected to the central Server without 

the associated cost of remaining continuously connected via 

a physical connection. In Systems where file Semaphores are 

not employed, the physical connection is established just 

before the workflow indicates it will be needed and is 

dropped when the workflow indicates it will not be needed 

for some time. Further details of the operation of the remote 

unit 100 are given in the discussions provided in connection 

with FIGS. 2-8. 

A central aspect of the present invention involves the 

concept of a “virtual Session.” A Session as defined herein is 

Similar to the definition provided in the open Systems 

interconnect (OSI) reference model from the International 

Standards Organization (ISO). The OSI model is a model of 

a layered Software Structure used in computer communica 

tions. A Software System which implements a layered model 

of communication is known as a “protocol stack.” The OSI 

model is well known and divides a computer communica 

tions proceSS into Seven layers. At each layer is a Software 

module which communicates with a peer Software module at 

the same layer. Within a protocol Stack, each layer commu 

nicates with the layer above and/or below. Actual commu 

nication systems often deviate from the seven layer OSI 

model. A protocol Stack using basic concepts Similar to the 

Seven layer OSI model is next discussed which represents an 

aspect of the present invention. 

FIG. 1A illustrates a representative protocol 150 used to 

Support the present invention. At the top layer is an appli 

cation Session layer. A first protocol Stack with an applica 

tion session layer software module 151 communicates with 

a Second protocol Stack with an applications Session layer 

Software module 152. The application session layer software 

module 151 is typically implemented as a client-side soft 

ware module which presents a user interface to a user. The 

application Session layer Software module 152 is typically 

implemented by a Server-Side Software module operative to 

provide communication and/or computer related Services to 

the client-side Software module. For example the application 

Sessions layer Software module 152 may involve a logon Session with a database program, or may represent a unified 

messaging Server Supplying voice mail, email and fax mail. 

Similarly, the application session layer software module 152 

may involve a telephony application operative to provide a 

packet Switched or a circuit Switched telephone connection 

to the client-side application Session layer Software module 

151. One layer down in the protocol stack is a virtual session 

layer. In the example embodiment, the first protocol Stack 

implements a virtual session layer software module 154 in 

the remote unit 100. The virtual session layer software 

module 154 communicates with a peer virtual session soft 

ware module 156 via the peer-to-peer communication path 

182. In the exemplary embodiment, the virtual session layer 

Software module 156 is implemented within a virtual session server as discussed in connection with FIG. 2. The virtual 

Session Server typically maintains a table linking one or 

more application Sessions to a virtual Session. For example, 

this linking of application Sessions into the table structure 

may be accomplished by including a pointer to a data 

Structure containing application Session control data, or by placing the data structure holding the application Session 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 10 of 24 PageID #: 326
US 6,574.239 B1 

9 

control data directly in the table structure. Additionally, the 

table Structure allows the Virtual Session Server to maintain 

a plurality of Virtual Sessions with a plurality of client remote 

units. In the OSI model, the OSI-Session layer provides a set 

of rules used to establish and terminate data Streams between 

nodes in a network. A set of OSI-Session layer Services 

include establishing and terminating node connections, mes 

Sage flow control, dialog control, and end-to-end data con 

trol. The Session layer controls dialogs, which involve 

conversational protocols as used in mainframe computer 

terminal communications. The virtual session layer 154, 152 

of the protocol 150 may perform any of these functions in 

addition to maintaining the table linking to the application 

Sessions. 

The next Software modules in the first protocol Stack are 

the transport layer 158, the network layer 164, the link layer 

170 and the physical layer 176. These software modules 

respectively perform peer communications with the Server 

side protocol stack's Software modules 160, 166, 172, and 

178. The physical layer defines the low-level mechanical 

and electrical channel protocols and the physical connection 

itself. These four lower layers are well known in the art of 

data communications and can be implemented in various 

well-known ways. Likewise, alternative and equivalent pro 

tocol Stacks may be constructed, for example, with the 

transport layer removed, various layerS merged into one, or 

new layers added. 

An important aspect of a virtual Session oriented com 

munication protocol such as the protocol 150 is the ability to 

maintain a peer-to-peer virtual Session communication path 

182 without the presence of a physical layer communication 

path 180. The physical layer communication path 180 rep 

resents a physical layer communication connection, for 

example, a wireline connection, a cellular wireless 

connection, or a network connection to the Internet. When 

the physical layer communication path 180 is disconnected, 

no physical channel exists between the client-side Software 

and the Server-side Software, and the physical layer com 

munication path 180 is said to be in a “disconnected State.” 

However, data Structures maintained at the Virtual Session 

layer allow one or more peer-to-peer application Session 

communication paths 184 to remain in a deactivated but 

existent State, even when the physical layer communication 

path is in the disconnected State. Likewise, the virtual 

session communication path 182 established between the 

remote unit and the virtual Session Server also remains in a 

deactivated but existent State. This is made possible through 

the use of the table Structure maintained in memory which 

retains its information after the physical layer communica 

tion path 180 has been disconnected. When the physical 

layer communication path 180 has been reconnected, the 

physical layer communication path is said to be placed into 

a “connected State.” At Such time, the virtual Session layer 

Software modules 154 and 156 are operative to reactivate the 

Virtual Session layer communication path 182 and the appli 

cation sessions layer communication path 184. When these 

paths are reactivated, peer-to-peer communication may once 

again proceed over the application Session layer communi 

cation path 184 and the virtual Session layer communication 

path 182. 

AS defined herein, a distinction is made between a com 

munication Session and an application Session. A commu 

nication Session is defined as a Session between nodes or 

communication endpoints, and an application Session is 

defined as a Session between applications. For example, a 

remote unit may establish a communication Session with a 

central Server. In this case a communication Session is 

15 

25 

35 

40 

45 

50 

55 

60 

65 

10 

established between the communication endpoints, i.e., the 

remote unit and the central Server. Also, an application 

program running on the remote unit may need to establish an 

application Session with an application program running on 

the central Server. In Such case an application Session is 

created using a connection Stream provided and governed by 

the communication Session. A table Structure is used to 

maintain both the communication Session parameters and 

the application Session parameters. For example, a first user 

authentication parameter may be used to establish a com 

munication Session with the Server. A Second user authen 

tication parameter may be used to establish an application Session with the application program. This Second user 

authentication parameter may include a user identification 

parameter and a password, for example. 

In light of the aforesaid concepts, a “virtual Session' is 

next defined. A virtual Session is preferably implemented as 

a communication Session as defined above. A virtual Session, 

like an OSI Session, provides a set of rules for establishing 

data Streams between nodes or endpoints. The Virtual Session 

also may provide other Session features Such as dialog 

control, message flow control, and end-to-end data control. 

A virtual Session is controlled using a data Structure which 

provides a way to associate the virtual Session with the lower 

layers of a protocol Stack, leading down to a physical layer. 

AS mentioned above, in most embodiments, a virtual Session 

is implemented as a communication Session. Application 

Sessions are then added onto the virtual Session as connec 

tion Streams within the communication Session. 

In a virtual Session, a communication Session may be 

suspended with some or all of the lower layers of the 

protocol Stack missing. In particular, a virtual Session may 

be maintained while a physical layer connection has been 

removed. The virtual Session can then be reasSociated with 

a physical layer connection at a later time. The Virtual 

Session thus also preferably provides connect and reconnect 

rules used to establish a virtual Session and then to reasSo 

ciate the Virtual Session to a new physical connection to Set 

up a new data Stream in Support of a dialog at a later time. 

Related activities Such as the initiation of dial-out links to 

reestablish a physical layer communication path is also 

preferably handled by the virtual Session in response to a 

Signal from an application layer program. 

An aspect of a virtual Session is the maintenance of an 

application between an application program and a virtual 

session server as will be described below. A virtual session 

Server acts as a proxy agent for a remote unit. When the 

remote unit is not connected via a physical layer commu 

nication path, the virtual Session Server maintains a proxy 

presence with the application program on behalf of the 

disconnected remote unit. At a later time, when the remote 

unit reconnects into the virtual Session by passing a set of 

communication Session authentication parameters, the 

remote unit is thereby granted access to one or more 

application Sessions which have been maintained in proxy 

by the virtual session server. 

In a preferred embodiment, the Virtual Session uses a Set 

of authentication parameters and a set of encryption keys to 

maintain a Secure connection. A separate Set of authentica 

tion parameters is used by an application running on the 

remote unit to gain access to an individual application 

Session. Once the application Session has been established 

over a virtual Session, a table is used to maintain a set of 

parameters needed to maintain the application Session, even 

though no physical layer connection exists between the 

endpoints of the virtual session. When a virtual session data 

Structure is set up and no physical layer connection exists to 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 11 of 24 PageID #: 327
US 6,574.239 B1 

11 

Support communication over the Virtual Session, the Virtual 

session is said to be “inactive.” When a virtual session data 

Structure is Set up and a physical layer connection does exist 

to Support communication over the Virtual Session, the 

virtual session is said to be “active.” A transition from an 

active State to an inactive State is called “deactivating a 

Virtual Session,” and a transition from an inactive State to an 

active State is called “activating a virtual Session.” The 

process of transitioning from an active State to an inactive 

State is also known as “disconnecting from a physical 

connection.” When this occurs, the physical layer connec 

tion is no longer available to Support communication over 

the virtual Session. In a preferred embodiment, a table 

Structure is used to maintain the Virtual Session parameters 

as well as a Set of parameters for each application Session 

established over the virtual session. When a virtual session 

is activated, there is no need to reauthenticate the individual 

application Sessions. This is because the table typically includes a user identification parameter, a user password, a 

Set of application Session parameters, a communication 

Session identification parameter, and an encryption key for 

the communication Session. Additional data Such as modem 

initiation parameters may be added to the table as required by the System configuration and usage. 

Referring now to FIG. 2, a block diagram illustrating a 

System configuration 200 is shown. The System configura 

tion 200 includes the remote unit 100 operatively coupled to a communication interface 210. A direct wireless link 207 

optionally couples the remote unit 100 to the communication 

interface 210. A direct wireless link is used in embodiments 

where the remote unit 100 maintains a direct wireless link 

with the communication interface 210. The communication 

interface thus provides an air interface for the direct wireleSS 

link. Alternatively or in addition to the direct wireless link 

207, a wireline link 208 couples the remote unit 100 to the 

communication interface 210. The communication interface 

210 maintains the connection 208 via a network interface 

coupled to a public Switched telephone network (PSTN) or 

a network Such as the Internet. This connection 208 may itself involve a microwave link, a wireleSS link through a 

public Switched cellular network or a wireless link in a PCS 

network. 

The communication interface 210 is preferably coupled to a communication Server 212. The communication Server 212 

may be thought of as generalization of a private branch 

exchange (PBX). The communication server 212 accepts tele-traffic from any variety of Sources and provides Swit 

chable connections to couple different Sources together. For 

example, the communication Server 212 may be imple 

mented as a PBX which receives a set of direct inward dial 

lines from a central office operated by the public telephone 

network. The PBX then provides local users with extensions 

and allows local users to call each other by dialing the last 

four digits of their telephone numbers. The PBX typically 

provides an outside line to a user once the user has dialed a C. 

The communication Server 212 may also be configured to 

provide additional types of connections, Such as packet 

based Voice and Video connections according to the H.323 

international Standard. In Such an embodiment, the commu 

nication Server 212 provides a gateway function passing 

calls between the public Switched telephone network and a 

network Such as the Internet. The communication server 212 

may also provide other communications Services Such as 

Voice mail, email, fax-mail, call distribution and the like. In 

Systems involving Internet telephony, the communication 

Server may operate only using packet protocols and not 

include an interface for circuit Switched connections. 

15 

25 

35 

40 

45 

50 

55 

60 

65 

12 

The communication interface 210 is also coupled to a 

virtual session server 215. The virtual session server 215 is 

coupled to a table Structure 225 and an application program 220. The table structure 225 is preferably implemented as a 

Software entity and may be located in a memory module 

within the server 215. The virtual session server 215 may be 

implemented as a Software entity which executes on a 

hardware platform. The hardware platform of the virtual 

Session Server 215 may be designed with an internal archi 

tecture similar to the remote unit 100 but is designed to 

provide a higher computation capacity and to handle mul 

tiple users. When Supporting a virtual Session Server, the 

display monitor 130 is optional as users may control the 

virtual session server 215 remotely. The control program 

module 120, when implemented in the virtual session server 

215 provides the serverside of the communication protocols 

discussed in connection with FIGS. 3-8. Hence the remote 

unit 100 and the virtual session server 215 involve similar 

architectures and respectively implement the client and 

Server Sides of a set of Virtual-Session-related communica 

tion protocols of the present invention. 

The application program 220 may execute on the same 

hardware platform as the virtual session server 215. In 

general, both the Virtual Session Server 215 and the appli cation program 220 may be implemented as Software mod 

ules running on personal computers, WorkStations, dedicated 

custom hardware, mainframe, or file Servers. For example, 

the virtual session server 215 may be implemented as a 

Software module running on an UltaSparcTM workstation or 

file server from Sun Microsystems Inc. The Software may be 

written to execute over a multitasking operating System Such 

as SolarisTM from Sun Microsystems Inc. or WindowsNTTM 

from Micrsoft Inc. In a first preferred embodiment, the 

application program 220 includes a distributed database 

program running on a collection of networked ServerS Such 

as Sun UltraSparcTM servers. In a second preferred embodiment, the application program may itself be a com 

munication Server as provided by an Internet Service pro 

vider (ISP). 

The system 200 is operative to implement a set of virtual 

Session communication protocols according to the present 

invention. The remote unit 100 establishes a session via the 

virtual session server 215 to set up a virtual presence with 

the application program 220. Preferably, the virtual session 

server 215 also provides a link to the communication server 

212 to provide it access to the virtual session. When the 

remote unit 100 disconnects from a physical connection 207 

or 208, the virtual session is maintained within the table 

structure 225. When the remote unit 100 later wishes to 

reestablish communication with the application program 

220, the virtual connection server 215 is operative to keep 

the virtual Session active and to allow the user rapid and 

nearly transparent access to the application program 220. 

Similarly, the Virtual Session also preferably is used to 

provide a virtual communication link between the commu 

nication sever 212 and the remote unit 100. In some systems, a first virtual session is established between the remote unit 

100 and the application program 220, and a second virtual 

session is established between the remote unit 100 and the 

communication server 212. The details of the operation of 

the virtual session server 215 and the virtual session proto 

cols are discussed below in connection FIGS. 3-8. Before 

proceeding to these portions of the detailed description, two 

embodiments of the system 200 are described. 

In a first exemplary embodiment of the system 200, a 

mobile worker Such as a home-care professional operates the 

remote unit 100 to establish and maintain a virtual session 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 12 of 24 PageID #: 328
US 6,574.239 B1 

13 

with the application program 220. In one embodiment, the 

application program 220 controls access to a database 

including complete medical and billing records for indi 

vidual patients. Depending on working conditions, the 

home-care professional may require access from a wireleSS 

connection Such as a cellular connection, or else may be able 

to communicate via a wireline connection provided within a 

patient's home. AS the home care professional proceeds through a given workflow, the professional will eventually 

need to communicate with the application program 220. 

When this time arrives, the present invention is operative to 

establish a physical connection between the home-care 

professional and the application program 220. The profes 

Sional need not be aware the physical connection has not 

been available Since the time the virtual Session was first 

established. The virtual session is maintained by the virtual 

session server 215 and the protocols of the present invention 

are employed to ensure Such a virtual connectivity is pro 

vided without the need for the remote unit 100 to be 

continuously connected to the application program 220. 

In a Second exemplary embodiment, the application pro 

gram 220 is a communication server operated by an ISP. In 

this example, the remote unit 100 is operated by an Internet user. After the Internet user has remained inactive for a 

period of time, the connection 208 is terminated. At a later 

time, when the Internet user clicks on a hyperlink, thus 

demanding Service, a short delay is incurred while the 

connection is reestablished. The remote unit is provided 

access without the user needing to reestablish a connection. 

When the user clicks on a hyperlink, the telephone is rapidly 

dialed without presenting dialing tones to the user. An 

authentication packet and a request packet are Sent using a 

low data rate protocol Such as one used for line-rate nego 

tiation in modems. The user is authenticated by the Server 

and the request packet is forwarded through the Internet to 

the Internet site referenced by the hyperlink. While the 

remote Internet Server takes time to respond to the request, 

a higher line Speed is negotiated in the background without 

burdening the user. Because a home Internet user uses the 

Same analog connection between the user's premises and a 

network interface, the modem parameters may be preferably 

saved by the server in the table 225 to accelerate 

re-negotiation. The user is provided access almost 

immediately, and the connection is reestablished transpar 

ently. Note while this example focuses on an Internet 

application, the techniques apply to any application whereby 

a network site is accessed by activating a hyperlink. 

AS will be discussed below, the virtual session between 

the remote unit 100 and the virtual session server 215 

provides a means to initiate transferS in both an uplink and 

a downlink direction. The uplink direction is from the 

remote unit 100 to the virtual session server 215, and the 

downlink direction is from the virtual session server 215 to 

the remote unit 100. A virtual session is said to exist between 

the remote unit and the virtual session server 215. This 

Virtual Session may be used to create individual virtual 

sessions between the remote unit 100 and the application 

program 220, and between the remote unit 100 and the 

communication Server 212. For example, an uplink connec 

tion is established, and when a home Internet user has been 

inactive for a period, the connection is dropped. AS dis 

cussed above, the connection is reactivated transparently 

when the user once again activates an Internet link, as in an 

Internet browser. In the same example, a user may have an 

email reader program connected through a virtual Session. If an email comes in for the user and the virtual Session is in 

place, the email should be rapidly forwarded to the user. To 

15 

25 

35 

40 

45 

50 

55 

60 

65 

14 

do this, the user's phone is dialed in a downlink direction 

dial-out link by the virtual session server 215 via the 

communication interface 210. The remote unit preferably 

Suppresses the first ring and examines caller identification 

data. When the caller identification data indicates the calling 

party is the virtual session server 215, the remote unit 100 

automatically picks up the call and in this example, accepts 

the email. If caller identification is not used, a Substitute 

protocol should be employed to assure that connection has 

been made to the proper application Session defined within 

the virtual session. The substitute protocol preferably involves Sending a packet header at the beginning of a call 

whereby the packet header contains one or more fields 

which identify associated the application Session. Again, the user need not even realize a connection has been reestab 

lished. Instead, the user receives the email message as 

though the connection had remained continuously active. 

Another type of operation may occur when the user of the 

remote unit 100 is actively connected to the virtual session server 215 and a call comes in directed to the remote user's 

extension. At this point the call is preferably converted into 

packets and is Sent to the user over the existing connection. 

In an alternative embodiment, the physical connection is 

automatically and temporarily dropped and the call is for 

warded to the remote user. The virtual connection to the 

application is maintained through the virtual Server. The 

communications module 125 preferably analyzes caller 

identification data to determine the incoming call is a voice 

call to cause the optional telephone aspect of the remote unit 

100 to ring. More details related to the foregoing system 

operation are discussed in connection with FIGS. 3-8 below. 

The virtual session server 215 is able to maintain an open logon to the application program 220. In one embodiment, 

the virtual session server 215 executes a client-side Software 

which interfaces with the application program 220. That is, 

if the application program 220 employs a client-server 

architecture, the application program 220 will implement a 

server-side Software module which interacts with the client 

Side Software. The Server-Side program performs database or 

other server oriented functions, while the client-side Soft 

ware provides a user interface to the user. The remote unit 

100 can then control the operations of the virtual session 

Server 215 using Standard remote Session Software. An 

example of commercially available remote Session Software 

is PCAnywhere TM from Semantec Corporation. In another 

embodiment, the Virtual Session Server executes the client 

side software in parallel with the remote unit. In still another 

embodiment, the remote unit executes the client-side 

Software, and the virtual Session Server merely provides a 

connection Stream to pass data from the application program 

220 to the remote unit 100. When the virtual session is in a 

deactivated State, the virtual Session Server emulates the 

client-side Software as needed to maintain an active Session 

with the application program 220 in the absence of the 

remote unit 100. A wide variety of equivalent techniques 

may be used to allow the virtual session server 215 to 

maintain a pointer or re-entry point into the application 220 

while acting as a proxy agent to maintain the logon for the 

remote unit 100. A table structure is preferably used to allow 

the Virtual Session Server to Simultaneously maintain a 

plurality of logons for a plurality of different remote units. 

In some embodiments, the remote unit 100 may need to 

maintain a plurality of Virtual Sessions with a plurality of 

different virtual Session Servers. For example, an indepen 

dent contractor may provide home-care Services for two 

distinct health regions. Each health region may use a sepa 

rate database. The remote unit 100 may then access these 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 13 of 24 PageID #: 329
US 6,574.239 B1 

15 

Separate databases using a first and a Second client-side 

application Software module. During the course of a day, the 

remote unit may need to activate the first or the Second 

client-side application Software modules. In Such case the 

remote unit 100 is operative to maintain a table structure 

similar to the table structure 225. The table structure main 

tained by the remote unit links an application Software 

module through an application Session to a virtual Session. 

When the first client-side application program demands 

access to a first database, the virtual Session layer Software 

154 in the remote unit causes a physical connection to be 

established to Support Virtual Session communications 182 

with the first database application program. Likewise, if the 

Second client-side application Software module desires to 

access a Second database, the virtual Session layer Software 

module 154 activates a physical layer connection back to the 

Second database Server. In other applications a single appli cation program may be used which accesses information on 

more than one virtual Session Server. In Such case a single application program can Select the virtual Session to activate 

based on the communications request generated from within 

the application program. In Still other embodiments, a Single 

physical connection 208 or 207 may be used to communi 

cate with the communication interface 210. The communi 

cation Server 212 then forwards packets to a first local virtual 

session server Such as the virtual session server 215. If the 

received communication packets are destined for a Second 

Virtual Session Server, then the communication Server 212 

preferably forwards the packets to a remote virtual Session 

Server using a network connection Such as an Internet 

connection. 

Referring now to FIG. 3, a method 300 is illustrated to 

show how the remote unit 100 preferably operates to acti 

vate a connection. The method 300 is preferably practiced 

by the remote unit 100 in support of a virtual session with 

the virtual session server 215. A first step 305 of the method 

300 involves actions within a workflow process 305. The 

workflow process 305 includes the step 305 of the method 

300 and also performs other activities to interact with a 

user's workflow requirements. Control loops from the first 

step 305 back to the first step 305 via a control path 310. The 

Workflow, as discussed above, is preferably made up of a 

menu System and/or a set of interactive Screens traversed by 

a worker in performing a set of tasks. For example, a 

home-care professional's workflow involves accessing and 

displaying a patient's medical record, entering a set of data 

into the medical record, and performing tasks indicated by 

the doctor's directions as annotated in the medical record. In 

this example, as the home-care professional moves from one 

screen to the next, control loops via the control path 310. 

The workflow process 305 is an application program which 

executes on the CPU 105. The workflow process 305 is 

preferably implemented as a proceSS running on the CPU 

105 in a multitasking operating environment. A multitasking 

operating environment is one in which multiple programs or 

processes may execute in parallel by Sharing time slots 

within the CPU 105. Multitasking operating system software 

is well known and is readily available. In a multitasking programming environment a first process may execute in a 

normal fashion and provide an interface to a user. At the 

Same time a Second proceSS may be executed by Sharing 

CPU cycles without the user's intervention or knowledge. In 

Such a case the Second process is said to be a background 

proceSS or is said to perform background processing. At 

Some point in the course of the workflow, a physical layer 

communication connection will be needed to communicate 

information between the remote 100 and the application 

program 220. 

15 

25 

35 

40 

45 

50 

55 

60 

65 

16 

When a step in the workflow process 305 is performed leading up to the need for a physical layer communication 

connection, control next passes from the first step 305 to a 

second step 320 via the control path 315. The control path 315 is activated when the workflow process 305 provides a 

prediction indicating a physical layer communication con 

nection will Subsequently be needed. In Some cases the 

prediction may be provided right when the physical layer 

communication connection is needed. In other cases, the 

prediction 315 may be used to initiate background process 

ing to download data which will not be needed until a later 

time. In menu based systems, the prediction 315 may be 

learned by observing the workflow habits of a user. The 

prediction 315 is a function of the application program or 

workflow 305 and is optional. In the second step 320, a 

connection is established in the background. Background 

processing enables the user to continue interacting with the 

workflow process 305 while a physical layer communication 

connection is simultaneously and transparently established. 

That is, the physical layer communication path is reestab 

lished without inhibiting the user from interacting with the 

workflow 305. Hence when control passes via the control 

path 315 to the step 320, control preferably simultaneously 

passes via the control path 317 back into the workflow. The 

background proceSS is preferably forked as a separate task 

and two execution flows proceed in parallel by time sharing 

the CPU 105. Multitasking is well known in the art and is 

implemented using interrupt based processing. In alternative 

embodiments the control path 317 may be deleted and a 

Single control flow may be implemented using the control 

path 315. However, this embodiment may require the user to 

wait for the connection to be established and is hence not 

deemed to be the preferred embodiment of the method. 

Other equivalent embodiments Set up the communication 

path transparently by multiplexing the CPU 105’s compu 

tation cycles from within the workflow process or Some 

other process. 

Once control has been forked via the control path 315 to 

the second step 320, a dialer within the communications 

module 125 preferably dials to establish a physical layer 

communication connection with the communication inter 

face 210. In embodiments using dedicated radio links, the 

connection may be established over the wireless link 207. 

One preferred embodiment of a remote unit 100 incorporates 

a cellular radio. In this case the dialer dials a telephone 

number and a connection is established using a public Switched cellular telephone network So that the connection 

is set up on the link 208. Stationary Internet based embodi 

ments perform the Second Step 320 by dialing a telephone 

number using an automatic dialer which dials a land line 

connection for a modem. In all cases, it is preferred to 

SuppreSS the dialing tones and line-rate negotiation signals 

So the connection may be established transparently to the USC. 

Control next passes from the second step 320 to a third 

step 325. In the step 325, an authentication code is trans 

mitted from the remote unit 100 to the communication 

interface 210. This authentication code is then passed to the 

virtual session server 215. The virtual session server evalu 

ates the authentication code to determine if acceSS is to be 

permitted. In a preferred embodiment, the authentication 

code involves a digital Signature as is known in the field of 

public key cryptography. In a preferred embodiment, all 

transmissions are encrypted using public key cryptography. 

Some Systems may be implemented using various encryp 

tion Standards Such as Secure Sockets layer based encryption. 

The amount of authentication and encryption used in any 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 14 of 24 PageID #: 330
US 6,574.239 B1 

17 

given embodiment is left to the System designer, but pref 

erably all transactions are encrypted as described above. 

Control next passes from the third step 325 to a fourth step 

330. In the fourth step 330, a session is established/ 

reactivated with the virtual session server 215. The session 

is established the first time the method 300 passes control to 

the step 330. Subsequently the step 330 is operative to 

reactivate the session with the virtual session server. When 

the Session between the remote unit 100 and the virtual 

Session Server 220 is reactivated, Virtual Session communi 

cations resume. At this point, the virtual Session Server 215 

correlates information stored in the table structure 225 with 

the connection and provides the remote unit 100 access to 

the application program 220. If no data is Stored in table 

Structure 225, acceSS is provided to a default logon Screen 

allowing remote unit 100 to establish a new application 

session. The virtual session server 215 then populates the 

table structure 225 to establish a virtual session. The step 

330 involves setting up a stream connection between the 

workflow process 305 and a protocol stack. The protocol 

Stack is operative to read information bits from the Stream 

connection and communicate the bits acroSS an external 

communication link. Bits received over the external com 

munication link are converted by the protocol Stack into 

information bits to be sent back to the workflow process 305 

acroSS the connection Stream. Once the appropriate commu 

nication processes are configured, control next passes back 

to the workflow process 305. Due to the aforementioned 

forking operation, the passing of control back to the work 

flow process 305 may have already occurred via the control 

path 317. In this case the passing of control from the step 330 to the workflow process is not explicitly performed. 

When control loops back from the fourth step 330 to the 

workflow process 305, a physical layer communication 

connection is activated for current or Subsequent communi 

cation. When the user gets to a point in the workflow where 

communication with the application program 220 is needed, 

the connection has already been transparently Set up in the 

background. Hence the user gets the feel of being connected 

to the application program 220 all the time, where in fact the 

remote 100 is connected via a physical channel to the 

application program 220 only a fraction of the time. This 

Virtual connection Saves communication resources and 

money when a toll is charged based on the amount of usage 

on the link 207 or the link 208. In some embodiments, the 

fourth step 330, or an execution thread within the workflow 

305 is operative to upload or download information in the 

background. This way the user has ready access to data 

contained in the application program 220, but in general a 

shorter connect time is required. While with prior art sys 

tems it is burdensome for a user to connect to a central Server 

and download and upload information, with the Virtual 

Session of the present invention the user need not even be 

aware this process is occurring. Rather the user feels as 

though he or she is continuously connected with a fast 

connection because the data needed at a given point in the 

workflow is already available locally or has been uploaded in the background transparently without user intervention. In 

Systems where server Synchronization is an issue, file Sema 

phores and/or direct active Sessions not employing upload ing and/or downloading of records may be used. 

Based on another point in the workflow, another predic 

tion is made to predict when the communication channel 

will not be needed for some time. For example, it may be 

known, based on the workflow, the home-care professional will next perform a Sequence of tests and enter data into a 

Screen displayed on the remote unit. Only at a later time will 

15 

25 

35 

40 

45 

50 

55 

60 

65 

18 

the workflow come to a point where this information is to be 

uploaded to the application program 220. When Such a 

prediction is made, control passes from the first step 305 via 

the control path 318 to a fifth step 335. The fifth step 335 is 

operative to deactivate the connection established over the 

link 207 or the link 208. The step 335 may optionally involve forking a Separate execution thread or otherwise 

accessing a separate process in a multitasking environment. 

Alternatively, the fifth step 335 may be performed by 

executing a set of instructions in the workflow process 305. 

At a later time, a prediction may be made indicating the link 

207 or 208 needs to once again be activated, whereby 

control again passes over to the Second Step 320 via the 

control path 315. It should be noted different systems will 

typically Set their prediction times according to the eco 

nomic conditions involved. For example, in Some Systems 

the first minute of connection time may cost five times as 

much as all Subsequent minutes. In this case predictions 

would be preferably Set according to a criterion to minimize 

cost by not establishing and terminating connections more 

often than necessary. If a flat rate were charged per minute 

connections would be set-up and terminated more often. If 

automatic uploading and downloading is performed in the 

background, a very efficient use of airtime can often be 

achieved while presenting the user with the appearance of 

being continuously connected to the application program 

220. 

Referring now to FIG. 4, a method 400 of establishing a 

communication link with low delay is illustrated. The 

method 400 may be practiced by both the remote unit 100 

and the communication interface 210. This method is most 

applicable to Systems involving modems whereby digital 

data is transferred over an analog channel requiring receiver 

training. Receiver training involves transmitting data 

Sequences through a channel and allowing a receiver to 

adjust its receiver parameters. Receiver parameters include 

echo canceller and equalizer filter coefficients. Most Systems 

also adjust their data rates and Signal constellations based on 

observed conditions. In modems, this entire process is 

known as line-rate negotiation. Prior art Systems involving 

receiver training are tedious to use because they force the 

user to wait while the receiver is trained. Most Systems play the training Signals though a speaker to allow the user to hear 

the training process. This lets the user know what the 

computer is doing for the duration of the delay. The method 

400 improves upon this prior art solution by allowing the 

user to gain almost immediate access without a significant delay. 

In a first step 405, a protocol stack or other process 

practicing the method 400 receives a communications 

request from a user program. For example, this occurs when a user clicks on an icon to initiate the establishment of an 

Internet connection. Control next passes to a step 410 where 

the connection is initiated. This Step typically involves an 

automatic dialer dialing the number of an Internet Service 

provider (ISP). The ISPsoftware may be implemented as a 

communication Server application corresponding to the 

application program 220. In this case access to the applica 

tion program is governed by the Virtual Session Server 215. 

Control next passes from the second step 410 to a third 

step 415. In the third step 415 an authorization sequence is 

eXchanged. In a preferred embodiment public key cryptog 

raphy involving digital Signatures and keys is used. Embodi 

ments involving a virtual Session Server 215 either Set up a 

Session or activate an existing Session during the third Step 

415. Control next passes from the third step 415 to a fourth 

step 420. In the fourth step 420, one or more initial appli 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 15 of 24 PageID #: 331
US 6,574.239 B1 

19 

cation layer data packets are transmitted acroSS the connec 

tion using a low speed protocol. A low speed protocol is used 

by the transmitter and receiver when performing line-rate 

negotiations. For more details of line-rate negotiation 

protocols, see, for example, the V.34 and V.90 standards 

from the International Telecommunications Union. In the 

present invention, the low Speed protocol is used to transmit 

application layer data before the line-rate negotiation pro 

cedures have completed. This avoids the need for the user to 

wait for line-rate negotiation to complete before being able 

to access a communication path. 

Control next passes from the fourth step 420 to a fifth step 

425. In the fifth step 425, initial data is displayed. Software 

located locally in the remote unit 100 preferably contains 

high-volume graphics related data So that the initial data 

eXchange of the Step 420 only requires a Small amount of 

data to be transferred. For example, the user logs onto the 

Internet and almost immediately Sees a Screen of informa 

tion indicating the user is connected and the System is ready 

to accept inputs. This is made possible by displaying locally 

held Screens of graphical data and allowing a Small amount 

of Specific information Such as time, date, and headlines to 

be received and displayed. If the user then immediately clicks on a link, an application layer request packet is sent 

using the line-rate negotiation protocol's data format. This 

allows the user to immediately begin making requests before 

the line-rate negotiations have completed. In many cases the 

user will pause and read the headline information, giving the 

System even more time to perform line-rate negotiation in 

the background. 

Control next passes from the fifth step 425 to a sixth step 430. In the sixth step 430, a background process is forked to 

perform line-rate negotiation. Line-rate negotiation is 

allowed to proceed in the background while the user is 

reading the information provided on the initial display of the 

Step 425. Likewise, if the user had rapidly clicked on a link, 

a request packet is Sent out and while the Server is respond ing to the request, the background line-rate negotiation may 

proceed. The step 430 is operative to perform line-rate 

negotiation So as to set up a high-speed connection for 

Subsequent higher Volume data transferS. In embodiments 

involving a virtual Session Server 215, the user's line Speed 

parameters may be stored in the table structure 225. For 

example, if the user is an Internet user and the application 

program 220 is an ISP, the user will often dial in from the 

Same location. Thus parameters derived in a previous acti 

Vation of a communication channel will be either identical or 

Similar to those used in a current activation. Hence the Sixth 

step 430 optionally involves accessing from the table 225 a 

Set of Starting parameters derived from the activation of the 

communication channel. If communication is needed before 

the line-rate negotiation has completed, communication 

preferably proceeds at the highest rate negotiated up to that 

point. 

Once the line-rate negotiation process of the step 430 has 

completed, control passes to a Seventh Step 435. In the Step 

435, communication is able to proceed at full speed. In most 

cases where this method is implemented, the user will get 

the full benefit of being connected almost immediately 

without the normal delay associated with prior art Systems. 

This is So because initial low-volume data is allowed to pass through the channel before the line-rate negotiation has 

completed. Line rate negotiation then proceeds in the back 

ground in parallel with other activities Such as the user 

reading headline information or a distant Server accessing data and responding to the initial data request packet Sent 

acroSS the Internet. This technique is useful when a user is 

15 

25 

35 

40 

45 

50 

55 

60 

65 

20 

maintaining a virtual Session with a remote Server because it 

is imperative to allow the user to appear to be connected 

without having to experience delays when accessing data. 

The method 300 and the method 400 may be performed together in a complementary fashion to make the Virtual 

Session appear to be constantly available. 

The method 400 may be practiced by the remote unit 100 

and the virtual session server 215. When the remote unit 100 

initiates the method, the virtual session server 215 executes 

steps 410, 415, 420, 430 and 435. When the virtual session 

Server 215, the application program 220, or the communi 

cation Server 212 initiates the method, one or a combination 

of these servers practice the steps 405, 410, 415, 420, 430, 

and 435. The first step 405 involves, for example, receiving 

a communication request Such as a telephony call or an 

email for the remote unit 100. In some systems, the first step 405 may involve a request generated from within the appli cation program 220. 

Referring now to FIG. 5, a method 500 of establishing and 

operating a virtual Session is illustrated. For example, the 

method 500 establishes a virtual session between the remote 

unit 100 and the virtual Session server 215. The method 500 

is practiced by both the remote unit 100 and the virtual 

session server 215. In a first step 505 a first physical layer 

communication connection is established with a remote 

entity. If the method is practiced by the remote unit 100, then 

the remote entity typically corresponds to the virtual Session 

server 215. The virtual session may be used to support 

virtual Sub-sessions between the remote unit 100 and the 

application program 220. Also, a virtual Sub-Session may be 

established between the remote unit 100 and the communi 

cation Server 212. For the purposes of discussion herein, all 

of these virtual sessions will be referred to simply as virtual 

sessions. If the method 500 is practiced by the virtual session 

Server 215, then the remote entity typically corresponds to 

the remote unit. The step 505 may be activated according to 

the prediction 315, and the step 505 may use the method 400 

to allow the connection to be set up with very low delay. 

Control next passes from the first step 505 to a second step 

510. In the second step 510 a session is established with the 

remote entity. In a preferred embodiment, this involves 

eXchanging password information and agreeing upon a Set of 

keys to encrypt data transacted in the Session. Also, the 

virtual session server 215 preferably sets up a table entry in 

the table structure 225. The table entry indicates the pres 

ence of a virtual Session. The table entry may include 

modem parameters as discussed in connection with FIG. 4. 

Also, the virtual Session as Set up in the table entry links the 

remote unit to a user identification and a password as 

presented to the application program 220. For example, a 

user name and a password may be used as user authentica 

tion parameters. Preferably public key encryption is used to 

encrypt all information So the password Sent from the remote 

unit 100 to the application program 220 cannot be effectively 

intercepted. The remote unit 100 also preferably sets up a 

Virtual Session data structure to hold Similar information 

related to the virtual Session. Once the Virtual Session has 

been Set up, the remote unit 100 may access the application 

program 220. Also, the remote unit 100 may optionally access the communication Server 212 for communication 

Services. 

Control next passes from the second step 510 to a third 

step 515. In the third step 515, the physical connection 

established in the first step 505 is dropped. Meanwhile the 

Virtual Session data Structures and table entries established in 

the second step 510 are retained. The session is allowed to 

proceed while no physical layer connection exists. That is, 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 16 of 24 PageID #: 332
US 6,574.239 B1 

21 

the step 510 is operative to set up a table structure including one or more data Structures which allows a virtual Session to 

be maintained in memory while other activities occur. Hence 

a passive background thread of execution passes from the 

step 510 to a passive step 540 whereby the virtual session is 

maintained. This allows the remote unit 100 to stand by or 

be used for steps of the workflow process 305 not requiring communication with the application program 220. Once the 

user needs to communicate with the application program 

220, or when a prediction 315 is made, control next passes 

from the third step 515 to a fourth step 520. The step 520 is 

operative to reestablish a Second physical layer communi 

cation connection to allow communication to proceed once 

again using the Session established in the Second step 510. 

This connection reestablishment may be performed in 

response to the prediction 315 and may use the low-delay 

connection establishment technique of the method 400. 

In Some embodiments, the present invention involves 

using distinct and Separate communications media to per 

form the step 505 and the step 520. For example, a mobile 

worker may call in from home to Set up the virtual Session 

in the Step 510 using the first physical layer communication 

connection established in the step 505. Later in the day, the 

worker may call in from a restaurant while catching up on 

Some records keeping. This Second use of the virtual Session 

involves use of the Second physical layer communication 

connection which in this example is a wireleSS connection 

different from the landline connection used to initiate the 

Session from home earlier in the day. At a Still later time, the 

worker may call in from a patient's home via a third physical 

layer communication connection while performing home 

care Services. If modem Starting parameters have been Stored 

in table 225, they are preferably updated whenever the 

communication connection is changed. Hence the Virtual 

Session of the present invention enables a mobile worker to 

continue communications via the most expedient and/or 

economical means without causing the user to have to 

reestablish a communication connection. Preferably, when 

the remote unit 100 is connected to a communications 

Source via the connector 127, the remote unit 100 automati 

cally detects this connectivity and makes use of it for 

Subsequent Virtual-Session communications. That is, the 

present invention contemplates the availability of various 

forms of "pigtail” connectors being available So the remote 

unit 100 can operate in a “plug-and-play” fashion. Pigtails 

may be Supplied to allow the remote unit to connect to the 

PSTN, the Internet, or to another computer via a universal 

Serial bus, for example. 

Control next passes from the fourth step 520 to a fifth step 

525. In the fifth step 525 an authorization sequence is 

eXchanged. This is preferably implemented using public key 

encryption and digital Signatures. Some embodiments may 

be developed which do not implement the fifth step 525, but 

preferred embodiments do make use of user authentication. 

After the fifth step 525 has completed, the session is 

resumed in a sixth step 530. Over the course of the virtual 

session, control may loop back to the third step 515 as many 

times as the Virtual Session is activated with a new physical 

connection. When the sixth step 530 is entered, the virtual 

Session is once again activated So that the passive Step 540 

also passes control to the sixth step 530. In a minimal 

implementation of the method, no looping occurs and the 

method terminates after the first pass through the Sixth Step 

530. 

Referring now to FIG. 6, a method 600 practiced by the 

virtual session server 210 is illustrated. In a first step 605, a 

first physical layer communication connection is established 

15 

25 

35 

40 

45 

50 

55 

60 

65 

22 

for communicating with the remote unit 100. Control next 

passes to a Second step 610 whereby a set of authorization 

parameters are accepted and authenticated. AS discussed in 

connection with FIG. 5, the authentication parameters pref erably include the exchange of public keys which include a 

digital Signature in accordance with public key cryptogra 

phy. Control next passes to a third step 615 where a user 

identification and a password are passed by the Virtual 

session server 215 to the application program 220 on behalf 

of the remote unit 100. AS discussed in connection with FIG. 

5, the user identification and the password to be presented to 

the application program 220 are preferably transmitted in 

encrypted form. Once the application program 220 authen 

ticates the user identification and password needed to gain 

access, the virtual Session Server 215 enters an entry into the 

table structure 225 to hold a set of Session parameters. The 

Session parameters include the user identification, a Session 

identifier, encryption data and possibly other data Such as 

modem Starting parameters. Once the Session has been 

logged into the table, the user may use it to communicate 

with the application program 220. 

Control next passes from the fourth step 620 to a fifth step 

625. In the fifth step 625 the physical layer connection is 

dropped. This Step is performed when the remote unit does 

not currently require communications with the application 

program 220. In step 650 the virtual server maintains the 

application Session while the physical connection is discon 

nected. At a later time, when the user needs access to the 

application program or when the prediction 315 is made, 

control next passes to a sixth step 630. In the sixth step 630 

a Second physical layer connection is established to allow 

communication between the remote unit 100 and the appli 

cation 220 to resume. As discussed in connection with FIG. 

5, the Second physical layer connection may involve a 

different communication path and/or medium as was used 

for the first physical layer connection. That is, a plurality of 

communications media are preferably Supported to allow the 

user to call in Via different means, for example via a wireleSS 

or a wireline connection. The step 630 may be initiated due 

to actions at the remote unit 100 or in response to events 

occurring in the Server. For example, the communication 

Server 212 may receive a call for the remote unit. Alterna 

tively an email may be received which needs to be for 

warded to the remote unit. In such a case, the sixth step 630 

optionally involves Sending a caller identification packet to 

let the remote unit know what type of communication, Such 

as a voice telephony call, an email, or a fax, is inbound. A 

caller identification packet is a Sequence of information bits 

Sent acroSS a communication connection identifying the 

calling party of the connection. In Standard telephone 

Systems, the caller identification packet is transmitted 

between the first and Second rings when the telephone call 

is being Set-up. More details relating to communications 

initiated by the virtual session server 215 back to the remote 

unit 100 are discussed in connection with FIG. 7. 

Once the Second physical layer communication connec 

tion is established in the sixth step 630, possibly according 

to the method 400, control next passes to a seventh step 635. 

In the seventh step 635, authorization codes are verified 

similarly to the second step 610. Once the user codes have 

been Verified to be correct, control next passes to an eighth 

Step 640 whereby communication once again resumes using 

the previously established Virtual Session. 

Referring now to FIG. 7, a method 700 of processing 

communication requests in a virtual Session is illustrated. 

This method is preferably practiced by the virtual session 

server 215 simultaneously with the method 600. In a first 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 17 of 24 PageID #: 333
US 6,574.239 B1 

23 

step 705 a virtual session is established between the virtual 

session server 215 and the remote unit 100 as discussed in 

connection with FIGS. 5 and 6. At some later time, while the 

Virtual Session is active, the communication Server 212 

receives an incoming communication request for the remote 

unit 100. Because the virtual session server 215 practices the 

method 500 and/or the method 600, depending on the time 

of arrival of the communication, the remote unit 100 may or 

may not be physically connected to the Virtual Session Server 

215 by a physical communication link. Hence when the 

communication is received, control passes from the step 705 

based on a decision 710 which determines whether a physi 

cal connection currently exists to the remote unit 100. 

If the virtual session is presently in a state whereby the 

physical connection has been disconnected, control passes 

from the first step 705 to a second step 715. In the second 

Step 715 the communication request is accepted by the 

communication Server 212 through a direct connection or 

via the communication interface 210. Control next passes to 

a third and optional step 720 whereby a specific caller 

identification packet is associated with the communication 

type. For example, if the communication involves a tele 

phone call a fist caller identification packet is sent identify 

ing an extension used for telephone calls. If the communi 

cation involves an email, a Second caller identification 

packet is Sent identifying an extension used for email. On the 

other hand, if the communication comes from the applica tion program 220, Still another caller identification packet is 

Sent. When this optional use of a caller identification packet is employed, the remote unit 100 has the information needed 

to properly and immediately respond to an incoming call as 

discussed in connection with FIG.8. If a call is received by 

the remote unit from a Source other than the Virtual connec 

tion server 215, the caller identification information will 

identify the call as not being associated with the Virtual 

session. Control next passes to a fourth step 725 whereby an 

automatic dialer responds to communication requests and 

the communication is forwarded to the remote unit 100. 

Another situation arises when the communication request 

arrives while the remote unit 100 and the virtual session 

Server 215 are currently connected by an existing physical 

channel. According to one mode of processing, control stays 

in the first step 705 while communication proceeds in an 

active phase of a virtual Session. When the communication 

request arrives, the communication Server 212 Signals to the 

Virtual Session Server that a new call has arrived for the 

remote unit 100. The virtual session server then causes the 

existing physical layer communication connection to be 

dropped and thus control passes from the first step 705 to the 

Second Step 715 as in the foregoing discussion. In another 

mode of processing, the existing physical layer communi 

cation connection is left in tact and control passes from the 

first step 705 to a fifth step 745. In the fifth step 745, the 

communication is packetized, and in a sixth step 750 the 

communication packets are passed along the existing physi 

cal layer communication connection. Control continues to 

loop back from the sixth step 750 to the fifth step 745 during 

the course of the communication. In this mode of operation the existing physical layer communication connection is 

shared to provide the remote user with a means to Stay connected to the application program 220 and communicate 

at the same time. In this case the physical layer is time 

shared by the virtual session to allow multiple modes of 

communications to proceed in parallel. 

Note the method 700 provides the user of the remote unit 

100 with a virtual presence in the work place while actually 

being remote. Independent of whether the remote unit is 

15 

25 

35 

40 

45 

50 

55 

60 

65 

24 

presently actively connected to the virtual Session Server, the 

communication request may be forwarded to the remote unit 

100 making the remote user appear to be present in the office 

at all times. The only time the remote unit 100 would not be 

reachable is when it is engaged in a communication with an 

entity other than the virtual connection server. This problem 

may be mitigated by allowing the remote unit to only be 

reachable through the access number provided by the com 

munication Server 212. If a call is placed from the remote 

unit to another point, this call too may be routed through the 

communication server 212. Systems which do allow the 

remote unit to make calls outside the Virtual Session may preferably employ voice mail at the communication Server 

212. When the remote unit again becomes available, the 

virtual session server 215 may forward the communication 

to the remote unit according to the method 700. Remote 

units may also be designed using call-waiting concepts 

whereby the virtual session may be re-activated by inter 

rupting another call. 

Referring now to FIG. 8, an optional method 800 prac 

ticed by the remote unit 100 is illustrated. This method is 

practiced when a virtual Session exists, the remote unit and 

the Virtual Session Server are presently not connected via a 

physical channel, and a communication request is to be 

forwarded to the remote unit 100. In a first step a first ring Signal is detected. Optionally, the first ring Signal is Sup 

pressed So the user will not hear it. In Some Systems a 

Vibrational first ring Signal may be allowed to pass through 

to notify the user of an incoming communication. In Still 

other embodiments, the remote unit may be programmed to 

Sound a normal ring on the first ring Signal. In Some 

embodiments the ring Signal will not be a traditional tele 

phone ring Signal but will in general be any signal indicative 

of an incoming communication request. 

In current Systems, a caller identification packet is pre 

Sented to the called party after the first ring Signal. Hence 

identification of the calling party becomes available at this 

time. After the first ring Signal, control passes from the first 

step 805 to a second step 810. In the second step 810, the 

caller identification information is evaluated. Note it would 

be preferable to accept the caller identification data before 

the first ring, and the present invention contemplates Sys 

tems whereby the virtual session server 215 signals to the 

PSTN to provide a caller identification packet before the first 

ring. This Service does not appear to be available from 

telephone Service providers at this time. Embodiments also 

comprehended by the present invention include Systems 

whereby the remote unit 100 immediately picks up an 

incoming call and caller identification information is Sent by 

the virtual connection server 215 over the connection iden 

tifying the call-type. During the second step 810, the caller 

identification packet is evaluated. AS discussed in connec 

tion with the third step 720 of the method 700, the virtual 

Session Server 215 Sends out a caller identification packet to 

identify the type of incoming call. For example, different 

caller identification packets indicate whether the incoming 

call is an email, a Voice telephone call, or a communication 

from the application program 220. 

Control next passes from the second step 810 to a third 

step 815. In the third step 815, an application layer program is Selected to process the incoming call. In the foregoing 

examples, an application may be launched to accept an email 

message, a voice telephone call, or to accept a communica 

tion from the application program 220. If the communica 

tion is an email, it may be desirable to pop a mailbox icon 

on the Screen or to produce a Speech Signal Stating "you've 

got mail.” If the incoming call is a voice call, it may be 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 18 of 24 PageID #: 334
US 6,574.239 B1 

25 

desirable to allow the telephone to ring like a normal 

telephone. If the communication is from the application 

program 220, it may be desirable to update data located in 

the Screens of the workflow or otherwise Signal the presence 

of new data. Once the appropriate application has been 

launched to handle the incoming communication, control 

next passes to a fourth step 820 whereby communication 

Session is reactivated and the communication is processed. 

For example, one or more packets of information may be 

received and related information Such as an email message 

may be displayed. Also, a telephone call may be allowed to 

proceed or a set of information may be downloaded from the 

application program 220. 

Although the present invention has been described with 

reference to specific embodiments, other embodiments may 

occur to those skilled in the art without deviating from the 

intended Scope. For example, other forms of communica 

tions Such as fax messages may be accepted and displayed 

by the remote unit 100. Also, the present invention may be 

used for applications other than mobile workers and Internet 

users. Virtual Sessions according to the present invention are 

applicable to any Situation where a continual connectivity is 

required but the cost to remain continuously connected is 

high. Vehicle computers with cellular radio based Internet 

connections are an example. In Such Systems, the remote 

unit 100 may be a vehicle-mounted computer or may include 

a connection to a vehicle-mounted computer. Also, Virtual 

Sessions according to the present invention are applicable to 

any situation where the user should not be burdened with the 

need to upload and/or download data and go through con 

nection and disconnection procedures. Therefore, it is to be 

understood that the invention herein encompasses all Such 

embodiments which do not depart from the Spirit and Scope 

of the invention as defined in the appended claims. 

What is claimed is: 

1. For use in controlling a virtual Session, a method 

comprising: 

establishing a virtual Session with a remote entity, the 

Virtual Session being instantiated to Support an appli cation layer program; 

placing the virtual Session in an inactive State; 

receiving an incoming call; 

reading a set of caller identification information from Said 

call; 

checking the Set of caller identification information to See 

if it identifies the application layer program; and 

if the Step of checking results in a match, activating the 

Virtual Session. 

2. The method of claim 1, wherein the virtual session is 

also established to Support a Second application program, the 

Step of checking involves determining whether any of the 

application program or the Second application are identified 

by the Set of caller identification information, and if the Step of checking results in a match, additionally Selecting which 

of the application programs to launch. 

3. The method of claim 1, wherein a second virtual 

Session is also established to Support a Second application 

program, the Step of checking involves determining whether 

any of the application program or the Second application are 

identified by the set of caller identification information, and 

if the Step of checking results in a match, additionally 

checking which of Virtual Sessions to activate and which the 

application programs to launch, and in the Step of activating, 

activating the identified virtual Session and application. 

5 

15 

25 

35 

40 

45 

50 

55 

60 

65 

26 

4. For use in controlling a virtual Session, a method 

compriSIng: 

establishing a virtual Session with a remote entity, the 

Virtual Session being instantiated to Support at least one 

application layer program; 

placing the Virtual Session in an inactive State; 

receiving a ring Signal via a communication path; 

reading a set of information that follows the ring Signal; 

checking the Set of information to see if it identifies the 

application layer program; and 

if the Step of checking results in a match, activating the 

Virtual Session and coupling the at least one application 

to the remote entity thereby. 

5. For use in controlling a virtual Session, a method 

comprising: 

establishing a virtual Session with a remote entity, the 

Virtual Session being instantiated to Support at least one 

application layer program; 

placing the Virtual Session in an inactive State; 

receiving an incoming communication request; 

reading a set of information associated with Said incoming 

communication request; 

checking the Set of information to see if it identifies the 

application layer program; and 

if the Step of checking results in a match, activating the 

Virtual Session and coupling the at least one application 

to the remote entity thereby. 

6. For use in controlling a virtual Session on a Server, a 

method comprising: 

establishing a virtual Session with a remote unit, the 

Virtual Session being instantiated to Support at least one 

application layer program; 

placing the Virtual Session in an inactive State; 

dialing a telephone number corresponding to Said remote 

unit to cause a ring Signal followed by a set of 

application-program identifying caller identification 

data to be delivered to Said remote unit; and 

placing the Virtual Session back into the active State and 

transferring data between the application and the 

remote unit via the virtual Session in response to Said 

Step of dialing. 

7. For use in controlling a virtual Session on a Server, a 

method comprising: 

establishing a virtual Session with a remote unit, the 

Virtual Session being instantiated to Support at least one 

application layer program; 

placing the Virtual Session in an inactive State; 

Sending a signal indicative of an incoming communica 

tion request and an application-program identifying 

packet to Said remote unit, Said application-program identifying packet identifying an application program 

that needs to resume a virtual Session and communicate 

with Said remote unit; and 

placing the Virtual Session back into the active State and 

transferring data between the application and the 

remote unit via the virtual Session in response to Said 

Step of Sending. 

8. A method of pausing a modem connection and recon 

necting a telephone modem to a far end modem with a 

reduced delay by reducing a time associated with line rate 

re-negotiation, the method comprising: 

initializing a first communication connection with the far 

end modem over a wireline telephone communication 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 19 of 24 PageID #: 335
US 6,574.239 B1 

27 

channel using the telephone modem, the initializing being performed at least partially by performing a line 

rate negotiation Sequence with the far end modem to 

derive a first Set of modem parameters to be used to 

Support communications over the wireline telephone communication channel; 

Storing the Set of modem parameters in a memory; 

communicating at a negotiated data rate via the first 

communication connection with the far end modem 

using at least one of the first Set of modem parameters, 

receiving a first indication associated with a request to 

temporarily Suspend modem communications, 

in response to the first indication, terminating the first 

communication connection; 

receiving a Second indication associated with a request to 

resume modem communications, 

in response to the Second indication, accessing from the 

memory a plurality of the first Set of modem parameters 

and using the accessed modem parameters as modem 

Starting parameters in a line rate re-negotiation 

Sequence, and initializing a Second communication 

connection to the far end modem over the wireline 

telephone communication channel using the telephone 

modem, the initializing of the Second communication 

connection being performed at least partially by per 

forming the line rate re-negotiation Sequence to derive 

a re-negotiated Set of modem parameters to be used to 

Support communications over the Second communica 

tion connection of the wireline telephone communica 

tion channel; and 

communicating at a re-negotiated data rate via the Second 

communication connection using at least one of the 

re-negotiated Set of modem parameters, 

wherein the accessed modem Starting parameters are used 

to accelerate the derivation of the re-negotiated Set of 

modem parameters with respect to the time required to 

derive the first Set of modem parameters, and whereby 

a Setup delay time associated with the initialization of 

the Second communication connection is shorter than a 

Setup delay time associated with the initialization of the 

first communication connection. 

9. The method of claim 8, wherein the line rate negotia tion is performed at least partially in accordance with the 

V.34 modem standard. 

10. The method of claim 8, wherein the line rate nego tiation is performed at least partially in accordance with the 

V.90 modem standard. 

11. The method of claim 8, wherein the memory includes a table structure. 

12. The method of claim 8, wherein the modem param 

eters comprise adjustable echo cancellation coefficients that 

are adjusted in response to a training Signal Sent through the 

wireline telephone communication channel. 

13. The method of claim 8, wherein the modem param 

eters comprise adjustable equalizer coefficients that are 

adjusted in response to a training Signal Sent through the 

wireline telephone communication channel. 

14. The method of claim 8, wherein the modem param 

eters comprise adjustable Signal constellation configuration 

parameters that are adjusted in response to a training Signal 

Sent through the wireline telephone communication channel. 

15. The method of claim 8, wherein: 

a communication Session is established in conjunction 

with the first communication connection; 

the communication Session is placed in an inactive State 

Substantially in conjunction wit the termination of the 

first communication connection; and, 

5 

15 

25 

35 

40 

45 

50 

55 

60 

65 

28 

the communication Session is placed back into an active 

State Substantially in conjunction with the initialization 

of the Second communication connection. 

16. The method of claim 8, wherein the communication 

Session Supports a peer-to-peer Internet connection Software 

layer above the physical layer, and the Internet Session is 

between a client software layer co-located with the tele 

phone modem and a Server Software layer co-located with 

the far end modem. 

17. The method of claim 8, wherein the first indication is 

generated in response to a user input to a graphical user 

interface of a computer program. 

18. The method of claim 8, wherein the first indication is 

generated in response to a user input to a work flow as 

presented by a graphical user interface of a computer pro 

gram. 

19. The method of claim 8, wherein the second indication 

is generated in response to a user action. 

20. The method of claim 8, wherein the second indication 

is generated in response to a user input to a graphical user 

interface of a computer program. 

21. The method of claim 8, wherein the second indication 

is generated in response to a user input to a work flow as 

presented by a graphical user interface of a computer pro 

gram. 

22. The method of claim 8, wherein first indication is 

generated in response to a first user action and the Second 

indication is generated in response to a Second user action. 

23. The method of claim 22, wherein the first user action 

is associated with a call waiting Signal and the Second user 

action is associated with the user hanging up a voice 

telephone call. 

24. The method of claim 22, wherein the first indication 

is generated in response to first user action indicating a 

desire to pause communication in order to free up the 

wireline telephone communication channel to be used for a 

Voice telephone call, and the Second indication is generated 

in response to a Second user action indicative of the desire 

to resume modem communication with the far end modem. 

25. The method of claim 8, further comprising: 

establishing a communication Session between a first 

Software layer coupled to the telephone modem and a 

Second Software layer coupled to the far end modem, 

wherein the communication Session assumes an active 

State and Supports communication between the first and 

Second Software layerS via the first communication 

connection; 

placing the communication Session into an inactive State 

Substantially in conjunction with the first indication; 

and 

placing the communication Session back into the active 

State Substantially in conjunction with the initializing of 

the Second communication connection, and using the 

communication Session to Support communication 

between the first and second software layers via the 

Second communication connection. 

26. The method of claim 25, herein the communication 

Session involves an authentication parameter. 

27. The method of claim 25, wherein: 

the communication Session corresponds to a communica 

tion Services logon Session that involves an authenti 

cation parameter; and, 

the first Software layer corresponds to client-side Software 

and the Second Software layer corresponds to Server 

Side Software. 

28. The method of claim 25, wherein the communication 

Session is placed into the inactive State in response to a first 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 20 of 24 PageID #: 336
US 6,574.239 B1 

29 

user action indicating a desire to pause communication in 

order to free up the wireline telephone communication 

channel to be used for a voice call. 

29. The method of claim 25, wherein the communication 

Session is placed back into the active State in response to a 

Second user action indicating a desire to resume the com 

munication Session with the Software layer coupled to the far 

end modem. 

30. The method of claim 25, wherein the authentication 

parameter is associated with an Internet-related protocol 

above the physical layer to Support client-Server communi 

cations using the Internet. 

31. The method of claim 25, wherein the communication 

Session is at least partially transacted in accordance with an 

Internet-related protocol above the physical layer in order to 

Support client-Server communications using the Internet. 

32. The method of claim 8, further comprising: 

establishing an application Session between a first appli 

cation Software layer coupled to the telephone modem 

and a Second application Software layer coupled to the 

far end modem, wherein the application Session 

assumes an active State and Supports communication 

between the first and Second application Software layers 

via the first communication connection; 

placing the application Session into an inactive State 

Substantially in conjunction with the terminating, and 

placing the application Session back into the active State 

Substantially in conjunction with the initializing the 

Second communication connection, and using the appli cation Session to Support communication between the 

first and Second application Software layers via the 

Second communication connection. 

33. The method of claim 32, wherein the application 

Session involves an authentication parameter. 

34. The method of claim 32, wherein the application Session involves an authentication parameter corresponding 

to an application logon Session conducted between a client 

and Server acroSS the Internet. 

35. The method of claim 32, wherein the communication 

Session is placed into the inactive State in response to a user 

action indicating a desire to pause communication in order 

to free up the Wireline telephone communication channel to 

be used for a voice call. 

36. The method of claim 32, wherein the communication 

Session is placed back into the active State in response to a 

user action indicating a desire resume the communication 

Session wit the Software layer coupled to the far end modem. 

37. The method of claim 8, wherein the telephone modem 

is an analog client modem and the far end modem is a digital 

ISP modem. 

38. The method of claim 8, wherein the telephone modem 

is an analog client modem and the far end modem is a digital 

ISP modem, and both modems support the V.90 communi 

cation protocol. 

39. The method of claim 8, wherein the far end modem is 

an analog client modem and the telephone modem is a 

digital ISP modem, and both modems support the V.90 

communication protocol 

40. The method of claim 8, wherein the re-negotiated data 

rate can be re-negotiated to be the same as the negotiated 

data rate. 

41. A device, comprising; 

a telephone modem that supports at least one of PCM 

pulse amplitude data transmission and reception, and 

includes a coupling for connecting to a telephone line; a memory; 

5 

15 

25 

35 

40 

45 

50 

55 

60 

65 

30 

a computer-readable Storage medium; 

a Software instantiated on the computer-readable Storage medium, the Software including: a first function that causes a first communication con 

nection with a far end modem to be initialized over 

a wireline telephone communication channel using the telephone modem, the initializing being per 

formed at least partially by performing a line rate 

negotiation Sequence with the far end modem to 

derive a first Set of modem parameters to be used to 

Support communications over the wireline telephone 

communication channel; 

a Second function that causes the Set of modem param 

eters to be stored in the memory; 

a third function that causes communication to proceed 

at a negotiated data rate via the first communication 

connection with the far end modem using at least one 

of the first Set of modem parameters, 

a fourth function, responsive to a first indication asso 

ciated with a request to temporarily Suspend modem 

communications, to causes the first communication 

connection to be terminated; 

a fifth function, responsive to a Second indication 

asSociated with a request to resume modem 

communications, to causes a plurality of the first Set 

of modem parameters to be accessed from memory, 

the accessed modem parameters to be used as 

modem Starting parameters in a line rate 

re-negotiation Sequence, and a Second communica 

tion connection to be initialized to the far end 

modem over the wireline telephone communication 

channel using the telephone modem, wherein the 

initializing of the Second communication connection 

is performed at least partially by performing the line 

rate re-negotiation Sequence to derive a re-negotiated 

Set of modem parameters to be used to Support 

communications over the Second communication 

connection of the wireline telephone communication 

channel, wherein the plurality of the Stored modem 

Starting parameters are used to accelerate the deri 

Vation of the re-negotiated Set of modem parameters 

with respect to the time required to derive the first set 

of modem parameters, and whereby a Setup delay 

time associated with the initialization of the Second 

communication connection is shorter than a Setup 

delay time associated with the initialization of the 

first communication connection; and a sixth function that causes communication to resume 

at a re-negotiated data rate via the Second commu 

nication connection using at least one of the 

re-negotiated Set of modem parameters. 

42. The device of claim 41, wherein the line rate nego tiation is performed at least partially in accordance with the 

V.34 modem standard. 

43. The device of claim 41, wherein the line rate nego tiation is performed at least partially in accordance with the 

V90 modem standard. 

44. The device of claim 41, wherein the memory includes a table structure. 

45. The device of claim 41, wherein the modem param 

eters comprise adjustable echo cancellation coefficients that 

are adjusted in response to a training Signal Sent through the 

wireline telephone communication channel. 

46. The device of claim 41, wherein the modem param 

eters comprise adjustable equalizer coefficients that are 

adjusted in response to a training Signal Sent through the 

wireline telephone communication channel. 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 21 of 24 PageID #: 337
US 6,574.239 B1 

31 

47. The device of claim 41, wherein the modem param eters comprise adjustable Signal constellation configuration 

parameters that are adjusted in response to a training Signal 

Sent through the wireline telephone communication channel. 

48. The device of claim 41, wherein: 

a communication Session is established in conjunction 

with the first communication connection; 

the communication Session is placed in an inactive State 

Substantially in conjunction with the termination of the 

first communication connection; and, 

the communication Session is placed back into an active 

State Substantially in conjunction with the initialization 

of the Second communication connection. 

49. The method of claim 48, wherein the communication 

Session Supports a peer-to-peer Internet connection Software 

layer above the physical layer, and the Internet Session is 

between a client software layer co-located with the tele 

phone modem and a Server Software layer co-located with 

the far end modem. 

50. The device of claim 41, wherein the first indication is 

generated in response to a user action. 

51. The device of claim 41, wherein the first indication is 

generated in response to a user input to a graphical user 

interface of a computer program. 

52. The device of claim 41, wherein the first indication is 

generated in response to a user input to a work flow as 

presented by a graphical user interface of a computer pro 

gram. 

53. The device of claim 41, wherein the second indication 

is generated in response to a user action. 

54. The device of claim 41, wherein the second indication 

is generated in response to a user input to a interface of a 

computer program. 

55. The device of claim 41, wherein the second indication 

is generated in response to a user input to a work flow as 

presented by a graphical user interface of a computer pro 

gram. 

56. The device of claim 41, wherein the first indication is 

generated in response to a first user action and the Second 

indication is generated in response to a Second user action. 

57. The device of claim 56, wherein the first user action 

is associated with a call waiting Signal and the Second user 

action is associated with the user hanging up a voice 

telephone call. 

58. The device of claim 56, wherein the first indication is 

generated in response to a first user action indicating a desire 

to pause communication in order to free up the wireline 

telephone communication channel to be used for a voice 

telephone call, and the Second indication is generated in 

response to a Second user action indicating a desire to resume modem communication with the far end modem. 

59. The device of claim 41, further comprising: a Seventh function that causes a communication Session to 

be established between a first software layer coupled to 

the telephone modem and a Second Software layer 

coupled to the far end modem, wherein the communi 

cation Session assumes an active State and Supports 

communication between the first and Second Software 

layerS via the first communication connection; 

a eighth function that causes the communication Session 

to be placed into an inactive State Substantially in 

conjunction wit the terminating, and a ninth function that causes the communication Session to 

be placed back into the active State Substantially in 

conjunction with the initializing of the Second commu 

nication connection, and using the communication Ses 

15 

25 

35 

40 

45 

50 

55 

60 

65 

32 

Sion to Support communication between the first and 

Second Software layerS via the Second communication 

connection. 

60. The device of claim 59, wherein the communication 

Session involves an authentication parameter. 

61. The device of claim 59, wherein the communication 

Session corresponds to a communication Services logon 

Session that involves an authentication parameter, the first 

Software layer corresponds to client-side Software and the 

Second Software layer corresponds to Server-Side Software. 

62. The device of claim 59, wherein the communication 

Session is placed into the inactive State in response to a first 

user action indicating a desire to pause communication in 

order to free up the wireline telephone communication 

channel to be used for a voice call. 

63. The device of claim 62, wherein the communication 

Session is placed back into the active State in response to a 

Second user action indicating a desire to resume the com 

munication Session with the Software layer coupled to the far 

end modem. 

64. The method of claim 62, wherein the authentication 

parameter is associated with an Internet-related protocol 

above the physical layer to Support client-Server communi 

cations using the Internet. 

65. The method of claim 62, wherein the communication 

Session is at least partially transacted in accordance with an 

Internet-related protocol above the physical layer in order to 

Support client-Server communications using the Internet. 

66. The device of claim 41, further comprising: 

an Seventh function that causes an application Session to 

be established between a first application Software layer coupled to the telephone modem and a Second appli 

cation Software layer coupled to the far end modem, 

wherein the application Session assumes an active State 

and Supports communication between the first and 

Second application Software layerS via the first com 

munication connection; 

a eighth function that causes the application Session to be 

placed into an inactive State Substantially in conjunc 

tion with the terminating, and 

a ninth function that causes the application Session to be 

placed back into the active State Substantially in con 

junction with the initializing the Second communica 

tion connection, and using the application Session to 

Support communication between the first and Second 

application Software lay is via the Second communica 

tion connection. 

67. The device of claim 66, wherein the application Session involves an authentication parameter. 

68. The device of claim 66, wherein the application Session involves an authentication parameter corresponding 

to an application logon Session conducted between a client 

and Server acroSS the Internet. 

69. The device of claim 66, wherein the application Session is placed into the inactive State in response to a user 

action indicating a desire to pause communication in order 

to free up the Wireline telephone communication channel to 

be used for a voice call. 

70. The device of claim 66, wherein the application Session is placed back into the active State in response to a 

user action indicating a desire resume the communication 

Session with the Software layer coupled to the far end 

modem. 

71. The device of claim 66, wherein the memory com 

prises the computer-readable Storage medium. 

72. The device of claim 41, wherein the memory com 

prises nonvolatile memory. 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 22 of 24 PageID #: 338
US 6,574.239 B1 

33 

73. The method of claim 41, wherein the telephone 

modem is an analog client modem and the far end modem 

is a digital ISP modem, and both modems support the V.90 

communication protocol. 

74. The method of claim 41, wherein the far end modem 

is an analog client modem and the telephone modem is a 

34 

digital ISP modem, and both modems support the V.90 communication protocol. 75. The method of claim 41, wherein the re-negotiated data rate can be re-negotiated to be the same as the nego tiated data rate. 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 23 of 24 PageID #: 339
UNITED STATES PATENT AND TRADEMARK OFFICE 

CERTIFICATE OF CORRECTION 

PATENT NO. : 6,574.239 B1 Page 1 of 1 

DATED : June 3, 2003 

INVENTOR(S) : Dowling et al. 

It is certified that error appears in the above-identified patent and that said Letters Patent is 

hereby corrected as shown below: 

Column 27 

Line 66, delete “wit” and insert -- with -- 

Column 28 

Line 57, delete “herein’ and insert -- wherein -- 

Column 29 

Line 48, delete “wit” and insert -- with -- 

Column 30 

Lines 21 and 25, delete “causes' and insert -- cause -- 

Column 31 

Line 14, delete “method” and insert -- device -- Line 32, delete “a interface” and insert -- a graphical user interface -- Line 62, delete “wit” and insert -- with -- 

Column 32 

Lines 21 and 25, delete “method” and insert -- device -- Line 46, delete “lay is.” and insert -- layer -- 

Column 33 

Lines 1 and 5, delete “method” and insert -- device -- 

Column 34 

Line 3, delete “method’ and insert -- device -- 

Signed and Sealed this 

Twenty-ninth Day of March, 2005 

WDJ 

JON W. DUDAS 

Director of the United States Patent and Trademark Office 

Case 4:23-cv-01123-ALM Document 1-9 Filed 12/20/23 Page 24 of 24 PageID #: 340