Methods, systems, and computer readable media for verifying the availability of an internet protocol (IP) media router during a call setup

Methods, systems, and computer readable media for verifying the availability of an IP media router during a call setup are described. In one embodiment, the method comprises receiving, from a first endpoint device, a call setup signaling message requesting to establish a call session with a second endpoint device. The method also includes selecting a first media router to establish a first call leg of the call session, performing a route query and MAC address resolution to determine if the first media router is available, and if the first media router is determined to be available, creating a first redirect stream to communicate media packets received from the second endpoint device to the first endpoint device via the first call leg.

TECHNICAL FIELD

The subject matter described herein relates to media routing and determining availability of Internet protocol (IP) hop devices prior to establishing a call. More specifically, the subject matter relates to methods, systems, and computer readable media for verifying the availability of an IP media router during a call setup.

BACKGROUND

Typically, when a calling endpoint device desires to establish a call session with an endpoint device of a called party, the calling endpoint device goes off-hook and a call setup signaling message is generated at a local end office (e.g., an SSP). In some packet-based telephony networks, the call setup signaling message is directed toward the called endpoint device and is intercepted by a session border controller (SBC). After receiving the call setup message, the SBC generates a second call setup message (i.e., a second call leg) that is directed toward the called endpoint device. Thus, the SBC is acting as a back-to-back user agent by establishing and coordinating separate call signaling legs. Once the call signaling process is completed, the SBC then establishes the media path for communicating the media traffic between the two endpoint devices. This process usually involves identifying and assigning media routers positioned between the SBC and each endpoint that can handle the media packets. In some instances, the SBC accomplishes this task by performing a route lookup and media access control (MAC) address resolution for one or more media routers.

At present, the route lookup and the MAC address resolution are performed after the packets are received by SBC on a redirect stream and after the call signaling stage is completed. However, performing the route lookup and MAC address resolution after call signaling process is completed can lead to some problems, such as the call session not having any audio if the route lookup/MAC address resolution fails. The problem may also persist if the original caller repeatedly attempts to make calls to the same failed destination. Since the call was successfully established in the signaling stage, the end office that sent the call to the SBC is effectively prevented from searching for another provider that can provide successful media routing since the end office does not detect any call setup problems.

Accordingly, a need exists for improved methods, systems, and computer readable media for verifying the availability of an IP media router during a call setup.

SUMMARY

Methods, systems, and computer readable media for verifying the availability of an IP media router during a call setup are described. In one embodiment, the method comprises receiving, from a first endpoint device, a call setup signaling message requesting to establish a call session with a second endpoint device. The method also includes selecting a first media router to establish a first call leg of the call session, performing a route query and MAC address resolution to determine if the first media router is available, and if the first media router is determined to be available, creating a first redirect stream to communicate media packets received from the second endpoint device to the first endpoint device via the first call leg.

The subject matter described herein for verifying the availability of an IP media router may be implemented using a computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the computer to perform steps. Exemplary computer readable media suitable for implementing the subject matter described herein includes disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In one implementation, the computer readable medium may include a memory accessible by a processor. The memory may include instructions executable by the processor for implementing any of the methods for verifying the availability of an IP media router described herein. In addition, a computer readable medium that implements the subject matter described herein may be located on a single device or computing platform or may be distributed across multiple physical devices and/or computing platforms.

DETAILED DESCRIPTION

FIG. 1depicts a diagram of an exemplary telephony system that comprises a plurality of networks (e.g., access network100, customer network102, and local network124) that may be utilized to establish a packet-based call. AlthoughFIG. 1and the following disclosure describes the system establishing a voice over Internet protocol (VoIP) call using session initiation protocol (SIP) signaling messages and IP-based media connections, any other like signaling or media protocols may be used without departing from the scope of the present subject matter.

In one embodiment, access network100includes an endpoint device104, a service switching point (SSP)106, and a signal transfer point (STP)108. Similarly, customer network102includes a media router118, a signaling router122, a session border controller (SBC)110, and a local network124. Local network124comprises an endpoint device116, an SSP114, an STP112, a media router120, and a signaling router126. Although only two endpoint devices, two SSPs, two STPs, two media routers, two signaling routers, and one SBC are shown inFIG. 1, additional and/or similar network elements may be utilized without departing from the scope of the present subject matter.

