Call-in number formatting adjustment per viewing device

Systems and methods for initiating a telephone call on a communication device receive, into a computerized device, an instruction to connect a communication device to a communication receiver using a call-in string comprising a call-in number and a pass code. The call-in string is parsed to separate the call-in number and the pass code, using the computerized device. A pause indicator is identified in the call-in string, using the computerized device. The pause indicator is formatted to a type-specific format appropriate for the type of communication device, using the computerized device. The call-in number is transmitted from the computerized device to the communication receiver. A pause is executed, using the computerized device, according to the pause indicator formatted for a specific type of device. The pass code is transmitted from the computerized device to the communication receiver.

BACKGROUND

The present disclosure relates to communication devices, and more specifically, to a system and method to adjust the format of a call-in number according to the type of communication device.

Conventional technologies provide that a user may receive an invitation to join a conference call by means of an email or calendar invitation. The invitation typically includes a call-in number and a pass code, both of which are necessary for access to the conference call. Phone systems generally require the call-in number and pass code to be entered separately. In most cases, the user must pause between entry of the call-in number and the pass code into the user's phone. With the widespread use of Smartphones, a user may be able to enter the call-in number and the pass code by selecting them from the email invitation or calendar entry on the Smartphone. For example, if a user wants to call a call-in number directly from a calendar/meeting invite they can click on the number and their device will connect the call. However, if the device does not understand the pause symbol, the device will not enter the remaining characters.FIG. 1shows an example of call-in instructions for a meeting, including a pass code associated with the meeting. The number 1-800-123-4567 pppp5555 means to pause for 4 seconds after the call-in number and then send the sequence 5555. Unfortunately, each type of device uses a different symbol to indicate a pause. A meeting organizer can resolve this problem by manually entering on the meeting invite all of the alternatives for every device type, as shown inFIG. 1. This does not necessarily solve the problem, however, because the options for the pause indicator might change over time and a user might accidentally click on the wrong link such that the pause will not work requiring the user to lookup the pass code and manually enter it.

SUMMARY

According to one embodiment herein, a method is disclosed. The method comprises receiving, into a computerized device, an instruction to connect a communication device to a communication receiver using a call-in string comprising a call-in number and a pass code. The call-in string is parsed to separate the call-in number and the pass code, using the computerized device. A pause indicator is identified in the call-in string, using the computerized device. The pause indicator is formatted to a type-specific format appropriate for the type of communication device, using the computerized device. The call-in number is transmitted from the computerized device to the communication receiver. A pause is executed, using the computerized device, according to the pause indicator formatted for a specific type of device. The pass code is transmitted from the computerized device to the communication receiver.

According to another embodiment herein, a method of initiating a telephone call on a communication device is disclosed. The method comprises recognizing, by the communication device, as a telephone number, a first string of characters in a collection of characters displayed on a display of the communication device. The method further comprises recognizing, by the communication device, as additional information related to the telephone number, a second string of characters in the collection of characters displayed on the display, the second string of characters comprising at least a pass code. The method further comprises recognizing, by the communication device, a pause indicator in the collection of characters displayed on the display. The pause indicator is formatted to a type-specific format appropriate for use by the communication device, using the communications device. Responsive to instructions from a user, the first string of characters, the second string of characters, and the pause indicator formatted for a specific type of communication device are provided to a telephone calling application of the communication device, using the communications device.

According to another embodiment herein, another method is disclosed. The method comprises receiving from a user, into a computerized device, a call control symbol sequence for establishing a call; the call control symbol sequence includes a plurality of symbol strings, at least one of the symbol strings comprising a pause indicator. The received symbol sequence is parsed to identify the at least one symbol string comprising the pause indicator, using the computerized device. The pause indicator is formatted, as necessary, to a type-specific format appropriate for a type of communication device receiving the call control symbol sequence, using the computerized device. In response to the receipt of the call control symbol sequence and after formatting the pause indicator, the call is established according to the call control symbol sequence.

