Producing Routing Messages for Voice Over IP Communications
Abstract
A process and apparatus to facilitate communication between callers and callees in a system comprising a plurality of nodes with which callers and callees are associated is disclosed. In response to initiation of a call by a calling subscriber, a caller identifier and a callee identifier are received. Call classification criteria associated with the caller identifier are used to classify the call as a public network call or a private network call. A routing message identifying an address, on the private network, associated with the callee is produced when the call is classified as a private network call and a routing message identifying a gateway to the public network is produced when the call is classified as a public network call.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A packet switched communication system for establishing communications between a first participant device of the packet switched communication system that is associated with a first participant and a second participant device associated with a second participant, the system comprising:
a plurality of network elements operably configured to provide communication services from the first participant device to communication devices in the packet switched communication system; a plurality of gateways operably configured to provide communication services from the first participant device to communication devices in a public switched telephone network (PSTN) communication network; a communication controller operably configured to setup communications between the first participant device and a destination communication device by selectively using at least one of the plurality of network elements and the plurality of gateways; and a routing controller comprising at least one processor in communication with a memory storing instructions for directing the at least one processor to:
access at least one memory that stores a first participant profile identifying at least one first participant attribute;
receive a second participant identifier in response to the first participant using the first participant device to initiate a communication to the second participant device, the second participant identifier being associated with the second participant device;
process the second participant identifier and the at least one first participant attribute to produce a new second participant identifier based on the second participant identifier and the at least one first participant attribute, wherein the new second participant identifier comprises a username with which the second participant device is associated in the packet switched communication system if the second participant device is in the packet switched communication system, and wherein the new second participant identifier comprises a PSTN number if the second participant device is not in the packet switched communication system;
use the new second participant identifier to determine a device capable of carrying the communication to the second participant device, wherein the device is determined to be a destination network element associated with the second participant device that is selected from among the plurality of network elements if the new second participant identifier comprises the username, and wherein the device is determined to be at least one destination gateway associated with the second participant device that is selected from among the plurality of gateways if the new second participant identifier comprises the PSTN number; and
produce a message for receipt by the communication controller, the message identifying the new second participant identifier and identifying an address of the destination network element or gateway associated with the second participant device and capable of carrying the communication to the second participant device;
wherein the communication controller receives the message and attempts to establish the communication to the second participant device based on the new second participant identifier and the address of the device identified in the message.
2 . A packet switched communication system for establishing communications between a first participant device associated with a first participant and a second participant device associated with a second participant, the system comprising:
a plurality of network elements that provide communication services to communication devices associated with a geographic area associated with the second participant device; a communication controller operable to communicate with one or more of the plurality of network elements; and a routing controller comprising at least one processor in communication with a memory storing instructions for directing the at least one processor to:
access at least one memory that stores a first participant profile identifying at least one first participant attribute;
receive a second participant identifier in response to the first participant using the first participant device to initiate a communication to the second participant device, the second participant identifier being associated with the second participant device;
process the second participant identifier and the at least one first participant attribute to produce a new second participant identifier based on at least one match between the second participant identifier and the at least one first participant attribute, the new second participant identifier comprising a username with which the second participant device is associated in the communication system;
use the new second participant identifier to identify a destination network element associated with the second participant device from among the plurality of network elements, wherein the plurality of network elements provide load sharing of the communication services to the communication devices associated with the geographic area associated with the second participant device; and
produce a network routing message for receipt by the communication controller, the network routing message comprising the username and identifying a network address of the destination network element associated with the second participant device in the packet switched communication system;
wherein the communication controller receives the network routing message and attempts to establish the communication to the second participant device based on the network address of the destination network element associated with the second participant device.
3 . The system of claim 2 further comprising one or more gateways interconnecting the packet switched communication system with a PSTN communication network;
wherein the at least one memory further stores instructions for directing the at least one processor to:
receive a third participant identifier in response to the first participant using the first participant device to initiate a further communication to a third participant device, the third participant identifier being associated with the third participant device;
process the third participant identifier and the at least one first participant attribute identified from the first participant profile based on at least one match between the third participant identifier and the at least one first participant attribute, to produce a new third participant identifier comprising a public switched telephone network (PSTN) number;
identify a destination gateway associated with the third participant device from among the one or more gateways interconnecting the packet switched communication system with the PSTN communication network, based on the new third participant identifier;
produce a gateway routing message for receipt by the communication controller, the gateway routing message comprising the PSTN number and identifying a destination gateway address associated with the destination gateway; and
wherein the communication controller receives the gateway routing message and attempts to establish the further communication, based on the destination gateway address, to the third participant device using the PSTN communication network.
4 . The system of claim 3 :
wherein said one or more gateways comprise a plurality of gateways that provide potential alternative routing options from the first participant device on the packet switched communication system, to the third participant device on the PSTN communication network.
5 . The system of claim 4 wherein the at least one memory further stores instructions for directing the at least one processor to:
use the new third participant identifier to determine a route identifier associated with gateways capable of routing communications to the third participant device, and to select a second plurality of gateways from among the plurality of gateways based on the route identifier, each of the second plurality of gateways being associated with the route identifier and capable of routing the further communication to the third participant device.
6 . The system of claim 2 , wherein the at least one memory further stores instructions for directing the at least one processor to:
receive a third participant identifier in response to the first participant using the first participant device to initiate a further communication to a third participant device, the third participant identifier being associated with the third participant device; process the third participant identifier and the at least one first participant attribute, to produce a new third participant identifier based on at least one match between the third participant identifier and the at least one first participant attribute, the new third participant identifier comprising a second username of the communication system associated with the third participant device; search at least one database of the communication system for blocking information associated with the second username, and if the communication blocking information is found, prevent the further communication to the third participant device from being established.
7 . The system of claim 2 , wherein the at least one memory further stores instructions for directing the at least one processor to:
receive a third participant identifier in response to the first participant using the first participant device to initiate a further communication to a third participant device, the third participant identifier being associated with the third participant device; process the third participant identifier and the at least one first participant attribute, to produce a new third participant identifier based on at least one match between the third participant identifier and the at least one first participant attribute, the new third participant identifier comprising a second username of the communication system; determine whether forwarding information is associated with the second username in at least one database of the packet switched communication system, the forwarding information identifying at least one destination device to which the further communication can be forwarded; and attempt to forward the further communication to the at least one destination device if the forwarding information is associated with the second username in the at least one database.
8 . The system of claim 2 , wherein the communication controller is operably configured to:
determine if the communication controller's attempt to establish the communication to the second participant device failed, and if the attempt to establish the communication to the second participant device failed, cause the communication to be stored on a server in association with the username to facilitate the second participant device retrieving the communication from the server.
9 . The system of claim 3 , wherein the at least one memory further stores instructions for directing the at least one processor to:
identify a plurality of destination gateways from among the one or more gateways interconnecting the packet switched communication system with the PSTN communication network, wherein each of the plurality of destination gateways is capable of communicating with the third participant device; and produce at least one gateway routing message for receipt by the communication controller, the at least one gateway routing message comprising the new third participant identifier and identifying a plurality of destination gateway addresses respectively associated with the plurality of destination gateways; wherein the communication controller attempts to establish the further communication to the third participant device, based on the at least one gateway routing message, using at least one potential communication path associated with the plurality of destination gateways.
10 . The system of claim 9 , wherein the communication controller is configured to cause a query to be sent to the plurality of destination gateways to determine whether at least one gateway from the plurality of destination gateways is available to carry the further communication to the third participant device, and if so, to establish the communication to the third participant device via the at least one gateway available to carry the further communication.
11 . The system of claim 10 , wherein the communication controller is configured to query the plurality of destination gateways in a predetermined order of preference, and wherein the further communication comprising at least one of an audio path and video path is established through a gateway that is first to indicate its availability to carry the further communication.
12 . The system of claim 2 wherein the at least one memory further stores instructions for directing the at least one processor to:
access a database to locate communication forwarding information associated with the second participant, wherein the communication forwarding information comprises a plurality of communication destination identifiers; and
produce a routing message, for receipt by the communication controller, to cause the communication controller to attempt to forward the communication to a plurality of communication destinations corresponding to the plurality of communication destination identifiers.
13 . The system of claim 2 wherein the network routing message identifies a plurality of network addresses of network elements in the packet switched communication system.
14 . The system of claim 13 wherein the communication controller attempts to establish the communication to each of the plurality of network addresses in a predetermined order.
15 . The system of claim 1 wherein the network routing message identifies a network address of a server operably configured to store one or more communications directed to the second participant device for selective retrieval thereof by the second participant device.
16 . The system of claim 2 wherein the at least one memory further stores instructions for directing the at least one processor to:
process a plurality of communications from the first participant device to a plurality of communication destinations to determine whether each communication is capable of being communicated to the respective communication destinations via the packet switched communication network or via an external communication network; and
produce a respective plurality of routing messages, each respective routing message identifying either an Internet Protocol (IP) address associated with a network element of the packet switched communication network or an IP address associated with at least one gateway to the external communication network, for routing the respective communication;
wherein each of the plurality of routing messages cause the communication controller to attempt to establish the respective communication to the respective communication destination.
17 . The system of claim 2 wherein the communication controller sends a message to an IP address of the second participant device based on the username in the network routing message.
18 . The system of claim 2 , wherein:
(a) the system further comprises a plurality of communication nodes in communication with each other over a private network, each node comprising at least one of the plurality of network elements and being configured to provide communication services to a plurality of communication devices of the packet switched communication system; and (b) the communication controller is operably configured to establish the communication based on the network routing message by communicating with first and second communication nodes from the plurality of communication nodes, the first and second nodes being associated with the first and second participant devices, respectively.
19 . The system of claim 2 , wherein:
(a) the system further comprises a plurality of communication nodes in communication with each other over a private network, each node comprising at least one of the plurality of network elements and being configured to provide communication services to a plurality of communication devices of the packet switched communication system, the first and second nodes being associated with the first and second participant devices, respectively; and (b) the routing controller is operably configured by the instructions stored in the at least one memory to determine whether the first and second nodes are the same or whether they are different and to produce the network routing message to include an identification of the node with which the second participant device is associated to facilitate the communication controller establishing the communication to the second participant device.
20 . The system of claim 2 wherein the communication is established by the packet switched communication system as a voice-over-IP (VoIP) communication session.
21 . A method of establishing communications in an packet switched communication system between a first participant device associated with a first participant and a second participant device associated with a second participant, the method comprising:
accessing at least one memory that stores a first participant profile identifying at least one first participant attribute, by at least one processor of a routing controller in communication with a communication controller operable to communicate with one or more of a plurality of network elements that provide communication services to a plurality of communication devices associated with a geographic area associated with the second participant device; receiving a second participant identifier, by the at least one processor, in response to the first participant using the first participant device to initiate a communication to the second participant device, the second participant identifier being associated with the second participant device; producing a new second participant identifier, by the at least one processor, the new second participant identifier comprising a username with which the second participant device is associated in the packet switched communication system, based on at least one match between the second participant identifier and the at least one first participant attribute; using the new second participant identifier, by the at least one processor, to identify a destination network element associated with the second participant device from among the plurality of network elements, wherein the plurality of network elements provide load sharing of the communication services to the communication devices associated with the geographic area; and producing a network routing message for receipt by the communication controller, the network routing message identifying the username and a network address of the destination network element associated with the second participant device in the packet switched communication system; receiving the network routing message, by the communication controller, causing the communication controller to attempt to establish the communication to the second participant device based on the network address associated with the second participant device.
22 . The method of claim 21 further comprising:
receiving a third participant identifier, by the at least one processor, in response to the first participant using the first participant device to initiate a further communication to a third participant device, the third participant identifier being associated with the third participant device;
producing a new third participant identifier comprising a public switched telephone network (PSTN) number, by the at least one processor, based on at least one match between the third participant identifier and the at least one first participant attribute;
identifying a destination gateway, by the at least one processor, associated with the third participant device from among one or more gateways interconnecting the packet switched communication system with a PSTN communication network, based on the new third participant identifier;
producing a gateway routing message for receipt by the communication controller, by the at least one processor, the gateway routing message identifying the PSTN number and a destination gateway address associated with the destination gateway; and
receiving the gateway routing message, by the communication controller, causing the communication controller to attempt to establish the further communication to the third participant device using the PSTN communication network, based on the PSTN number and destination gateway address in the gateway routing message.
23 . The method of claim 22 :
wherein said one or more gateways comprise a plurality of gateways that provide alternative routing options from the first participant device on the packet switched communication system, to the third participant device on the PSTN communication network.
24 . The method of claim 23 further comprising:
using the new third participant identifier, by the at least one processor, to determine a route identifier associated with gateways capable of routing communications to the third participant device, and selecting a second plurality of gateways from among the plurality of gateways based on the route identifier, wherein each of the second plurality of gateways is capable of routing the further communication to the third participant device.
25 . The method of claim 21 further comprising:
receiving a third participant identifier, by the at least one processor, in response to the first participant using the first participant device to initiate a further communication to a third participant device, the third participant identifier being associated with the third participant device;
producing a new third participant identifier based on the third participant identifier and the at least one first participant attribute, by the at least one processor, wherein the new third participant identifier comprises a second username of the packet switched communication system associated with the third participant device;
searching at least one database of the packet switched communication system, by the at least one processor, for blocking information associated with the second username, and if the communication blocking information is found, preventing the further communication to the third participant device from being established.
26 . The method of claim 21 further comprising:
receiving a third participant identifier, by the at least one processor, in response to the first participant using the first participant device to initiate a further communication to a third participant device, the third participant identifier being associated with the third participant device;
producing a new third participant identifier based on at least one match between the third participant identifier and the at least one first participant attribute, by the at least one processor, the new third participant identifier comprising a second username of the communication system;
determining whether forwarding information is associated with the second username in at least one database of the packet switched communication system, the forwarding information identifying at least one destination device to which the communication can be forwarded; and
attempting to forward the further communication to the at least one destination device if forwarding information is associated with the second username in the at least one database.
27 . The method of claim 21 further comprising:
determining whether or not the communication to the second participant device was not established by the communication controller, and if not, storing the communication on a server in association with the username to facilitate the second participant device accessing the stored communication at a later time.
28 . The method of claim 21 further comprising:
sending, to the first participant device, an identification of an IP address associated with a media relay with which the first participant device should communicate; and
causing a communications link to be established from the first participant device, through the media relay, to the second participant device.
29 . The method of claim 21 further comprising:
(a) identifying a plurality of possible paths for routing at least one communication from the first participant device to a destination device;
(b) processing routing costs associated with each of the plurality of possible paths for routing the at least one communication; and
(c) producing at least one routing message containing a time to live for a communication session which is based on the step of processing the routing costs.
30 . A non-transitory computer readable medium storing computer readable instructions for directing at least one processor to execute the method of claim 21 .Join the waitlist — get patent alerts
Track US2019199621A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.