From a hardware perspective, networks100,102, and124include a plurality of SS7 nodes, such as STPs and SSPs, which are interconnected using signaling links, also referred to as SS7 links. An SSP is normally installed in Class 4 tandem or Class 5 end office. The SSP is capable of handling both in-band signaling and SS7 signaling (e.g., call setup messages). An STP transfers signaling messages from one signaling link to another. STPs are packet switches and are generally installed as mated pairs for redundancy and backup purposes. Generally, signaling links are transmission facilities used to connect SSPs and STPs together. Conventional signaling links are dedicated bidirectional facilities operating at 56 kbps and at 64 kbps when clear channel capability is deployed. Normally, every signaling link has a mate for redundancy and enhanced network integrity.

As mentioned above, network102and124comprise media routers118and120, which may include any network element that is configured to route and forward voice or media information. Notably, media routers118and120are configured to handle media packet communications traversing networks100,102, and124. Similarly, signaling routers122and126may include any network elements, such as SIP signaling routers, which are configured to handle call signaling messages traversing networks100,102, and124. Signaling routers (e.g., SIP signaling routers) are typically located at centralized points in the network and route all call signaling messages within and between networks. Signaling routers are capable of routing call signaling messages of various telephony protocols. For example, signaling routers may include SIP functionality for routing SIP messages to and from SIP clients, H.323 functionality for routing H.323 messages to and from H.323 clients, and SS7 functionality for routing to and from SS7 clients.

In one embodiment, SBC110is configured to establish, control, and/or monitor call sessions (e.g., session control signaling) and/or media signaling between endpoints104and116(e.g., cellular phones, IP phones, etc.). Each of networks100,102, and124can be a wireless or wired network configured to transmit data or media content such as voice content and/or video content. For example, portions of the networks can be used to establish session over Internet protocol (SoIP) sessions such as voice over Internet protocol (VoIP) sessions or media over Internet protocol (MoIP) sessions. SBC110can be, for example, a multi-protocol session exchange device configured to use more than one session control protocol, such as session initiation protocol (SIP). In one embodiment, SBC110may act as a proxy or back to back user agent that sets up a dedicated call leg with each of endpoint device104and endpoint device116.

FIG. 2is a block diagram of an exemplary SBC in accordance with one embodiment of the subject matter described herein. Specifically,FIG. 2depicts SBC110comprising network interfaces (NI)202and208, a processor204, a media card206, and a routing table database214. In one embodiment, SBC110receives communications from signaling routers and media routers via NI202and NI208. For example, NI202may include, at least in part, a port that has been assigned a session-based IP address by media card206for the purposes of creating a redirect stream. Data communications received at NI202and208are typically directed to processor204and/or media card206. For example, NI202and208may be the components of SBC110that are responsible for receiving call setup signaling messages and response messages originated from endpoint devices104and116. In one embodiment, processor204may include any central processing unit, such as a microcontroller, that is configured to handle the internal processing functions of SBC110. Processor204may also be used as signaling message processor (but is not limited to that functionality), and may be used in conjunction with media card206, which may include any conventional media processing module, such as a PCI card, that is capable of establishing call legs of a call session between a calling party and called party. Notably, media card206may include any type of media processor or media processing unit configured to establish media sessions between call parties. For instance, processor204may instruct media card206to perform a route query and media access control (MAC) address resolution for a selected media router for each call leg of the call session. Media card206may also be responsible for receiving requests from SBC110(e.g., signaling plane) to establish redirect streams (explained below) within SBC110after a media router for carrying media communications is identified and verified as being available and/or active. In one embodiment, media card206may determine that a media router is available to carry media packets by conducting the aforementioned route query and MAC address resolution. In one embodiment, a media router is available if the media router is online, operational, active, or the like.

As explained in the description ofFIG. 3below, media card206performs a route MAC address resolution before the completion of the call setup message and/or before establishing a redirect stream. Consequently, the present subject matter ensures the media connection will be available before the call signaling stage is completed and thereby eliminates the problem of failed audio in established calls.

To better illustrate the communication of the components depicted inFIG. 1,FIG. 3is provided to illustrate an exemplary method300for verifying the availability of a media router according to an embodiment of the subject matter described herein. Similarly,FIG. 4, which depicts a call flow diagram depicting the signaling messages communicated in method300, will also be referenced in cooperation withFIG. 3below.