According to another embodiment herein, a communication device is disclosed. The device comprises a telephone device and a processor operatively connected to the telephone device. The processor executes an application to receive an instruction to connect the communication device to a communication network using a call-in string comprising a call-in number and a pass code. The processor parses the call-in string to separate the call-in number and the pass code. The processor identifies a pause indicator in the call-in string. The processor formats the pause indicator to a type-specific format appropriate for the communication device. The telephone device transmits the call-in number to a communication receiver. The telephone device executes a pause according to the pause indicator formatted for a specific type of communication device. The telephone device transmits the pass code to the communication receiver.

According to another embodiment herein, a communication device is disclosed. The device comprises a display device and a processor operatively connected to the display device. The processor executes an application to recognize, as a telephone number, a first string of characters in a collection of characters displayed on the display of the communication device. The processor recognizes, as additional information related to the telephone number, a second string of characters in the collection of characters and displayed on the display, the second string of characters comprises a pause indicator and a pass code. The processor recognizes a pause indicator in the collection of characters displayed on the display device. The processor formats the pause indicator to a type-specific format appropriate for use by the communication device. The first string of characters, the second string of characters, and the pause indicator formatted for a specific type of communication device are provided to a telephone calling application of the communication device, when a user has selected to execute a call.

According to another embodiment herein, a non-transitory computer readable storage medium is disclosed. The storage medium is readable by a computerized device. The non-transitory computer readable storage medium stores instructions executable by the computerized device to perform a method. The method includes receiving from a user a call control symbol sequence for establishing a call. The call control symbol sequence includes a plurality of symbol strings, at least one of the symbol strings comprising a pause indicator. The method further includes parsing the received symbol sequence to identify the at least one of the symbol strings comprising the pause indicator. The pause indicator is formatted, as necessary, to a type-specific format appropriate for a type of communication device receiving the call control symbol sequence. In response to the receipt of the call control symbol sequence and after formatting the pause indicator, the call is established according to the call control symbol sequence.

DETAILED DESCRIPTION

Described below is a method that modifies a telephone number that includes pauses. The telephone number is modified based on the type of device accessing the number. A Smartphone calendaring system includes an input for an upcoming meeting that requires a phone number and a pass code. The calendaring system determines the type of device attempting to access the call-in number and pass code. Accessing the call-in number comprises the pause indicator symbol being parsed using known string manipulation techniques. Each pause indicator symbol is then replaced with the pause indicator specific to the type of device accessing the call-in number (e.g. “p”—regular phone, “x”—blackberry, etc.). That is, the pause indicator is modified for a specific format based on the type of device. Once the formatting is complete, the user may then interact with the number by clicking a link to dial. The device interprets the pauses correctly, and the user is connected to the call.

In a similar fashion, the phone number and pass code may be delivered to a user by email or text, such as a short message service (SMS) or multimedia messaging service (MMS). The email or texting system determines the type of device attempting to access the call-in number and pass code. Using known string manipulation techniques, the pause indicator symbol is parsed from the call-in number. Each pause indicator symbol is then replaced with the pause indicator specific to the type of device accessing the call-in number (e.g. “p”—regular phone, “x”—blackberry, etc.). That is, the pause indicator is modified for a specific format based on the type of device. Once the formatting is complete, the user may then interact with the number by clicking a link to dial. The device interprets the pauses correctly, and the user is connected to the call.

In some cases, a pause is not present, but implied. For example, in the number 18001234567×5555, the “x” may not indicate a pause. The “x” may merely indicate that the next set of characters (5555) is a pass code. Alternatively, some messaging/calendaring systems have a separate input field for the pass code. Typically, in all of these situations one (or more) pauses can be added. According to embodiments herein, the correct pause character can be sent based on the device dialing the number.

Modern browsers can use the user-agent string to determine the type of device making the request to the browser. Using this information a developer of a web application can intentionally format the information such that it is displayed differently on each of the different devices. The formatting is not done on the content itself but rather on the styling of the display.

