Inter-enterprise telephony using a central brokerage device
Summary by NHIP
Central brokerage telephony routing
The system routes inter-enterprise calls by checking a central brokerage device against stored resolution and connectivity data. It establishes an encrypted packet-based link if the identifier matches resolution information, otherwise creating a circuit-switched connection via the dialed telephone identifier.
Claim Score by NHIP
Abstract
A system for inter-enterprise telephony communications includes a central brokerage device that can receive a packet encoding a dialed telephone identifier generated by a first telephony device located in the first enterprise network, where the dialed telephone identifier is associated with a second telephony device located in a second enterprise network. The central brokerage device can also identify a network address of the second enterprise network using connectivity information if the dialed telephone identifier matches resolution information. The system also includes the first enterprise network, which can establish an encrypted communication link with the second enterprise network through a packet-based network using the identified network address if the dialed telephone identifier matches the resolution information. The first enterprise network can also establish a second communication link between the first enterprise network and the second enterprise network through a circuit-switched network using the dialed telephone identifier if the dialed telephone identifier does not match the resolution information.

Term
Projected expiry 18 January 2029.
- Priority and filed
- Granted
- Today
- Projected expiry
36 claims: 6 independent, 30 dependent
- 1A method for inter-enterprise telephony communications, comprising:receiving, for a plurality of enterprise networks, resolution information specifying a plurality of telephone identifiers associated with each of the enterprise networks and connectivity information specifying a network address associated with each of the enterprise networks;storing the resolution information and the connectivity information for each of the enterprise networks in a central brokerage device;receiving a packet encoding a dialed telephone identifier generated by a first telephony device located in a first enterprise network, wherein the dialed telephone identifier is associated with a second telephony device located in a second enterprise network;determining whether the dialed telephone identifier matches the resolution information stored in the central brokerage device;if the dialed telephone identifier matches the resolution information stored in the central brokerage device: identifying a network address of the second enterprise network using the connectivity information;and establishing an encrypted communication link between the first enterprise network and the second enterprise network through a packet-based network using the identified network address;and if the dialed telephone identifier does not match the resolution information stored in the central brokerage device: communicating a message to the first enterprise network that the dialed telephone identifier does not match the resolution information stored in the central brokerage device;and establishing a second communication link between the first enterprise network and the second enterprise network through a circuit-switched network using the dialed telephone identifier.
- 8A system for inter-enterprise telephony communications, comprising:a central brokerage device operable to receive, for each of a plurality of enterprise networks, resolution information specifying a plurality of telephone identifiers associated with each of the enterprise networks and connectivity information specifying a network address associated with each of the enterprise networks, to store the resolution information and the connectivity information for each of the enterprise networks, to receive a packet encoding a dialed telephone identifier generated by a first telephony device located in a first enterprise network, wherein the dialed telephone identifier is associated with a second telephony device located in a second enterprise network, to determine whether the dialed telephone identifier matches the resolution information stored in the central brokerage device, to identify a network address of the second enterprise network using the connectivity information if the dialed telephone identifier matches the resolution information stored in the central brokerage device, and to communicate a message to the first enterprise network that the dialed telephone identifier does not match the resolution information stored in the central brokerage device if the dialed telephone identifier does not match the resolution information stored in the central brokerage device;and the first enterprise network operable to establish an encrypted communication link with the second enterprise network through a packet-based network using the identified network address if the dialed telephone identifier matches the resolution information stored in the central brokerage device, and to establish a second communication link between the first enterprise network and the second enterprise network through a circuit-switched network using the dialed telephone identifier if the dialed telephone identifier does not match the resolution information stored in the central brokerage device.
- 15An apparatus supporting inter-enterprise telephony communications, comprising:a memory operable to receive, for each of a plurality of enterprise networks, resolution information specifying a plurality of telephone identifiers associated with each of the enterprise networks and connectivity information specifying a network address associated with each of the enterprise networks, to store the resolution information and the connectivity information for each of the enterprise networks, and to receive a packet encoding a dialed telephone identifier generated by a first telephony device located in a first enterprise network, wherein the dialed telephone identifier is associated with a second telephony device located in a second enterprise network;and a processor coupled to the memory and operable to determine whether the dialed telephone identifier matches the resolution information stored in the memory, to identify a network address of the second enterprise network using the connectivity information if the dialed telephone identifier matches the resolution information stored in the memory, and to communicate a message to the first enterprise network that the dialed telephone identifier does not match the resolution information stored in the memory if the dialed telephone identifier does not match the resolution information stored in the memory;wherein the first enterprise network is operable to establish an encrypted communication link with the second enterprise network through a packet-based network using the identified network address if the dialed telephone identifier matches the resolution information stored in the memory, and to establish a second communication link between the first enterprise network and the second enterprise network through a circuit-switched network using the dialed telephone identifier if the dialed telephone identifier does not match the resolution information stored in the memory.
- 22A computer readable medium encoded with logic for inter-enterprise telephony communications, the logic operable when executed to:receive, for each of a plurality of enterprise networks, resolution information specifying a plurality of telephone identifiers associated with each of the enterprise networks and connectivity information specifying a network address associated with each of the enterprise networks;store the resolution information and the connectivity information for each of the enterprise networks in a central brokerage device;receive a packet encoding a dialed telephone identifier generated by a first telephony device located in a first enterprise network, wherein the dialed telephone identifier is associated with a second telephony device located in a second enterprise network;determine whether the dialed telephone identifier matches the resolution information stored in the central brokerage device;if the dialed telephone identifier matches the resolution information stored in the central brokerage device: identify a network address of the second enterprise network using the connectivity information;and establish an encrypted communication link between the first enterprise network and the second enterprise network through a packet-based network using the identified network address;and if the dialed telephone identifier does not match the resolution information stored in the central brokerage device: communicate a message to the first enterprise network that the dialed telephone identifier does not match the resolution information stored in the central brokerage device;and establish a second communication link between the first enterprise network and the second enterprise network through a circuit-switched network using the dialed telephone identifier.
- 29A system for inter-enterprise telephony communications, comprising:means for receiving, for each of a plurality of enterprise networks, resolution information specifying a plurality of telephone identifiers associated with each of the enterprise networks and connectivity information specifying a network address associated with each of the enterprise networks;means for storing the resolution information and the connectivity information for each of the enterprise networks in a central brokerage device;means for receiving a packet encoding a dialed telephone identifier generated by a first telephony device located in a first enterprise network, wherein the dialed telephone identifier is associated with a second telephony device located in a second enterprise network;means for determining whether the dialed telephone identifier matches the resolution information stored in the central brokerage device;if the dialed telephone identifier matches the resolution information stored in the central brokerage device: means for identifying a network address of the second enterprise network using the connectivity information;and means for establishing an encrypted communication link between the first enterprise network and the second enterprise network through a packet-based network using the identified network address;and if the dialed telephone identifier does not match the resolution information stored in the central brokerage device: means for communicating a message to the first enterprise network that the dialed telephone identifier does not match the resolution information stored in the central brokerage device;and means for establishing a second communication link between the first enterprise network and the second enterprise network through a circuit-switched network using the dialed telephone identifier.
- 36Broadest claimClaim Score 51, average(NHIP)A system for supporting communications between enterprise networks, comprising:a telephony device operable to couple to a first enterprise network, to receive a telephone identifier associated with a remote device, and to communicate the telephone identifier to a local call management device;the local call management device operable to couple to the telephony device, to receive the telephone identifier, to determine that the remote device is not coupled to the first enterprise network based on the telephone identifier, and to communicate the telephone identifier to a central brokerage device;the central brokerage device operable to couple to the local call management device, to receive the telephone identifier, to identify a second enterprise network associated with the remote device using the telephone identifier, to determine connectivity information associated with the second enterprise network, to couple to a gateway associated with the first enterprise network, and to communicate the connectivity information to the gateway;and the gateway operable to couple to the central brokerage device, to receive the connectivity information, to establish a communication link with a second gateway associated with the second enterprise network using the connectivity information, to exchange encryption information with the second gateway, and to encrypt and decrypt communications transmitted between the telephony device and the remote device using the communication link and the encryption information.
Independent claims6
55 paragraphs in 5 sections, as filed
TECHNICAL FIELD OF THE INVENTION
The present invention relates generally to inter-enterprise telephony, and, more particularly, to inter-enterprise telephony using a central brokerage device.
BACKGROUND OF THE INVENTION
Enterprises are increasingly adopting packet-based telephony solutions for personal and business telephone networks. These solutions work well for calls within enterprises, but significant difficulties arise when attempting packet-based, enterprise-to-enterprise calls.
SUMMARY OF THE INVENTION
In accordance with the present invention, techniques for inter-enterprise telephony using a central brokerage device are provided. According to particular embodiments, these techniques support communications between enterprise networks utilizing packet-based protocols. In particular, a brokerage device may be able to identify enterprise networks using telephone numbers. Furthermore, the brokerage device may be able to provide connectivity data associated with particular enterprise networks to gateways for establishing secure, packet-based communications sessions. The brokerage device may also provide for fallback connections between enterprise networks using a circuit-switched network. In addition, the brokerage device may support packet-based, rich media streams and conferencing services.
According to a particular embodiment, a system for inter-enterprise telephony communications includes a central brokerage device that can receive a packet encoding a dialed telephone identifier generated by a first telephony device located in the first enterprise network, where the dialed telephone identifier is associated with a second telephony device located in a second enterprise network. The central brokerage device can also identify a network address of the second enterprise network using connectivity information if the dialed telephone identifier matches resolution information. The system also includes the first enterprise network, which can establish an encrypted communication link with the second enterprise network through a packet-based network using the identified network address if the dialed telephone identifier matches the resolution information. The first enterprise network can also establish a second communication link between the first enterprise network and the second enterprise network through a circuit-switched network using the dialed telephone identifier if the dialed telephone identifier does not match the resolution information.
Embodiments of the invention provide various technical advantages. These techniques may allow enterprises to communicate with one another using packet-based intermediary networks. According to particular embodiments, a central brokerage device may provide a central repository for connectivity data used to establish communications sessions between enterprise networks. Utilizing the brokerage device may therefore reduce the amount of connectivity data required to be stored by individual enterprise networks. According to particular embodiments, these techniques provide a scalable solution for multiple enterprise networks. These techniques may also provide for secure communications over an end-to-end, packet-based communication link. Furthermore, by utilizing a central brokerage device, trust boundaries between enterprise networks may be maintained. These techniques may support encrypted communications between enterprise networks so as to reduce dependencies upon firewalls. According to particular embodiments, the ability to utilize fallback connections between enterprise networks provides redundancy. Conferencing features supported by a central brokerage device may increase the desirability of packet-based telephony solutions.
Other technical advantages of the present invention will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
<figref idref="DRAWINGS">FIG. 1</figref> illustrates a communication system including a central brokerage device that supports inter-enterprise communications;
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating functional components of a brokerage device; and
<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart illustrating a method for establishing an inter-enterprise communications session.
DETAILED DESCRIPTION OF THE INVENTION
<figref idref="DRAWINGS">FIG. 1</figref> illustrates a communication system, indicated generally at <b>10</b>, that includes multiple enterprise networks <b>12</b> interconnected by a packet-based network <b>14</b> and a public switched telephone network (PSTN) <b>16</b>. In the embodiment illustrated, enterprise networks <b>12</b> include telephony devices <b>18</b> and call management devices <b>20</b>. Furthermore, enterprise networks <b>12</b> as well as packet-based network <b>14</b> include gateways <b>22</b>. As illustrated, packet-based network <b>14</b> also includes brokerage device <b>24</b>. In general, communications sessions may be established between enterprise networks <b>12</b> through packet-based network <b>14</b> and/or PSTN <b>16</b>. More particularly, brokerage device <b>24</b> may store connectivity data associated with enterprise networks <b>12</b>, identify particular connectivity data using a telephone number communicated to brokerage device <b>24</b>, and provide the particular connectivity data to the appropriate element of system <b>10</b> so that secure communications session may be established between enterprise networks <b>12</b>.
Enterprise networks <b>12</b> each represent any suitable collection of hardware and controlling logic to support packet-based communications between devices. Each enterprise network <b>12</b> provides an infrastructure to interconnect devices within an enterprise as well as with other elements of system <b>10</b>. In a particular embodiment, each enterprise network <b>12</b> may include one or multiple networks, such as packet-based local area networks (LANs), wide area networks (WANs), and/or any other appropriate form of network.
Packet-based network <b>14</b> represents any suitable collection of hardware and controlling logic to support packet-based communications between devices. Similar to enterprise networks <b>12</b>, packet-based network <b>14</b> provides an infrastructure to interconnect devices within system <b>10</b>. In a particular embodiment, packet-based network <b>14</b> may include one or multiple networks, such as packet-based LANs, WANs, and/or any other appropriate form of network. Furthermore, packet-based network <b>14</b> may include all or portions of various public and private networks such as the Internet.
PSTN <b>16</b> represents communications equipment, including hardware and any appropriate controlling logic, through which enterprise networks <b>12</b> may communicate. PSTN <b>16</b> may include switches, wireline and wireless communication devices, and any other appropriate equipment for interconnecting enterprise networks <b>12</b>. PSTN <b>16</b> may include portions of public and private networks providing network transport services between various geographic areas and networks.
Telephony devices <b>18</b> each represent packet-based communications equipment, including hardware and any appropriate controlling logic, for providing telephony services over packet-based networks including enterprise networks <b>12</b> and packet-based network <b>14</b>. Telephony devices <b>18</b> may communicate using Internet Protocol (IP). For example, telephony devices <b>12</b> may include Voice over IP (VoIP) telephones, such as telephones supporting H.323 and/or session initiation protocol (SIP). However, telephony devices <b>12</b> include any appropriate communication devices using any suitable protocols. Note that in the embodiment illustrated one telephony device <b>18</b><i>a </i>is located in enterprise <b>12</b><i>a </i>and one telephony device <b>18</b><i>b </i>is located in enterprise network <b>12</b><i>b</i>. However, any number of telephony devices <b>18</b> may be located inside and outside any enterprise network <b>12</b>, such as within packet-based network <b>14</b>.
Call management devices <b>20</b> each represent equipment, including hardware and any appropriate controlling logic, for managing communications sessions involving telephony devices <b>18</b>. Furthermore, call management devices <b>20</b> may interact with gateways <b>22</b> to provide for secure communications within system <b>10</b>. Note that in the embodiment illustrated one call management device <b>20</b><i>a </i>is located in enterprise <b>12</b><i>a </i>and one call management device <b>20</b><i>b </i>is located in enterprise network <b>12</b><i>b</i>. For example, call management device <b>20</b><i>a </i>may manage communications sessions involving telephony device <b>18</b><i>a</i>, while call management device <b>20</b><i>b </i>may manage communications sessions involving telephony device <b>18</b><i>b</i>. However, any number of call management devices <b>20</b> may be located inside and outside any enterprise network <b>12</b>, such as within packet-based network <b>14</b>. Furthermore, while illustrated as a separate component of system <b>10</b>, the functions of call managers <b>20</b> may be incorporated within or distributed among any suitable element or elements. Thus, for example, the functions of call managers <b>20</b> may be provided within selected and/or each telephony device <b>18</b>.
Gateways <b>22</b> each represent communications equipment, including hardware and any appropriate controlling logic, for interconnecting various types of networks. Gateways <b>22</b> may be used, for example, to convert communications between different communication protocols. Gateways <b>22</b> may also be used to provide for secure communications between networks. For example, gateways <b>22</b> may support virtual private network (VPN) technology. Furthermore, gateways <b>22</b> may store and communicate encryption keys for encrypting and decrypting communications within system <b>10</b>.
Note that while enterprise networks <b>12</b><i>a </i>and <b>12</b><i>b</i>, as illustrated, only include one telephony device <b>18</b> and one call management device <b>20</b>, particular embodiments may include multiple telephony devices <b>18</b> and call management devices <b>20</b> in particular enterprise networks <b>12</b>. Furthermore, while each enterprise network <b>12</b> includes only one gateway <b>22</b> coupled to packet-based network <b>14</b> and only one gateway <b>22</b> coupled to PSTN <b>16</b>, multiple gateways <b>22</b> may be used to couple to packet-based network <b>14</b> and multiple gateways <b>22</b> may be used to couple to PSTN <b>16</b>.
Brokerage device <b>24</b> represents any suitable collection of hardware and controlling logic operable to support inter-enterprise communications. Thus, for example, brokerage device <b>24</b> may include a softswitch, domain name system (DNS) server, or any other appropriate device for providing number to address and/or address to address resolution. Furthermore, according to particular embodiments, brokerage device <b>24</b> may also provide conferencing features.
In operation, brokerage device <b>24</b> may be used as a central repository for storing connectivity data used to establish inter-enterprise communications sessions. As used herein, connectivity data may include any of various types of information used to establish inter-enterprise communications sessions. For example, connectivity data may include IP addresses of particular gateways <b>22</b> associated with destination enterprise networks <b>12</b>, port numbers associated with the particular gateways <b>22</b>, and/or encryption algorithms or identifications of encryption algorithms utilized by particular gateways <b>22</b>. Note that brokerage device <b>24</b> may be subject to a service agreement that permits brokerage device <b>24</b> to access connectivity data for a particular enterprise. Thus, according to a particular embodiment, a first enterprise network <b>12</b> may access and use the connectivity data to couple to and establish a secure communications session with a particular telephony device <b>18</b> located in a second enterprise network <b>12</b>.
For example, a user of telephony device <b>18</b><i>a </i>may dial a telephone number associated with telephony device <b>18</b><i>b</i>. Telephony device <b>18</b><i>a </i>may communicate the telephone number to call management device <b>20</b><i>a</i>, where a dial plan stored within call management device <b>20</b><i>a </i>may be used to determine how to route the call and establish a communications session. For example, the dial plan may identify local telephony devices <b>18</b> within enterprise network <b>12</b><i>a </i>using the telephone number. However, if the telephone number is not associated with any telephony device <b>18</b> located within enterprise <b>12</b><i>a</i>, call management device <b>20</b><i>a </i>may seek assistance in determining how to route the call. For example, if call management device <b>20</b><i>a </i>determines that the telephone number is not associated with a local telephony device <b>18</b>, call management device <b>20</b><i>a </i>may communicate the telephone number to brokerage device <b>24</b> for assistance in routing the call.
Brokerage device <b>24</b> may receive the telephone number communicated from call management device <b>20</b><i>a </i>through gateway <b>22</b><i>a</i>. After receiving the telephone number, brokerage device <b>24</b> may analyze the telephone number to determine whether the telephone number matches or is otherwise associated with resolution data stored by brokerage device <b>24</b>. Resolution data may associate telephone numbers and/or particular combinations of digits in telephone numbers with particular enterprise networks <b>12</b> and/or particular connectivity data. Thus, brokerage device <b>24</b> may provide number to address resolution. For example, if the telephone number communicated by call management device <b>20</b><i>a </i>is associated with telephony device <b>18</b><i>b</i>, brokerage device <b>24</b> may be able to identify enterprise network <b>12</b><i>b </i>and/or appropriate connectivity data using the resolution data. Alternatively or in addition, brokerage device <b>24</b> may provide address to address resolution. For example, a particular SIP user identification may be associated with a particular network address. Note that brokerage device <b>24</b> may be subject to a service agreement that permits brokerage device <b>24</b> to access resolution data for a particular enterprise.
According to particular embodiments, brokerage device <b>24</b> may include resolution data related to enterprise network <b>12</b><i>b </i>if enterprise network <b>12</b><i>b </i>has registered telephone numbers and connectivity data with brokerage device <b>24</b>. However, resolution and connectivity data may be obtained in any of various other ways. For example, a user may input resolution and connectivity data during configuration of brokerage device <b>24</b>.
If brokerage device <b>24</b> fails to identify enterprise network <b>12</b><i>b </i>and/or connectivity information associated with enterprise network <b>12</b><i>b </i>using the telephone number, brokerage device <b>24</b> may communicate a failure message to enterprise network <b>12</b><i>a</i>. For example, brokerage device <b>24</b> may communicate that no match was found using the telephone number. Elements of enterprise network <b>12</b><i>a </i>may couple to enterprise network <b>12</b><i>b </i>in response to receiving the message. For example, call management device <b>20</b><i>a </i>may receive the failure message and take appropriate action. According to particular embodiments, call management device <b>20</b><i>a </i>may route the telephone call through gateway <b>22</b><i>aa </i>and PSTN <b>16</b>. Alternatively or in addition, brokerage device <b>24</b> may provide a fallback connection using the telephone number. For example, if brokerage device <b>24</b> cannot match the telephone number, brokerage device <b>24</b> may create a link to enterprise network <b>12</b><i>b </i>through gateway <b>22</b><i>c </i>and PSTN <b>16</b>. Thus, PSTN <b>16</b> may be used in various ways to identify and couple to enterprise network <b>12</b><i>b. </i>
If brokerage device <b>24</b> succeeds in identifying enterprise network <b>12</b><i>b </i>and/or connectivity information associated with enterprise network <b>12</b><i>b </i>using the telephone number, brokerage device <b>24</b> may communicate a success message to enterprise network <b>12</b><i>a</i>. The success message may include connectivity data for use by an appropriate element of enterprise network <b>12</b><i>a </i>in establishing a communications session with enterprise network <b>12</b><i>b </i>through packet-based network <b>14</b>. According to particular embodiments, brokerage device <b>24</b> communicates the connectivity data to gateway <b>22</b><i>a. </i>
Gateway <b>22</b><i>a </i>may use the connectivity data to establish a communications session with enterprise network <b>12</b><i>b</i>. For example, gateway <b>22</b><i>a </i>may communicate media to gateway <b>22</b><i>b</i>, which may be identified using an IP address identified in the connectivity data. Furthermore, gateway <b>22</b><i>a </i>may communicate media to a particular port of gateway <b>22</b><i>b </i>identified using the connectivity data. In addition, gateway <b>22</b><i>a </i>may use an encryption algorithm provided or identified by the connectivity data. Alternatively or in addition, gateways <b>22</b><i>a </i>and <b>22</b><i>b </i>may exchange encryption keys to establish an encrypted communications session. According to particular embodiments, media may be streamed directly between gateway <b>22</b><i>a </i>and gateway <b>22</b><i>b</i>. However, in alternative embodiments, brokerage device <b>24</b> may insert itself into the media stream. For example, if enterprise network <b>12</b><i>b </i>does not support security measures required or desired by enterprise network <b>12</b><i>a </i>but brokerage device <b>24</b> does, brokerage device <b>24</b> may insert itself into the media stream. Thus, for example, an encrypted link between gateway <b>22</b><i>a </i>and brokerage device <b>24</b> and an unencrypted link between brokerage device <b>24</b> and enterprise network <b>12</b><i>b </i>may be utilized to transmit communications between enterprise networks <b>12</b>.
Brokerage device <b>24</b> may also support various enhanced features. According to particular embodiments, brokerage device <b>24</b> may assist enterprise network <b>12</b><i>a </i>in utilizing multiple gateways <b>22</b> in association with VoIP calls. For example, a bank of gateways <b>22</b><i>a </i>may be available for use in enterprise network <b>12</b><i>a</i>, and brokerage device <b>24</b> may use a round robin scheduler or other appropriate method to identify a particular one of the gateways <b>22</b><i>a </i>for use in association with a particular communications session. In addition, a bank of gateways <b>22</b><i>b </i>may be available for use in enterprise network <b>12</b><i>b</i>, and brokerage device <b>24</b> may similarly use a round robin scheduler or other appropriate method to identify a particular one of the gateways <b>22</b><i>b </i>for use in association with a particular communications session. According to particular embodiments, brokerage device <b>24</b> may communicate to call management device <b>20</b><i>a </i>connectivity information associated with selected ones of gateways <b>22</b> that will be utilized in association with a particular communications session. Call management device <b>20</b><i>a </i>may select one of multiple gateways <b>22</b><i>a </i>for coupling through packet-based network <b>14</b> to gateway <b>22</b><i>b</i>. According to alternative embodiments, brokerage device <b>24</b> may communicate connectivity data directly to the selected gateways <b>22</b>. For example, according to particular embodiments, gateway <b>22</b><i>a </i>may directly receive connectivity data used to couple to gateway <b>22</b><i>b. </i>
Furthermore, brokerage device <b>24</b> may support the communication of various types of data between enterprise networks. For example, any one or a combination of voice, video, text, and other rich media streams may be supported by brokerage device <b>24</b>. One way that brokerage device <b>24</b> may support rich media streams is by providing port numbers for use with rich media streams. Alternatively or in addition, brokerage device <b>24</b> may provide conferencing services. For example, brokerage device <b>24</b> may host a conference call and internally bridge voice and/or other media.
Thus, brokerage device <b>24</b> may be utilized to assist in establishing communications between enterprise networks <b>12</b>. Brokerage device <b>24</b> may serve as a central repository for number to address and/or address to address resolution and the provision of connectivity data for establishing communications sessions between enterprise networks <b>12</b>. Furthermore, brokerage device <b>24</b> may select gateways <b>22</b>, support rich media streams, assist in utilizing enhanced security techniques, and provide conferencing services for use in system <b>10</b>.
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating functional components of brokerage device <b>24</b>. In the embodiment illustrated, brokerage device <b>24</b> includes a processor <b>40</b>, a network interface <b>42</b>, and a memory <b>44</b>. These functional components can operate to support inter-enterprise communications.
Processor <b>40</b> controls the operation and administration of elements within brokerage device <b>24</b>. For example, processor <b>40</b> operates to process information received from network interface <b>42</b> and memory <b>44</b>. Processor <b>40</b> includes any hardware and/or logic elements operable to control and process information. For example, processor <b>40</b> may be a programmable logic device, a controller, and/or any other suitable processing device.
Network interface <b>42</b> communicates information to and receives information from devices coupled to brokerage device <b>24</b>. For example, network interface <b>42</b> may communicate with gateways <b>22</b><i>a</i>, <b>22</b><i>b</i>, and <b>22</b><i>c </i>as well as call management devices <b>20</b><i>a </i>and <b>20</b><i>b</i>. Furthermore, network interface <b>42</b> may receive information from and transmit information to telephony devices <b>18</b>. Thus, network interface <b>42</b> includes any suitable hardware and controlling logic used to communicate information to or from elements coupled to brokerage device <b>24</b>.
Memory <b>44</b> stores, either permanently or temporarily, data and other information for processing by processor <b>40</b> and communication using network interface <b>42</b>. Memory <b>44</b> includes any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory <b>44</b> may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. As illustrated, memory <b>44</b> may include one or more memory modules, such as code <b>46</b>, resolution data <b>48</b>, and connectivity data <b>50</b>.
Code <b>46</b> includes software, executable files, and/or appropriate logic modules capable when executed to control the operation of brokerage device <b>24</b>. For example, code <b>46</b> may include executable files capable of supporting inter-enterprise communications. Furthermore, code <b>46</b> may include instructions to enable brokerage device <b>24</b> to provide enhanced security features, fallback communication links, conferencing services, and support for rich communication streams.
Resolution data <b>48</b> includes information used by brokerage device <b>24</b> to identify a particular enterprise network <b>12</b> and/or connectivity data <b>50</b> associated with a received telephone number. For example, resolution data <b>48</b> may organize particular enterprise networks <b>12</b> by telephone numbers. According to particular embodiments, particular sets of digits in telephone numbers may be associated with particular enterprise networks <b>12</b> and/or connectivity data <b>50</b>.
Connectivity data <b>50</b> includes information for establishing a communications session with particular enterprise networks <b>12</b>. The information may be associated with enterprise networks <b>12</b> willing to establish communications sessions using the connectivity data <b>50</b>. As described above, connectivity data <b>50</b> may include IP addresses, port numbers, identifiers of encryption algorithms, and other appropriate information.
In operation, network interface <b>42</b> may receive a telephone number communicated from enterprise network <b>12</b><i>a </i>through gateway <b>22</b><i>a</i>. For example, assume that the telephone number is associated with telephony device <b>18</b><i>b </i>in enterprise network <b>12</b><i>b</i>. In response to receiving the telephone number, processor <b>40</b> may execute code <b>46</b> to determine whether brokerage device <b>24</b> can identify enterprise network <b>12</b><i>b </i>as being associated with the telephone number. For example, processor <b>40</b> may compare the telephone number with resolution data <b>48</b>.
Resolution data <b>48</b> may include telephone numbers associated with particular enterprise network <b>12</b>, such as enterprise network <b>12</b><i>b</i>. According to particular embodiments, resolution data <b>48</b> may identify particular digits and telephone numbers that are associated with particular enterprise networks <b>12</b>. For example, an area code and first three digits of a telephone number may be associated with a particular enterprise network <b>12</b>. Thus, processor <b>40</b> may utilize resolution data <b>48</b> to determine a match for a received telephone number.
If the telephone number is matched with enterprise network <b>12</b><i>b </i>using resolution data <b>48</b>, processor <b>40</b> may select appropriate connectivity data <b>50</b> associated with enterprise network <b>12</b><i>b</i>. Here, connectivity data <b>50</b> may include IP addresses, port numbers, algorithms, and other appropriate connectivity data related to enterprise network <b>12</b><i>b</i>. The selected connectivity data <b>50</b> may be communicated to enterprise network <b>12</b><i>a</i>. For example, connectivity data <b>50</b> associated with enterprise network <b>12</b><i>b </i>may be communicated to gateway <b>22</b><i>a</i>, call management device <b>20</b><i>a</i>, or any other appropriate element associated with enterprise network <b>12</b><i>a. </i>
According to particular embodiments, the information stored in connectivity data <b>50</b> may include multiple sets of data for one or more particular enterprise networks <b>12</b>. For example, when enterprise network <b>12</b><i>b </i>includes multiple gateways <b>22</b><i>b</i>, separate connectivity data may be stored for each gateway <b>22</b><i>b</i>. Furthermore, processor <b>40</b> may utilize a scheduler in association with connectivity data <b>50</b>. For example, processor <b>40</b> may select connectivity data associated with one of various gateways <b>22</b><i>b </i>associated with enterprise network <b>12</b><i>b </i>according to a round robin scheduler. Similarly, processor <b>40</b> may utilize a scheduler and communicate the selected connectivity data to one of multiple gateways <b>22</b><i>a </i>in enterprise network <b>12</b><i>a</i>. In these ways, brokerage device <b>24</b> may distribute communications sessions across multiple gateways <b>22</b> to reduce load on any one particular gateway <b>22</b>.
Processor <b>40</b> may assist in establishing media streams between gateways <b>22</b><i>a </i>and <b>22</b><i>b </i>through packet-based network <b>14</b>. Note that various types of media may be communicated between enterprise network <b>12</b><i>a </i>and enterprise network <b>12</b><i>b</i>. For example, one or more of various media types may be communicated, such as voice, video, and data. Media streams may or may not pass through brokerage device <b>24</b> using network interface <b>42</b>. However, according to particular embodiments, brokerage device <b>24</b> may host conference calls. For example, telephony device <b>18</b><i>a </i>may couple to brokerage device <b>24</b> through gateway <b>20</b><i>a </i>using network interface <b>42</b>, while telephony device <b>18</b><i>b </i>may couple to brokerage device <b>24</b> through gateway <b>20</b><i>b </i>using network interface <b>42</b>.
According to particular embodiments, processor <b>40</b> communicates connectivity data <b>50</b> through network interface <b>42</b> to gateway <b>22</b><i>a </i>to assist in the establishment an encrypted link between gateways <b>22</b><i>a </i>and <b>22</b><i>b </i>within packet-based network <b>14</b>. If encrypted links exist between telephony device <b>18</b><i>a </i>and gateway <b>22</b><i>a </i>within enterprise network <b>12</b><i>a </i>and between gateway <b>22</b><i>b </i>and telephony device <b>18</b><i>b </i>within enterprise network <b>12</b><i>b</i>, messages communicated through network interface <b>42</b> may travel through an end-to-end, encrypted link.
Brokerage device <b>24</b> may assist in providing other enhanced security measures. For example, if encryption or other protocols utilized by enterprise network <b>12</b><i>a </i>and enterprise network <b>12</b><i>b </i>are not compatible, processor <b>40</b> may communicate connectivity data <b>50</b> to gateway <b>22</b><i>a </i>that places brokerage device <b>24</b> in the media stream. By placing brokerage device <b>24</b> in the media steam, processor <b>40</b> may receive and translate data communicated to network interface <b>42</b> from gateways <b>22</b>, call management devices <b>20</b>, and/or telephony devices <b>18</b> utilizing different encryption algorithms. Furthermore, simple endpoints not utilizing any encryption algorithms may be supported by creating an encrypted link between enterprise network <b>12</b><i>a </i>and brokerage device <b>24</b> and a second link between brokerage device <b>24</b> and enterprise network <b>12</b><i>b</i>. According to particular embodiments, the second link may travel through PSTN <b>16</b>, for example, through gateway <b>22</b><i>c. </i>
If processor <b>40</b> is unable to match the telephone number with enterprise network <b>12</b><i>b </i>and/or connectivity data <b>50</b> using resolution data <b>48</b>, processor <b>40</b> may communicate an appropriate message through network interface <b>42</b> to an element of enterprise network <b>12</b><i>a</i>. The message may indicate that no match was found with the telephone number. According to particular embodiments, after receiving the message, enterprise network <b>12</b><i>a </i>may couple to PSTN <b>16</b> through gateway <b>22</b><i>aa </i>to route the telephone call through PSTN <b>16</b>.
According to alternative embodiments, if processor <b>40</b> is unable to match the telephone number with enterprise network <b>12</b><i>b </i>using resolution data <b>48</b>, brokerage device <b>24</b> may provide a fallback connection to PSTN <b>16</b> through gateway <b>22</b><i>c</i>. Instead of simply communicating a failure message to enterprise network <b>12</b><i>a</i>, processor <b>40</b> may couple to enterprise network <b>12</b><i>b </i>through gateway <b>22</b><i>c </i>and PSTN <b>16</b> using network interface <b>42</b> to establish the communications session between enterprise networks <b>12</b><i>a </i>and <b>12</b><i>b. </i>
While this example includes specific functional components for brokerage device <b>24</b>, brokerage device <b>24</b> may include any collection and arrangement of components, including some or all of the enumerated functional components, for supporting communications between enterprise networks <b>12</b>. Moreover, brokerage device <b>24</b> contemplates implementing each of the functional components using any suitable combination and arrangement of hardware and/or logic, and implementing any of the functionalities using a computer program stored on a computer readable medium. Furthermore, brokerage device <b>24</b> may be implemented as a stand-alone device, or aspects of brokerage device <b>24</b> may be distributed among various devices within packet-based network <b>14</b>.
<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart illustrating a method <b>60</b> for inter-enterprise communications using brokerage device <b>24</b>. A user of telephony device <b>18</b><i>a </i>dials a telephone number at step <b>62</b>, and telephony device <b>18</b><i>a </i>may communicate the telephone number to call management device <b>20</b><i>a</i>. At step <b>64</b>, call management device <b>20</b><i>a </i>determines whether the telephone number is associated with a local device. For example, call management device <b>20</b><i>a </i>may include connectivity data for local devices in enterprise network <b>12</b><i>a</i>. Call management device <b>20</b><i>a </i>may determine whether the telephone number is associated with some telephony device <b>18</b> or another call management device <b>20</b> located within enterprise network <b>12</b><i>a</i>. If the telephone number communicated by telephony device <b>18</b><i>a </i>is not associated with a local device, call management device <b>20</b><i>a </i>communicates the telephone number to brokerage device <b>24</b> through gateway <b>22</b><i>a </i>at step <b>66</b>.
Brokerage device <b>24</b> determines whether a destination network can be identified using the telephone number at step <b>68</b>. For example, if the telephone number is associated with telephony device <b>18</b><i>b</i>, brokerage device <b>24</b> determines whether it can identify enterprise network <b>12</b><i>b </i>using the telephone number. If brokerage device <b>24</b> is able to identify the destination network, brokerage device <b>24</b> determines connectivity data for coupling to the destination network at step <b>70</b>. For example, if brokerage device <b>24</b> determines that enterprise network <b>12</b><i>b </i>is associated with the telephone number, brokerage device <b>24</b> may identify connectivity data <b>50</b> associated with gateway <b>22</b><i>b</i>. Brokerage device <b>24</b> communicates the identified connectivity data <b>50</b> to gateway <b>22</b><i>a </i>of enterprise network <b>12</b><i>a </i>at step <b>72</b>.
Gateway <b>22</b><i>a </i>couples to gateway <b>22</b><i>b </i>of enterprise network <b>12</b><i>b </i>through packet-based network <b>14</b> using the identified connectivity data <b>50</b> at step <b>74</b>. At step <b>76</b>, gateway <b>22</b><i>a </i>and gateway <b>22</b><i>b </i>exchange encryption keys. After exchanging encryption keys, a communications session is established at step <b>78</b>. The established communications session utilizes packet-based network <b>14</b> while maintaining security using encryption techniques. Thus, media is streamed between telephony device <b>18</b><i>a </i>and telephony device <b>18</b><i>b </i>at step <b>80</b>. According to particular embodiments, the streamed media may include rich media such as video.
Returning to step <b>64</b>, if the telephone number communicated by telephony device <b>18</b><i>a </i>is associated with a local device, call management device <b>20</b><i>a </i>couples telephony device <b>18</b><i>a </i>to the appropriate telephony device <b>18</b> or call management device <b>20</b> within enterprise network <b>12</b><i>a </i>at step <b>82</b>. After telephony device <b>18</b><i>a </i>is coupled to the destination device, the two devices may exchange encryption keys at step <b>76</b>, establish a communications session at step <b>78</b>, and stream media at step <b>80</b>.
Returning to step <b>68</b>, if brokerage device <b>24</b> is not able to identify the destination network, brokerage device <b>24</b> determines whether to provide a fallback connection at step <b>84</b>. If brokerage device <b>24</b> determines to provide a fallback connection, brokerage device <b>24</b> couples telephony device <b>18</b><i>a </i>to the dialed device through PSTN <b>16</b> using gateway <b>22</b><i>c </i>at step <b>86</b>. After coupling telephony device <b>18</b><i>a </i>to the dialed device through PSTN <b>16</b>, the communications session may be established at step <b>78</b> and media may be streamed between telephony device <b>18</b><i>a </i>and the dialed device at step <b>80</b>. On the other hand, if brokerage device <b>24</b> determines not to provide a fallback connection at step <b>84</b>, brokerage device <b>24</b> may communicate a failure message to telephony device <b>18</b><i>a </i>at step <b>88</b>. After receiving the failure message, telephony device <b>18</b><i>a </i>may call the dialed device using the telephone number through PSTN <b>16</b> at step <b>90</b>. After calling the dialed device, a communications session may be established to step <b>78</b> and media may be streamed between telephony device <b>18</b><i>a </i>and the dialed device at step <b>80</b>.
Thus, method <b>60</b> represents one embodiment of a method for inter-enterprise communications using brokerage device <b>24</b>. In particular, method <b>60</b> illustrates actions that may be taken by elements of system <b>10</b> to route a telephone call through an appropriate network. Secure calls may be routed through packet-based network <b>14</b> using connectivity data provided by brokerage device <b>24</b>. When brokerage device <b>24</b> is unable to resolve a telephone number to identify appropriate connectivity data, the telephone call may be routed through PSTN <b>16</b> as a fallback technique.
Method <b>60</b> may be modified in various ways. For example, multiple gateways <b>22</b> may be used in enterprise network <b>12</b><i>a </i>and/or enterprise network <b>12</b><i>b</i>. Thus, brokerage device <b>24</b> may utilize a scheduler to identify connectivity data <b>50</b> appropriate for particular gateways <b>22</b> when appropriate. Furthermore, according to particular embodiments brokerage device <b>24</b> may insert itself into the media stream to provide protocol translation and/or conferencing services.
Thus, the preceding flowchart illustrates a particular method for inter-enterprise communications utilizing a central brokerage device <b>24</b>. However, this flowchart illustrates only one exemplary method of operation, and communication system <b>10</b> contemplates devices using any suitable techniques, elements, and applications for performing similar methods. Thus, many of the steps in the flowchart may take place simultaneously and/or in different orders than as shown. In addition, the devices may use methods with additional steps or fewer steps, so long as the methods remain appropriate.
Although the present invention has been described in several embodiments, a myriad of changes and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes and modifications as fall within the present appended claims.
Contents5
3 sheets
Sheet 1 Sheet 2 Sheet 3
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2002154635A1 | Cites | United States of America | Search report |
| US2003093563A1 | Cites | United States of America | Search report |
| US6157636A | Cites | United States of America | Applicant |
| US6157648A | Cites | United States of America | Applicant |
| US6292481B1 | Cites | United States of America | Applicant |
| US6606708B1 | Cites | United States of America | Search report |
| US6799210B1 | Cites | United States of America | Applicant |
2 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 98220604 | United States of America | A | |
| US20040982206 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2006092919A1 | United States of America | A1 | |
| US7684385B2This record | United States of America | B2 |
50 transactions on the USPTO file
Allowed after 2 non-final rejections.
- Non-final rejections
- 2
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Withdraw Flagged for 5/25W525 | W525 | |
| Flagged for 5/25F525 | F525 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Initial Exam Team nnIEXX | IEXX |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 07684385
- Publication, DOCDB
- 7684385
- Publication, EPODOC
- US7684385
- Application
- 10982206
- Application, DOCDB
- 98220604
- Application, EPODOC
- US20040982206
Titles
- English
- Inter-enterprise telephony using a central brokerage device
Patent term adjustment
- A delay
- +1,084 daysthe office missed an examination deadline
- B delay
- +871 dayspendency past three years
- Overlap
- −415 daysdelays counted once
- Applicant delay
- −3 days
- Net adjustment
- 1,537 days
Classification
- CPC, 8
- H04L63/0428
- H04M7/009
- H04M7/0093
- H04M7/123
- H04L65/1069
- H04L67/14
- H04L61/4557
- H04L65/1101
- IPC, 1
- H04L12 66
- USPC, 3
- 370352000
- 370401000
- 379221020