In block302, a call setup signaling message is received. In one embodiment, endpoint device104sends a call initiation signal to SSP106(as a request to communicate with endpoint device116), and in response, SSP106generates a call setup message that is received by the network interface of SBC110(via STP108and signaling router122). In one embodiment, the call setup message includes a session initiation protocol (SIP) INVITE message that contains a calling party address and a media Internet protocol (IP) address. The calling party address may include the phone number of endpoint device104in which signaling messages from SBC110may be communicated. Similarly, the media IP address may include an IP address of endpoint device104for receiving media packet communications from SBC110. More specifically, the IP address may be used by SBC110for sending media packet data originating from endpoint device116when a call between the two endpoints is eventually established (see below). The receiving of the call setup signaling message is also depicted inFIG. 4. Specifically,FIG. 4shows SBC110receiving a SIP INVITE message401containing “IPE1” (i.e., the aforementioned media IP address) of endpoint device104.

In block304, a pair of session-based IP addresses is created. In one embodiment, SBC110selects a pair of available IP addresses from a pool of available session-based IP addresses, to serve as virtual ports. More specifically, the two session-based IP addresses (e.g., N-IPE1and N-IPE2as shown inFIG. 4) will serve as ports of SBC110for redirect streams that are established to carry media packet data between endpoint device104and endpoint device116via SBC110.

In block306, a hop IP router for routing media communications is selected. In one embodiment, SBC110selects an appropriate media router to be used to ultimately establish a first call leg between endpoint104and SBC110. In one embodiment, SBC110may comprise a routing table database214that includes a list of routers (and associated IP addresses) that may be selected to establish a media connection leg with endpoint device104. For instance, media card206may select one of the media routers from routing table database214to communicate media packets in the first call leg. In one embodiment, routing table database214may include a separate media routing table(s), or a collection of media routing tables and signaling routing tables.

In block308, a first route query/MAC address resolution is conducted for the first call leg. After receiving the call setup message, media card206initiates a procedure (prior to completion of the call setup signaling process) to determine if the routing device (e.g., a media router) selected in block306is available to communicate media and/or voice data between SBC110and the calling party endpoint104. Notably, this process is conducted prior to the termination of call signaling session between endpoints104and116. In one embodiment, media card206utilizes address resolution protocol (ARP) to determine the availability of selected media router118to facilitate the eventual communication of media packets in the first call leg established between endpoint device104and SBC110. For example, SBC110may use ARP to find the MAC address of media router118if the IP address of the router118is known. In one embodiment, media card206obtains the selected media router's IP address from database214and utilizes ARP to perform a route lookup/MAC address resolution procedure for an IP packet characterized by a destination IP address of IPE1(which is obtained from the INVITE message) and a source IP address of N-IPE1(which is the temporary, session-based IP address, as described in block304).

In block310, a determination is made as to whether the first query/resolution performed in block308was successful. In one embodiment, media card206is able to determine that the selected media router118is available if media card206receives an ARP response message. Specifically, a router device that receives an ARP request from SBC110will respond with a response message if the IP address in the ARP request belongs to the receiving router device. If the router device with the selected IP address is not available or is not on the network (e.g., router device is unplugged, powered off, has failed/crashed, etc.), then the query resolution will fail and/or time-out (e.g., due to the ARP request expiring at SBC110) and method300will proceed to block326. Alternatively, if the route query/MAC address resolution procedure indicates that the router is available and/or active, then the query/resolution is successful and method300continues to block312.

In block312, a first redirect stream (R1) is created. In one embodiment, in response to a successful query/resolution pertaining to media router118, the control plane on SBC110sends a message instructing the SBC's user plane to initiate a redirect procedure. In one embodiment, a redirect stream comprises a directional media stream setup based on IP:port associations (e.g., IP address to SBC port association). For example, redirect stream R1(e.g., see arrow403inFIG. 4) may include an association between a network address translation (NAT) destination (e.g., N-IPE2:port) to a NAT source (e.g., N-IPE1:port) to the destination (e.g., IPE1:port). Notably, the NAT destination and source are on SBC110and are handled internally by performing network address translation. That is, the NAT destination and source can logically be viewed as forwarding media packets through SBC110. Once the media traversing the NAT destination and source is translated, the media is then forwarded over the link to endpoint104via IP media address IPE1.