FIG. 2shows a variety of Smartphones, each having a different symbol to indicate a pause or break in transmission of a telephone number. A BlackBerry phone280(available from Research in Motion, Waterloo, Ontario, Canada) may use an ‘x’. An Android type phone285(such as available from HTC Corporation, Taoyuan City, Taiwan) may use a ‘.’. An iPhone290(available from Apple, Inc., Cupertino, Calif., USA) may use a ‘,’. A regular type phone295may use a ‘p’. Disclosed is a system and method to modify a telephone number that includes pauses based on the type of device access the number; for example, on an iPhone290, show 18001234567,,,5555, on an Android phone285: . . . 5555, on a regular phone295: ppp5555, and on a BlackBerry phone280: x5555.1. The calendaring system includes an input for an upcoming meeting that requires a phone number and pass code.2. The calendar system determines the type of device attempting to access the call-in number.3. The pause indicator symbol is parsed from the call-in number using known string manipulation techniques.4. Each pause indicator symbol is then replaced with a pause indicator specific to the type of device accessing the call-in number.a) regular295—‘p’b) iPhone290—‘,’c) Android285—‘.’d) BlackBerry280—‘x’5. The user may then interact with the number shown in the calendaring system by clicking a link to dial.6. The device interprets the pauses correctly and the user is connected.

Alternatively, rather than the numbers being changed within the viewable calendar/meeting invite, the numbers could be modified by the device when the user clicks to dial any of the call-in numbers, at which time the same steps of parsing the pause indicator symbol and replacing with the device specific pause indicator is performed before completing the call request.

Different participants for a conference call access the meeting invite from different devices. Each participant views the conference dial in information specific to his or her phone device.

Referring toFIG. 3, a flow chart illustrating a method according to one embodiment herein is shown. The process ofFIG. 3may be executed by a computerized device. At300, an instruction to connect a communication device to a communication receiver is received. The instruction is received into the computerized device and directs the communication device to connect to the communication receiver using a call-in string. The call-in string includes a call-in number and a pass code. At310, the call-in string is parsed by the computerized device to separate the call-in number and the pass code. At320, the computerized device identifies a pause indicator in the call-in string. Then, at330, the computerized device formats the pause indicator to a type-specific format appropriate for the communication device. Once the pause indicator has been formatted to a type-specific format appropriate for the communication device, the call-in number is transmitted from the computerized device to the communication receiver340. The computerized device then executes a pause350according to the pause indicator formatted for a specific type of communication device. At360, after the pause, the pass code is transmitted from the computerized device to the communication receiver.

FIG. 4illustrates a method according to another embodiment herein. The method illustrated inFIG. 4begins at400where a first string of characters in a collection of characters displayed on a display of the communication device is recognized as a telephone number. At410, a second string of characters in the collection of characters displayed on the display is recognized as additional information related to the telephone number. The second string of characters includes at least a pass code. At420, a pause indicator is recognized in the collection of characters displayed on the display. Then, at430, the pause indicator is formatted to a type-specific format appropriate for use by the communication device. Finally, at440, and responsive to instructions from a user, the first string of characters, the second string of characters, and the pause indicator formatted for a specific type of communication device are provided to a telephone calling application of the communication device.

FIG. 5illustrates a method according to another embodiment herein. According to the method disclosed, a call control symbol sequence for establishing a call is received from a user, into a computerized device500. The call control symbol sequence includes a plurality of symbol strings; at least one of the symbol strings comprises a pause indicator. At510, the received symbol sequence is parsed to identify at520the at least one symbol string comprising the pause indicator. Then, at530, the pause indicator is formatted, as necessary, to a type-specific format appropriate for a type of communication device receiving the call control symbol sequence. Finally, at540, and in response to the receipt of the call control symbol sequence and after formatting the pause indicator, a call is established according to the call control symbol sequence.

