Referring to
Networks 102 and 104 serve to provide communication between various network nodes, including user nodes 108a-d. Each user node may include an associated one or more persons 110, computers 112, cellular, landline, or internet phones 114, personal digital assistants 116, or other communication device as would occur to those having skill in the art.
User nodes 108a-c share private network 104, this network also including a communication server node 118a. A communication server node may include one or more computers 120 and other devices for facilitating communication between user nodes 108, as known in the art. A second communication server node 118b is shown on public network 102.
Communication server node 118 is used to facilitate communication between users on network 104 and users on network 102. To this end, communication server node 118 identifies and/or stores communication relevant information regarding networks 102 and 104 as well as the user node 108 is connecting the networks.
In one embodiment, user nodes 108 may communicate with each other over various networks directly, using peer-to-peer communication. User nodes 108 may also be directly connected by an additional telecommunication network 122 in the form of public switched telephone network, an integrated services digital network or a mobile ad-hoc network as would be appreciated by those having ordinary skill in the art.
Each user node 108 is capable of sending a communication request intended for another use node 108 in the form of a phone call, a facsimile, an email, an instant message or any other form was would be appreciated by those having ordinary skill in the art. To this end, each user node 108, each communication server 118 and telecommunication network 122 employs one or more communication channel switches (e.g., circuit switches, message switches, and packet switches) configured and programmed in accordance with the inventive principles of the present invention. In one embodiment, communication server 118 may be a switch, or perform switch functions. When a communication request is made from a sender to a recipient, the communication request includes a delivery location identifier for the intended recipient. For example, a phone communication/facsimile request would include a delivery location identifier in the form of a phone number or extension, an email communication request would include a delivery location identifier in the form of an email address, and an instant message communication request would include a delivery location identifier in the form of a screen name.
Communication forwarding can be activated by the intended recipient, by a system administrator, or by some other party with communication forwarding permission for the intended recipient. When communication forwarding is activated, a forward location can be specified that provides the alternate delivery location identifier to be used during forwarding. Alternatively, a default alternate delivery location identifier can be selected when communication forwarding is activated.
A communication forwarding feature may be desired, for example, if the one or more persons 110 associated with user node 108a are going to be at a location associated with, for example, user node 108b. One such situation may be when a first person is having a meeting in a second person's office they may wish to forward instant messages to the second person's office computer. By way of another example, a user may wish to forward communication requests directed at a landline office phone to a cell phone. Many more opportunities for communication forwarding exist that would be appreciated by one skilled in the art.
Communication forwarding can be cascaded if another forward occurs. For example, user node 108a can forward communication requests to user node 108b. User node 108b can forward communication requests to user node 108c. A communication request to user node 108a in this instance can be forwarded to user node 108c.
In one embodiment, the communication request from a sender to a recipient is received at communication server node 118 (Block 202). Alternatively, the communication request is received at user node 108. When the communication request is received at user node 108, it may have passed through communication server node 118. The received communication request is a reception of one of many forms of communication including a phone communication request, fax, email, instant message, or the like. The communication request can be initiated, for example, by a sender dialing a destination number to place a phone call or to send a fax. Alternatively, the communication request can be initiated by a user selecting to send an instant message or email. In one embodiment, a communication request can also be initiated by a communication server or other network node. When the communication request is received, the receiving node determines whether the recipient is in communication forward mode (Block 204). The determination of communication forward mode is based on information stored at the receiving node and/or information on another node of communication system 100. For example, when receiving a communication request at communication server node 118, communication server node 118 can hold information related to the communication forward mode of the intended recipient. Alternatively, communication server node 118 requests a communication forward mode status from a second communication server, or from user node 108, the intended recipient. When receiving a communication request at user node 108, user node 108 can hold information related to the communication forward mode of the intended recipient. Alternatively, user node 108 requests a communication forward mode status from communication server node 118.
The determining of communication forward information (Block 206) is based on communication forward mode determination and the communication request. Specifically, the communication forward mode determination will specify a “Forward To” location by the recipient and the communication request can specify a “Sender Forward Approved Locations” list by the sender. In one embodiment the list of “Sender Forward Approved Locations” can be a list of user nodes 108. A communication forward request can be executed based on inclusion of the “Forward To” location in the “Sender Forward Approved Locations” list. Alternatively, the list of “Sender Forward Approved Locations” can be a list of, or include within the list, networks, domains, service providers, or the like. A communication forward request can be forwarded based on access to the “Forward To” location via the networks, domains, service providers, or the like in the “Sender Forward Approved Locations” list. The communication forward information is determined based on a comparison of the “Forward To” location by the recipient and the “Sender Forward Approved Locations” list by sender as will be further explained herein in conjunction with detailed forwarding scenarios related to
In view of the comparison, the communication forward information can include a variety of data related to the forwarding of the communication request as would be appreciated by those having ordinary skill in the art. For example, communication forward information can include a forward location identity associated with the alternate delivery location identifier. A forward location identity includes information associated with the alternate delivery location such as, for example, physical location, alternate delivery location identifier, the names of one or more persons associated with the alternate delivery location, and the like.
Further data can be collected by or provided to communication server node 118 or user node 108, and can be provided as part of the communication forward information. For example, when a communication request is forwarded, it will pass through or traverse one or more networks to reach the alternate delivery location. Communication forward information can include a list of these networks, and can include an assigned security level associated with one or more of these networks. Security levels can be assigned by an administrator, determined based on network topology, or the like. Such information can be stored on communication server node 118, acting as or in conjunction with a network switch. User node 108a can send a communication request to user node 108b. User node 108b can have set communication forwarding to user node 108d. Communication server node 118 can then determine that forward security status information includes that network 102 will be included in the transmission instead of only network 104 as would have been the case had the communication request been received at user node 108b. Information regarding network security is one example of forward security status. Forward security status can include an identification of whether a telephone or fax communication will be transmitted over a secure line. Forward security status can also include information such as a security clearance associated with the forward location identity, or one or more persons associated with the forward location. Forward security status can indicate security protocols that will or may be applied in communication to the forward location. Forward security status can include any of these, or other information regarding the security of the transmission or forward location.
Communication forward information can also include a forward charge status. Forward charge status provides information related to costs associated with transmission to or reception at the forward location. For example, a phone communication request placed over an office phone network may not incur phone charges. If communication forwarding has been activated, the communication request can be forwarded to an outside line within system 100 that will incur phone charges. In one embodiment, communication server node 118 acts as a public telecommunication switch. When a communication request passes through a communication server node acting as a public telecommunication switch, the communication server node can have access to charge and rate information associated with a sender as would be appreciated by one having skill in the art. A forwarded communication request can be identified, the cost of communication to the new recipient determined, and forward charge status would indicate this cost.
In one embodiment, the providing of control options (Block 208) includes providing the control options to the sender, to a representative of the sender, to a system administrator, or some other party.
Control options provide the user an opportunity to select an option related to the communication request. Control options include, for example, send communication forward, cancel communication forward, forward with name visible, and forward with name not visible options. Control options for a phone call can be provided by pressing numbers associated with an option, or by speaking a number or other verbal representation of an option. Control options for an email or instant messaging communication can be provided as hyperlinks or buttons either within the contents of a message or within the email or instant messaging client. Further methods of providing control options exist that would be appreciated by one skilled in the art.
Control options can include communication forward information, or information related to the communication forward information. Communication forward information can be provided with the control options in a variety of ways. For example, for a phone communication the communication forward information can be presented as voice prompts. In an instant messaging or email system, communication forward information can be presented visually, for example as text.
The send communication forward control option can provide the option to allow the communication request to be forwarded to the communication forward location. The cancel communication forward control option can provide the option to the sender via a push button instruction to stop the communication request from being forwarded to the communication forward location. In one embodiment, when the cancel communication forward control option is selected, the communication request is not delivered to any location. Alternatively, the communication request can be delivered to the original intended recipient location. The forward with name visible control option can provide the option to forward the communication request including sender identification. The forward with name not visible control option can provide the option to forward the communication request while not providing sender identification. These and other communication forward options can be provided as would be appreciated by one skilled in the art.
The method 300 includes receiving a communication forward request (Block 302), receiving a communication request (Block 304) from a sender to a recipient, providing control options (Block 306) to the sender based on determined communication forward information, receiving control instructions (Block 308) from the sender based on the control options, determining whether the forward has been approved (Block 310) based on the received control instructions, and based on the determination either executing the forward action (Block 312) or executing a forward alternate action (Block 314).
The receiving of the communication forward request (Block 302) may require authorization. For example, a username and password or a pin number can be required. The communication forward request can include one or more alternate delivery location identifiers. A communication forward request can be performed at the node that is to be forwarded, can be performed at the node that is to be the alternate delivery node, or can be performed at another location. For example, the user of user node 108a may be running an instant messaging application. When that user intends to move to an alternate location, such as a location associated with user node 108b, the user can send a communication forward request from a computer of user node 108a. Alternatively, if the user has not sent a communication forward request before moving to the location associated with user node 108b, they can enter a communication forward request for their instant messaging using the computer of user node 108b. Similar processes can be employed for email, phone communication request, or other types of communication forwarding.
In one embodiment, the receiving control instructions (Block 308) occurs at user node 108. Alternatively, the receiving control instructions can occur at a communication server node 118. The control instructions can be, in one embodiment, the reception of a selected control option. The control option selection can be made by the user of user node 108. Alternatively, the user node can be configured to select a control option based on specified call forward information. For example, the user can configure their node to allow communication forwarding when line charges are below fifteen cents per minute. Control instructions can include additional information such as authorization information, payment selection information, security selection information, or the like. Authorization information can include, for example, username and password, pin, biometric data, security key, or other forms of authorization as would be appreciated by one skilled in the art. Payment selection information can include, for example, credit card information, bank account information, communication requesting card information, or other forms of payment as would be appreciated by one skilled in the art. Security selection information can include, for example, a selection of a security protocol such as Kerberos, Triple Data Encryption Standard (3DES), SSL, or the like.
The determining of whether the forward has been approved (Block 310) can be based in whole or in part on the received control instructions. The approval status can be complete, or conditional. For example, the approval can allow the forward, but require that the senders name be hidden, or that a level of security be applied to the forwarded transmission.
When the communication forward has been approved, the executing of the forward action (Block 312) takes place. The forward action can include sending the communication request to the forward location. Alternatively, the forward action can include sending a signal to the forward location indicating that a forwarded message is inbound. When such an inbound message alert is received, the receiving node can be required to provide acceptance and/or authentication information in order to receive the forwarded communication request. For example, if a phone communication request has been forwarded, the phone 114 at the forward location can ring and on answer a message requesting a pin number of the original receiver can be played.
The executing of a forward alternate action (Block 314) is executed when communication forwarding is not approved. A forward alternate action can be, for example, the cancellation of the communication request. Alternatively, the forward alternate action can be delivery to the original delivery location.
The description of
Referring to
Scenario 1 involves (1) user node 108d being the “Forward To Location” specified by user node 108c and (2) either an absence of any location in the “Sender Forward Approved Locations” list by user node 108a, or such list from user node 108a contains one or more entries and none of them are user node 108d, or networks, domains, service providers, or the like, that include user node 108d. In this case, upon a recognition that forwarding is required in response to the communication request from user node 108a, communication server node 118a will add user node 108d to the “Sender Forward Approved Locations” list whereby the communication request is returned to user node 108a with network security and/or toll information to enable user node 108a to decide whether or not to forward the communication request to user node 108d.
For example, communication server node 118a can receive a communication request in the form of a phone call placed from user node 108a. The communication server node then determines communication forward mode based on user node 108c as the intended recipient. This determination can be based on information associated with user node 108a that is stored on communication server node 118a, or alternatively the determination can be based on information collected from user node 108a by communication server node 118a. As user node 108d is specified as the “Forward To Location,” communication server 118a determines associated communication forward information. Prior to forwarding the communication request, communication server node 118a provides an audio instruction to user node 108a that “The call can be forwarded to user node 108d via a foreign toll network 102 with a charge of $3.50 per minute. The forwarding will traverse across low security analog networks 104 and 102. Press or say 1 to accept, and press or say 2 to cancel.” Communication server node 118a will forward the communication request to communication server node 118b on behalf of user node 108d in response to an acceptance selection by user node 108a, or terminate the communication request in response to a cancellation selection by user node 108a. Upon completion of the communication, user node 108d is removed from the “Sender Forward Approved Locations” list.
Scenario 2 involves (1) user node 108d being the “Forward To Location” specified by user node 108c and (2) user node 108d, or a network, domain, service provider, or the like, that includes user node 108d, being an entry in the “Sender Forward Approved Locations” list by user node 108a. In this case, upon a recognition that forwarding is required in response to the communication request from user node 108a, communication server node 118a will forward the communication request to communication server node 118b on behalf of user node 108a in accordance with user node 108d being specified by both user nodes 108a and 108c as the desired forwarding location.
Scenario 3 involves (1) user node 108d being the “Forward To Location” specified by user node 108c, (2) communication server 118a identifying communication server 118b as the next telecommunication switch in the communication path to user node 108d and (3a) communication server 118a requesting call forward information from communication server 118b and providing that information to user node 118a if it exists or (3b) communication server 118b providing call forward information to user node 118a if it exists. Either communication server node can supply the call forward information as described above, and based on received control instructions will forward or terminate the communication.
Scenarios 1, 2 and 3 can be repeated at each user node that specifies a re-forwarding of the communication request.
From the description of the aforementioned scenarios, those having ordinary skill in the art will appreciate how to implement the methods of
PCI-to-ISA bridge 435 provides bus control to handle transfers between the PCI bus 425 and ISA bus 440, universal serial bus (USB) functionality 445, IDE device functionality 450, power management functionality 455, and can include other functional elements not shown, such as a real-time clock (RTC), DMA control, interrupt support, and system management bus support. Peripheral devices and input/output (I/O) devices can be attached to various interfaces 460 (e.g., parallel interface 462, serial interface 464, infrared (IR) interface 466, keyboard interface 468, mouse interface 470, and fixed disk (HDD) 472) coupled to ISA bus 440. Alternatively, a super I/O controller (not shown) can be attached to the ISA bus 440 to accommodate many I/O devices.
BIOS 480 is coupled to ISA bus 440, and incorporates the necessary processor executable code for a variety of low-level system functions and system boot functions. The BIOS 480 can be stored in any computer readable medium, including magnetic storage media, optical storage media, flash memory, random access memory, read only memory, and communications media conveying signals encoding the instructions (e.g., signals from a network). In order to attach information handling system 401 to another computer system to copy files over a network, LAN card 430 is coupled to PCI bus 425 and to PCI-to-ISA bridge 435. Similarly, to connect computer system 401 to an ISP to connect to the Internet using a telephone line connection, modem 475 is connected to serial port 464 and PCI-to-ISA Bridge 435.
While the computer system described in
One of the preferred implementations of the invention is an application, namely, a set of instructions (program code) in a code module which may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, on a hard disk drive, or in removable storage such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via
the Internet or other computer network. Thus, the present invention may be implemented as a computer program stored on a computer readable medium and executable by a digital processing apparatus to perform operations to display data. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
While the embodiments of the invention disclosed herein are presently considered to be preferred, various changes and modifications can be made without departing from the spirit and scope of the invention. The scope of the invention is indicated in the appended claims, and all changes that come within the meaning and range of equivalents are intended to be embraced therein.