In one embodiment, SBC110uses N-IPE2to receive media packets directed to endpoint device104from endpoint device116. As mentioned above, this NAT source address includes a session-based IP address obtained from a “pool” of network address translation (NAT) IP addresses utilized by SBC110. N-IPE1will serve as an exit point and N-IPE2will serve as an entry point of this first established redirect stream403, which is transparent to the call parties. More specifically, in anticipation of establishing a call connection, SBC110creates redirect stream403to facilitate the transfer of media packets from endpoint device116to endpoint device104in a manner that makes it appear that the media packet is originating from SBC110itself. For instance, any media packet leaving the redirect stream towards endpoint device104will indicate N-IPE1as a source address (i.e., not N-IPE2or IPE2) and IPE1as a destination address.

In block314, an INVITE message is sent to a called endpoint. In one embodiment, after the first redirect stream (i.e., redirect stream R1403) is established, SBC110attempts to establish a second leg of the call by initiating a SIP INVITE message containing the second session-based IP pinhole address (e.g., the aforementioned “N-IPE2”). Namely, the second INVITE message is sent to endpoint device116using the called party address obtained from the original INVITE message. For example,FIG. 4shows SBC110sending a SIP INVITE message402containing “N-IPE2” to endpoint device116.

In block316, an acknowledgement message that includes the called endpoint media address is received. In one embodiment, upon receiving the INVITE message, endpoint device116generates a 200 OK message containing an IP address that serves as an acknowledgement that the INVITE message was received and indicates where SBC110may transmit or forward media packet communication intended for endpoint device116. For example,FIG. 4depicts endpoint device116transmitting a 200 OK message404that contains IPE2to SBC110. This message is then forwarded to endpoint device104as message405from SBC110. However, message405contains the N-IPE1address of SBC110instead of the media address of endpoint device116.

In block317, a hop IP router for routing media communications is selected. In one embodiment, SBC110selects an appropriate media router to be used to ultimately establish the second call leg between endpoint116and SBC110. In one embodiment, media card206may select one of the media routers from routing table database214to communicate media packets in the second call leg.

In block318, a second route query/MAC address resolution is conducted for a second call leg. After receiving the 200 OK message, SBC110may determine whether media packets can be sent to IPE2via selected media router120. In one embodiment, media card206utilizes ARP to determine the availability of selected media router120to facilitate the eventual communication of media packets in the second call leg established between endpoint device116and SBC110. Media card206may obtain the selected media router's (i.e., router120) IP address from database214and may utilize ARP to perform a route lookup/MAC address resolution procedure for an IP packet characterized by a destination IP address of IPE2(which is obtained from the 200 OK message) and a source IP address of N-IPE2.

In block320, a determination is made as to whether the second query/resolution (see block318) was successful. In one embodiment, media card206is able to determine that the selected router device is available if media card206receives an ARP response message from the selected router device. If the router device with the selected IP address is not available or is not on the network (e.g., router device is unplugged, powered off, has failed/crashed, etc.), then the query resolution will fail or time-out, and method300proceeds to block326. Alternatively, if the query/resolution is successful, then method300continues to block322.

In block322, a second redirect stream (R2) is created. For example, if router120is available for routing media (i.e., the ARP lookup is successful), then a second redirect procedure is initiated. In one embodiment, SBC110establishes another session-based stream (e.g., see arrow406inFIG. 4) wherein any media packets sent from endpoint device104(that are directed to endpoint device116) are received at IP pinhole N-IPE1and are permitted to be sent to endpoint device116via N-IPE2. Notably, media packets originating from endpoint device104and leaving SBC110will indicate IPE2as a destination address and N-IPE2as a source address.

In block324, a call session is established via the redirect streams. In one embodiment, SBC110creates a media path using redirect streams R1and R2. Although the media path is created after the signaling process is completed, SBC110has previously determined that media routers118and120are available to accommodate media packet traffic between endpoints104and116.

Returning to block310(or block320), if a determination is made that the query/resolution is unsuccessful, then method300proceeds to block326. In block326, the call is rejected an error message is returned. In the event a query/resolution process is unsuccessful (see blocks308and320), method300proceeds to block328where SBC110terminates the call processing of the call and an error message is returned to access network100. In one embodiment, the error message is directed to the network administrator of network100. The network administrator may then take alternative measures to establish the desired call session.