As shown inFIG. 2, each communication device, such as a BlackBerry280, Android285, iPhone290, or regular type phone295includes a telephone device, such as282,283, and a processor operatively connected to the telephone device. According to an embodiment herein, the processor executes an application to receive an instruction to connect the communication device to a communication network. The instruction may come from a calendar or messaging application and directs the communication device using a call-in string. The call-in string comprises a call-in number and a pass code. The processor can parse the call-in string to separate the call-in number and the pass code. The processor can then identify a pause indicator in the call-in string. Each communication device may have a different symbol to indicate a pause or break in transmission of the call-in number. The processor formats the pause indicator to a type-specific format appropriate for the type of communication device. The telephone device282,283can transmit the call-in number to a communication receiver. A pause according to the pause indicator formatted for the specific type of communication device is executed. Then the telephone transmits the pass code to the communication receiver.

As shown inFIG. 2, each communication device comprises a display device, such as287,288, and a processor operatively connected to the display device. The processor executes an application to recognize the characters displayed on the display device287,288. The first string of characters in the collection of characters displayed on the display of the communication device is recognized as a telephone number, 1-800-123-4567. The second string of characters in the collection of characters and displayed on the display is recognized as additional information related to the telephone number: . . . 5555 or ,,,5555. According to embodiments herein, the second string of characters comprises a pause indicator and a pass code. The processor recognizes a pause indicator in the collection of characters displayed on the display device. Each communication device may have a different symbol to indicate a pause or break for transmission of the telephone number. The processor formats the pause indicator to a type-specific format appropriate for use by the communication device. When a user has selected to execute a call, the processor provides the first string of characters to a telephone calling application of the communication device. Then, the processor provides the pause indicator formatted for the specific type of communication device. Finally, the processor provides the second string of characters, which includes the pass code.

According to another embodiment herein, a non-transitory computer readable storage medium is disclosed. The storage medium is readable by a computerized device. The non-transitory computer readable storage medium stores instructions executable by the computerized device to perform a method. The method includes receiving from a user a call control symbol sequence for establishing a call. The call control symbol sequence includes a plurality of symbol strings; at least one of the symbol strings comprises a pause indicator. The received symbol sequence is parsed to identify the at least one of the symbol strings comprising the pause indicator. The pause indicator is formatted, as necessary, to a type-specific format appropriate for a type of communication device receiving the call control symbol sequence. In response to the receipt of the call control symbol sequence and after formatting the pause indicator, the call is established according to the call control symbol sequence.

Any combination of one or more computer readable non-transitory medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. The non-transitory computer storage medium stores instructions, and a processor executes the instructions to perform the methods described herein. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM)620(FIG. 6), an optical storage device, a magnetic storage device610, a “plug-and-play” memory device630, like a USB flash drive, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

InFIG. 8, Step100begins the deployment of the process software. The first thing is to determine if there are any programs that will reside on a server or servers when the process software is executed101. If this is the case, then the servers that will contain the executables are identified209. The process software for the server or servers is transferred directly to the servers' storage via FTP or some other protocol, or by copying through the use of a shared file system210. The process software is then installed on the servers211.

Next, a determination is made on whether the process software is be deployed by having users access the process software on a server or servers102. If the users are to access the process software on servers, then the server addresses that will store the process software are identified103.

A determination is made if a proxy server is to be built200to store the process software. A proxy server is a server that sits between a client application, such as a Web browser, and a real server. It intercepts all requests to the real server to see if it can fulfill the requests itself. If not, it forwards the request to the real server. The two primary benefits of a proxy server are to improve performance and to filter requests. If a proxy server is required, then the proxy server is installed201. The process software is sent to the servers either via a protocol such as FTP or it is copied directly from the source files to the server files via file sharing202. Another embodiment would be to send a transaction to the servers that contained the process software and have the server process the transaction, then receive and copy the process software to the server's file system. Once the process software is stored at the servers, the users via their client computers, then access the process software on the servers and copy to their client computers file systems203. Another embodiment is to have the servers automatically copy the process software to each client and then run the installation program for the process software at each client computer. The user executes the program that installs the process software on his client computer212, and then exits the process108.

In step104, a determination is made whether the process software is to be deployed by sending the process software to users via e-mail. The set of users where the process software will be deployed are identified together with the addresses of the user client computers105. The process software is sent via e-mail204to each of the users' client computers. The users then receive the e-mail205and then detach the process software from the e-mail to a directory on their client computers206. The user executes the program that installs the process software on his client computer212, and then exits the process108.

Lastly, a determination is made on whether to the process software will be sent directly to user directories on their client computers106. If so, the user directories are identified107. The process software is transferred directly to the user's client computer directory207. This can be done in several ways such as but not limited to sharing of the file system directories and then copying from the sender's file system to the recipient user's file system or alternatively using a transfer protocol such as File Transfer Protocol (FTP). The users access the directories on their client file systems in preparation for installing the process software208. The user executes the program that installs the process software on his client computer212, and then exits the process108.

The process software is integrated into a client, server, and network environment by providing for the process software to coexist with applications, operating systems, and network operating systems software, and then installing the process software on the clients and servers in the environment where the process software will function.

The first step is to identify any software on the clients and servers including the network operating system where the process software will be deployed that are required by the process software or that work in conjunction with the process software. This includes the network operating system that is software that enhances a basic operating system by adding networking features.

Next, the software applications and version numbers will be identified and compared to the list of software applications and version numbers that have been tested to work with the process software. Those software applications that are missing or that do not match the correct version will be upgraded with the correct version numbers. Program instructions that pass parameters from the process software to the software applications will be checked to ensure the parameter lists matches the parameter lists required by the process software. Conversely, parameters passed by the software applications to the process software will be checked to ensure the parameters match the parameters required by the process software. The client and server operating systems including the network operating systems will be identified and compared to the list of operating systems, version numbers, and network software that have been tested to work with the process software. Those operating systems, version numbers, and network software that do not match the list of tested operating systems and version numbers will be upgraded on the clients and servers to the required level.

After ensuring that the software, where the process software is to be deployed, is at the correct version level that has been tested to work with the process software, the integration is completed by installing the process software on the clients and servers.

InFIG. 9, Step220begins the integration of the process software. The first thing is to determine if there are any process software programs that will execute on a server or servers221. If this is not the case, then integration proceeds to227. If this is the case, then the server addresses are identified222. The servers are checked to see if they contain software that includes the operating system (OS), applications, and network operating systems (NOS), together with their version numbers, that have been tested with the process software223. The servers are also checked to determine if there is any missing software that is required by the process software223.

A determination is made if the version numbers match the version numbers of OS, applications, and NOS that have been tested with the process software224. If all of the versions match and there is no missing required software, the integration continues in227.

If one or more of the version numbers do not match, then the unmatched versions are updated on the server or servers with the correct versions225. Additionally, if there is missing required software, then it is updated on the server or servers225. The server integration is completed by installing the process software226.

Step227, which follows either step221,224, or226, determines if there are any programs of the process software that will execute on the clients. If no process software programs execute on the clients, the integration proceeds to230and exits. If this not the case, then the client addresses are identified228.

The clients are checked to see if they contain software that includes the operating system (OS), applications, and network operating systems (NOS), together with their version numbers, that have been tested with the process software229. The clients are also checked to determine if there is any missing software that is required by the process software229.

A determination is made as to whether the version numbers match the version numbers of OS, applications, and NOS that have been tested with the process software231. If all of the versions match and there is no missing required software, then the integration proceeds to230and exits.

If one or more of the version numbers do not match, then the unmatched versions are updated on the clients with the correct versions232. In addition, if there is missing required software then it is updated on the clients232. The client integration is completed by installing the process software on the clients233. The integration proceeds to230and exits.

The process software can be stored on a shared file system accessible from one or more servers. The process software is executed via transactions that contain data and server processing requests that use CPU units on the accessed server. CPU units are units of time such as minutes, seconds, hours on the central processor of the server. Additionally, the assessed server may make requests of other servers that require CPU units. CPU units are an example that represents but one measurement of use. Other measurements of use include but are not limited to network bandwidth, memory usage, storage usage, packet transfers, complete transactions etc. When multiple customers use the same process software application, their transactions are differentiated by the parameters included in the transactions that identify the unique customer and the type of service for that customer. All of the CPU units and other measurements of use that are used for the services for each customer are recorded. When the number of transactions to any one server reaches a number that begins to affect the performance of that server, other servers are accessed to increase the capacity and to share the workload. Likewise, when other measurements of use such as network bandwidth, memory usage, storage usage, etc. approach a capacity so as to affect performance, additional network bandwidth, memory usage, storage etc. are added to share the workload. The measurements of use used for each service and customer are sent to a collecting server that sums the measurements of use for each customer for each service that was processed anywhere in the network of servers that provide the shared execution of the process software. The summed measurements of use units are periodically multiplied by unit costs and the resulting total process software application service costs are alternatively sent to the customer and or indicated on a web site accessed by the customer, which then remits payment to the service provider. In another embodiment, the service provider requests payment directly from a customer account at a banking or financial institution. In another embodiment, if the service provider is also a customer of the customer that uses the process software application, the payment owed to the service provider is reconciled to the payment owed by the service provider to minimize the transfer of payments.

The process software is shared, simultaneously serving multiple customers in a flexible, automated fashion. It is standardized, requiring little customization, and it is scalable, providing capacity on demand in a pay-as-you-go model.

The process software can be stored on a shared file system accessible from one or more servers. The process software is executed via transactions that contain data and server processing requests that use CPU units on the accessed server. CPU units are units of time such as minutes, seconds, hours on the central processor of the server. Additionally, the assessed server may make requests of other servers that require CPU units. CPU units are an example that represents but one measurement of use. Other measurements of use include but are not limited to network bandwidth, memory usage, storage usage, packet transfers, complete transactions etc.

When multiple customers use the same process software application, their transactions are differentiated by the parameters included in the transactions that identify the unique customer and the type of service for that customer. All of the CPU units and other measurements of use that are used for the services for each customer are recorded. When the number of transactions to any one server reaches a number that begins to affect the performance of that server, other servers are accessed to increase the capacity and to share the workload. Likewise, when other measurements of use such as network bandwidth, memory usage, storage usage, etc. approach a capacity so as to affect performance, additional network bandwidth, memory usage, storage etc. are added to share the workload.

In another embodiment, the service provider requests payment directly from a customer account at a banking or financial institution.

In another embodiment, if the service provider is also a customer of the customer that uses the process software application, the payment owed to the service provider is reconciled to the payment owed by the service provider to minimize the transfer of payments.

InFIG. 10, Step240begins the On Demand process. A transaction is created that contains the unique customer identification, the requested service type, and any service parameters that further specify the type of service241. The transaction is then sent to the main server242. In an On Demand environment, the main server can initially be the only server, then, as capacity is consumed, other servers are added to the On Demand environment.

The server central processing unit (CPU) capacities in the On Demand environment are queried243. The CPU requirement of the transaction is estimated, then the servers available CPU capacity in the On Demand environment are compared to the transaction CPU requirement to see if there is sufficient CPU capacity available in any server to process the transaction244. If there is not sufficient server CPU capacity available, then additional server CPU capacity is allocated to process the transaction248. If there was already sufficient CPU capacity available, then the transaction is sent to a selected server245.

Before executing the transaction, a check is made of the remaining On Demand environment to determine if the environment has sufficient available capacity for processing the transaction. This environment capacity consists of such things as but not limited to network bandwidth, processor memory, storage etc.246. If there is not sufficient available capacity, then capacity will be added to the On Demand environment247. Next, the required software to process the transaction is accessed, loaded into memory, then the transaction is executed249.

The usage measurements are recorded250. The usage measurements consist of the portions of those functions in the On Demand environment that are used to process the transaction. The usage of such functions as, but not limited to, network bandwidth, processor memory, storage and CPU cycles are what is recorded. The usage measurements are summed, multiplied by unit costs, and then recorded as a charge to the requesting customer251. If the customer has requested that the On Demand costs be posted to a web site252, then they are posted253.

If the customer has requested that the On Demand costs be sent via e-mail to a customer address254, then they are sent255. If the customer has requested that the On Demand costs be paid directly from a customer account256, then payment is received directly from the customer account257. The last step is to exit the On Demand process258.

The process software may be deployed, accessed, and executed through the use of a virtual private network (VPN), which is any combination of technologies that can be used to secure a connection through an otherwise unsecured or untrusted network. The use of VPNs is to improve security and for reduced operational costs. The VPN makes use of a public network, usually the Internet, to connect remote sites or users together. Instead of using a dedicated, real-world connection such as leased line, the VPN uses “virtual” connections routed through the Internet from the company's private network to the remote site or employee.

The process software may be deployed, accessed, and executed through either a remote-access or a site-to-site VPN. When using the remote-access VPNs, the process software is deployed, accessed, and executed via the secure, encrypted connections between a company's private network and remote users through a third-party service provider. The enterprise service provider (ESP) sets a network access server (NAS) and provides the remote users with desktop client software for their computers. The telecommuters can then dial a toll-free number or attach directly via a cable or DSL modem to reach the NAS and use their VPN client software to access the corporate network and to access, download, and execute the process software.

When using the site-to-site VPN, the process software is deployed, accessed, and executed through the use of dedicated equipment and large-scale encryption, which are used to connect a company's multiple fixed sites over a public network, such as the Internet.

The process software is transported over the VPN via tunneling, which is the process of placing an entire packet within another packet and sending it over a network. The protocol of the outer packet is understood by the network and both points, called tunnel interfaces, where the packet enters and exits the network.

InFIGS. 11 and 12, step260begins the Virtual Private Network (VPN) process. A determination is made to see if a VPN for remote access is required261. If it is not required, then proceed to262. If it is required, then determine if the remote access VPN exists264.

If it does exist, then proceed to265. Otherwise, identify the third party provider that will provide the secure, encrypted connections between the company's private network and the company's remote users276. The company's remote users are identified277. The third party provider then sets up a network access server (NAS)278that allows the remote users to dial a toll-free number or attach directly via a cable or DSL modem to access, download, and install the desktop client software for the remote-access VPN279.

After the remote access VPN has been built, or if it been previously installed, the remote users can then access the process software by dialing into the NAS or attaching directly via a cable or DSL modem into the NAS265. This allows entry into the corporate network where the process software is accessed266. The process software is transported to the remote user's desktop over the network via tunneling. That is, the process software is divided into packets and each packet, including the data and protocol, is placed within another packet267. When the process software arrives at the remote user's desktop, it is removed from the packets, reconstituted, and executed on the remote users desktop268.

A determination is made to see if a VPN for site-to-site access is required262. If it is not required, then proceed to exit the process263. Otherwise, determine if the site-to-site VPN exists269. If it does exist, then proceed to272. Otherwise, install the dedicated equipment required to establish a site-to-site VPN270. Then build the large scale encryption into the VPN271.

After the site-to-site VPN has been built, or if it had been previously established, the users access the process software via the VPN272. The process software is transported to the site users over the network via tunneling273. That is, the process software is divided into packets and each packet, including the data and protocol, is placed within another packet274. When the process software arrives at the remote user's desktop, it is removed from the packets, reconstituted, and executed on the site users desktop275. Proceed to exit the process263.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The descriptions of the various embodiments herein have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.