# Patent

## Title
Methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway

## Abstract

The subject matter described herein includes methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway. In one method, it is determined in a media gateway whether predetermined conditions exist for DSP-less IP-IP switching for a call. In response to determining that the predetermined conditions exist, DSP-less IP-IP switching is implemented for the call in the media gateway. After implementing the DSP-less IP-IP switching for the call, it is determined whether a predetermined event occurs that requires insertion of DSP resources during the call. In response to determining that the predetermined event occurs, the DSP resources are inserted into the call during the call.

## Background
TECHNICAL FIELD
The subject matter described herein relates to controlling DSP resource utilization in a media gateway. More particularly, the subject matter described herein relates to methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway.
BACKGROUND
Media gateways switch packets for IP to IP (IP-IP) and IP to TDM calls. One of the most expensive resources in a media gateway is digital signal processors (DSPs). DSPs are needed for calls that require special processing, such as transcoding or feature activation. In a media gateway architecture where DSP resources are shared among all calls, it is desirable to intelligently allocate DSP resources to increase the switching capacity of a media gateway. Accordingly, there exists a need for methods, systems, and computer readable media for intelligent optimization of DSP resource utilization in a media gateway.
SUMMARY
The subject matter described herein includes methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway. In one method, it is determined in a media gateway whether predetermined conditions exist for DSP-less IP-IP switching for a call. In response to determining that the predetermined conditions exist, DSP-less IP-IP switching is implemented for the call in the media gateway. After implementing the DSP-less IP-IP switching for the call, it is determined whether a predetermined event occurs that requires insertion of DSP resources during the call. In response to determining that the predetermined event occurs, the DSP resources are inserted into the call during the call. The subject matter described herein for intelligent optimization of DSP resource utilization in a media gateway can be implemented using 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 include chip memory devices, disk memory devices, programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein can be located on a single device or computing platform or may be distributed across multiple devices or computing platforms.



BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the subject matter described herein will now be described with reference to the accompanying drawings of which:
FIG. 1 is a block diagram illustrating exemplary switching of media packets of a media gateway utilizing DSP resources;
FIG. 2A is a block diagram illustrating a media gateway and a media gateway controller where DSP-less IP-IP switching is implemented from one network interface, through a packet switching matrix, to another network interface according to an embodiment of the subject matter described herein;
FIG. 2B is a block diagram illustrating a media gateway and a media gateway controller where DSP-less IP-IP switching is implemented exclusively on a network interface according to an embodiment of the subject matter described herein;
FIG. 2C is a block diagram illustrating a media gateway and a media gateway controller where DSP resources are inserted in the call after initially establishing the call using DSP-less IP-IP switching according to an embodiment of the subject matter described herein; and
FIG. 3 is a flow chart illustrating exemplary steps for establishing DSP-less IP-IP switching for a call and for inserting DSP resources into a call according to an embodiment of the subject matter described herein.



DETAILED DESCRIPTION
The subject matter described herein includes methods, systems, and computer readable media for intelligent optimization of DSP resources in a media gateway. FIG. 1 is a block diagram illustrating call establishment in a media gateway using DSP resources. Referring to FIG. 1, a media gateway 100 includes a network interface 102, a packet switching matrix 104, a voice server 106, and a TDM matrix 108. Voice server 106 may include one or more DSPs 110. When a call is established in a media gateway where the call requires DSP resources, media packets associated with an inbound call leg are forwarded from network interface 102, through packet switching matrix 104, to DSP 110. DSP 110 may convert the incoming codec to Pulse Coded Modulation (PCM) for the media packet through TDM matrix 108, receive the PCM stream from TDM matrix 108, convert the codec from PCM to the codec for the outgoing call leg. DSP 110 may then forward the outbound media packet to the outbound call leg via packet switching matrix 104 and network interface 102.
Without DSP-less IP-IP switching, the scenario illustrated in FIG. 1 would occur even if the incoming and outgoing codecs were the same and other conditions existed that would allow DSP-less IP-IP switching. Accordingly, as illustrated in FIG. 2A, the subject matter described herein includes establishing DSP-less IP-IP switching for calls that do not require utilization of DSP resources. In FIG. 2A, media gateway 200 includes one or more network interfaces 102, packet switching matrix 104, voice servers 106 with DSPs 110, TDM matrix 108, and TDM NICs 112. In addition, media gateway 200 includes a media gateway controller (MGC) interface 202 for communicating with media gateway controller 204 and a resource manager 208 for inserting and removing DSP resources from a call. In the architecture illustrated in 2A, it is assumed that DSP resources 110 are a shared pool of resources that can be shared among calls whose media packets are switched through the media gateway.
Resource manager 208 may determine based on signaling from media gateway controller 204 via MGC interface 202 whether DSP-less IP-IP switching conditions exist for a call. Exemplary conditions will be described in detail below. In the illustrated example, it is assumed that the conditions for DSP-less IP-IP switching exist. According, resource manager 208 may effect DSP-less IP-IP switching for the call, where effecting DSP-less IP-IP switching for the call includes provisioning the network interface 102 associated with the inbound call leg to switch the media packets for the call to the network interface 102 associated with the outbound call leg through packet switching matrix 104 without involving a DSP 110. This may be accomplished by having the inbound network interface perform header manipulation of the packets and adjust the Ethernet frame in which the packet is carried via packet switching matrix 104 so that the packet will be forwarded from packet switching matrix 104 to the network interface 102 associated with the outbound call leg, rather than one of voice servers 106 for DSP processing. In addition, the inbound network interface or the outbound network interface may perform header manipulation for the call. Header manipulation may include mapping the incoming IP address and port to the appropriate outgoing IP address and port and to update the IP and UDP headers for the outgoing RTP and RTCP packets. The network interface may also re-compute the IP header checksum and the UDP header checksum. These fields may be updated in the outgoing RTCP or RTP packets. In one implementation, the UDP header checksum may be set to zero to save network processor cycles on the network interface cards.
FIG. 2B illustrates another example of DSP-less IP-IP switching. In FIG. 2B, it is assumed again that resource manager 208 has determined that the conditions for DSP-less IP-IP switching exist for the call. Accordingly, resource manager 208 provisions network interface 102 to switch media packets associated with the call without involving DSP resources. In the illustrated example, the switching is completely handled by a single network interface. That is, when a media packet arrives on the inbound call leg, network interface 102 performs the header manipulation to the outbound call leg and forwards the packet to the outbound call leg without involving packet switching matrix 104, a voice server 106, or any of DSPs 110.
According to another aspect of the subject matter described herein, DSP resources may be re-inserted into a call if an event occurs that requires DSP resources. For example, when a feature is activated for a call or when the codec associated with the call changes, it may be necessary to insert DSP resources in the call. FIG. 2C illustrates this scenario. In FIG. 2C, it is assumed that the call was initially established using DSP-less IP-IP switching as illustrated in FIG. 2A or 2B. However, when MGC interface 202 receives a command 204 that requires feature activation, resource manager 208 may determine whether the activated feature requires DSP insertion. If resource manager 208 determines that the feature requires DSP insertion, resource manager 208 may allocate a DSP 110 for the call and provision network interface 102 to insert DSP resources in the call. This would involve updating the session table on network interface 102 to indicate that media packets for the incoming call leg should be forwarded to one of voice servers 106. As will be described in more detail below, if the conditions for DSP-less IP-IP switching are satisfied after a DSP resource has been inserted into the call, the call may be re-optimized by removing the DSP resources from the call and freeing those resources for allocation to other calls.
FIG. 3 is a flow chart illustrating exemplary steps for intelligent optimization of DSP resource utilization in a media gateway according to an embodiment of the subject matter described herein. Referring to FIG. 3, in steps 300 and 302, it is determined whether predetermined conditions exist for DSP-less IP-IP insertion. This determination may be made by resource manager 208 as described above. Exemplary conditions that may indicate that DSP-less IP-IP switching is possible may include the following:

    
    
        the call is two-party call with only two terminations;
        both legs of the call are bi-directional;
        both legs of the call use IP transport;
        both legs of the call use the same codec and packetization rates;
        both legs of the call have identical configurations for silence suppression; and
        if RFC 2833 is supported, both legs of the call have identical RFC 2833 configurations.
    
    


If all of the above conditions are met, resource manager 208 may determine that the conditions exist for DSP-less IP-IP insertion. RFC 2833 describes methods for carrying DTMF digits, telephony tones, and other signals in RTP payloads. If both sides support this feature, they must have the same configurations for this feature for DSP-less IP-IP switching.
Another determination that is made in steps 300 and 302 is whether or not the maximum number of optimizations has been exceeded for a call. For example, it may be desirable to limit the number of times a call can be optimized, i.e., the number of times that DSP resources can be removed from a call after initial or mid-call DSP insertion. Whether the maximum number of optimizations has been exceeded can be determined by resource manager 208 examining a configurable parameter and the number of the times a call has been optimized. If the number of times would exceed the configurable parameter, it may be desirable not to allow DSP-less IP-IP insertion for the call.
If it is determined that the conditions exist and the maximum number of optimizations has not been exceeded, in step 304, DSP-less IP-IP switching is implemented for the call. DSP-less IP-IP switching may be implemented exclusively by the network interface, as illustrated in FIG. 2B, or by the network interface and packet switching matrix 104, as illustrated in FIG. 2A. Whether the packet switching matrix is involved can depend on whether the network interface for the inbound call leg is the same as that for the outbound call leg. Once DSP-less IP-IP switching is established, when a media packet for the inbound call leg arrives at a network interface, the packet may be switched to the outbound network interface or to the same network interface without being forwarded through a DSP. This switching may be effected by appropriately populating the session table on the inbound network interface so that the packet can be switched to the outbound network interface without being forwarded to a voice server 106.
After DSP-less IP-IP switching is established for a call, the call must be monitored to determine whether an event occurs that requires DSP insertion (steps 306 and 308). Exemplary events that require DSP insertion during the call may include:

    
    
        feature activation (call hold/retrieve, call transfer, etc.);
        conferencing activated;
        tone detection/reporting enabled;
        change to the bi-directional mode of a call leg; or
        a codec change.
    
    


If any of the above listed conditions occur, mid-call insertion of DSP resources is required. Mid-call insertion may include resource manager 208 populating the session table on the network interface associated with the inbound call leg before the call through a DSP 206 (step 310).
Once DSP resources are inserted into a call, control returns to step 300 where it is determined whether DSP-less IP-IP switching conditions exist, and the process described above is repeated. Thus, the subject matter described herein allows a DSP initially used in a call to be removed, re-inserted, and re-removed if the conditions for DSP-less IP-IP switching change multiple times during a call. In one example, the call is initially established in IP-IP switching mode because the above enumerated conditions for DSP-less IP-IP switching are met. The call is then changed such that the DSP is inserted in the path (i.e., to play a tone or announcement). In this case, once the tone or announcement is played and the condition that required the DSP is no longer true, resource manager 208 may reestablish DSP-less IP-IP switching.
There are a predetermined number of conditions for which resource manager 208 may determine that DSP-less IP-IP switching is not possible for the call. Examples of such conditions are as follows:
any type of media adaptation is required, such as:

    
    
        transcoding;
        packet rate adjustments;
        transport layer interworking (i.e., both call legs are not IP) call is tapped for CALEA;
        tone detection/reporting is required;
        RFC 2833 interworking is required (one leg has RFC 2833 on while the other leg is off); and
        tandem-free operation (TFO) is active.
    
    


If any of the above conditions is initially true or becomes true during a call, resource manager 208 may determine that DSP-less IP-IP switching is not or is no longer possible.
As described above, it is desirable that resource manager 208 limit the number of optimizations for a call. This is because frequent optimization (DSP removal) and break (DSP insertion) operations may have a negative effect on the performance of the Media Gateway (in maximum calls per second) and on both the RTP and RTCP streams for the call. Frequent changing of the timestamp and sequence numbers in the RTP stream can result in high rate of packet loss until the receivers re-sync to the new timestamp and sequence numbers. Similarly, RTCP packets may not be sent at the appropriate time, resulting in call failure. In order to minimize the media gateway performance and call quality impacts due to frequent optimization and break operations, as stated above, media gateway 200 may support a configurable parameter that specifies the maximum number of breaks a call may undergo (if not specified, there may be no limit). If the maximum number of breaks is specified and reached for a call, the media gateway will not re-optimize the call even if all of the optimization preconditions are met. The call may remain unoptimized for the life of the call once the maximum number of optimizations is met.
It will be understood that various details of the presently disclosed subject matter may be changed without departing from the scope of the presently disclosed subject matter. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation.

## Claims

1. A method for intelligent optimization of digital signal processor (DSP) resource utilization, the method comprising:
in a media gateway:
determining whether predetermined conditions exist for DSP-less Internet protocol to Internet protocol (IP-IP) switching for a call, and in response to determining that the predetermined conditions exist, implementing the DSP-less IP-IP switching for the call in the media gateway, wherein implementing DSP-less IP-IP switching includes receiving a media packet for the call at a packet network interface of the media gateway, identifying the media packet as being for a call for which DSP-less IP-IP switching is indicated, and in response to determining that the media packet as being a media packet for which DSP-less IP-IP switching is indicated, switching the media packet through the media gateway to an outbound call leg associated with the call without using a DSP resource of the media gateway;
after implementing the DSP-less IP-IP switching for the call, determining whether a predetermined event occurs that requires insertion of DSP resources during the call, and, in response to determining that the predetermined event occurs, inserting, during the call, the DSP resources into the call, wherein the DSP resources are associated with the media gateway already in the call path.

2. The method of claim 1 wherein determining whether the predetermined conditions exist includes determining whether the following conditions are met:
the call is a two-party call with only two terminations;
both legs of the call are bi-directional;
both legs of the call use IP transport;
both legs of the call use the same codec and packetization rates;
both legs of the call have identical configurations for silence suppression; and
if IETF Request for Comments (RFC) 2833 is supported, both legs of the call have identical RFC 2833 configurations.

3. The method of claim 1 wherein determining whether the predetermined conditions exist includes analyzing parameters associated with the call included in signaling messages received from a media gateway controller.

4. The method of claim 1 wherein determining whether the predetermined event occurs includes determining whether one of:
a feature is activated for the call;
conferencing is activated for the call;
tone detection or reporting is enabled for the call;
a change to a bi-directional mode of the call occurs; or
a codec change occurs for the call.

5. The method of claim 4 wherein determining whether the predetermined event occurs includes receiving signaling from a media gateway controller regarding the event.

6. The method of claim 1 wherein switching the media packet through the media gateway includes switching the media packet from the packet network interface, through a packet switching matrix, and back to the network interface or another network interface without utilizing the DSP resources for the call.

7. The method of claim 6 wherein switching the media packet through the packet switching matrix includes manipulating at least one header in the media packet before forwarding the media packet to the outbound call leg.

8. The method of claim 1 wherein switching the media packet through the media gateway includes switching the media packet at the network interface to the outbound call leg without utilizing the DSP resources for the call.

9. The method of claim 8 wherein switching the media packet at the network interface includes manipulating at least one header in the media packet before forwarding the media packet to the outbound call leg.

10. The method of claim 1 comprising, in response to determining that the predetermined conditions are not met, continuously evaluating whether the conditions are met and, in response to the conditions being met, establishing the DSP-less IP-IP switching.

11. The method claim 10 comprising limiting a number of times that DSP-less IP-IP switching can be implemented for the call.

12. The method of claim 1 wherein inserting the DSP resources in the call comprises:
receiving a media packet for the call at a network interface of the media gateway;
identifying the media packet as being associated with a call that requires DSP resources;
forwarding the media packet to a voice server module; and
at the voice server module, using a DSP to process the media packet.

13. The system of claim 1 wherein switching the media packet through the media gateway includes switching the media packet from the packet network interface, through a packet switching matrix, and back to the network interface or another network interface without utilizing the DSP resources for the call.

14. The system of claim 13 wherein switching the media packet through the packet switching matrix includes manipulating at least one header in the media packet before forwarding the media packet to the outbound call leg.

15. The system of claim 1 wherein switching the media packet through the media gateway includes switching the media packet at the network interface to the outbound call leg without utilizing the DSP resources for the call.

16. The system of claim 15 wherein switching the media packet at the network interface includes manipulating at least one header in the media packet before forwarding the media packet to the outbound call leg.

17. A system for intelligent optimization of digital signal processor (DSP) resource utilization, the system comprising:
a media gateway;
a resource manager located in the media gateway configured to determine whether predetermined conditions exist for DSP-less Internet protocol to Internet protocol (IP-IP) switching for a call, and in response to determining that the predetermined conditions exist, implement the DSP-less IP-IP switching for the call in the media gateway, wherein implementing DSP-less IP-IP switching includes receiving a media packet for the call at a packet network interface of the media gateway, identifying the media packet as being for a call for which DSP-less IP-IP switching is indicated, and in response to determining that the media packet as being a media packet for which DSP-less IP-IP switching is indicated, switching the media packet through the media gateway to an outbound call leg associated with the call without using a DSP resource of the media gateway; and
wherein, after implementing the DSP-less IP-IP switching for the call, the resource manager is configured to determine whether a predetermined event occurs that requires insertion of DSP resources during the call, and in response to determining that the predetermined event occurs, insert, during the call, the DSP resources into the call, wherein the DSP resources are associated with the media gateway already in the call path.

18. The system of claim 17 wherein determining whether the predetermined conditions exist includes determining whether the following conditions are met:
the call is a two-party call with only two terminations;
both legs of the call are bi-directional;
both legs of the call use IP transport;
both legs of the call use the same codec and packetization rates;
both legs of the call have identical configurations for silence suppression; and
if IETF Request for Comments (RFC) 2833 is supported, both legs of the call have identical RFC 2833 configurations.

19. The system of claim 17 wherein determining whether the predetermined conditions exist includes analyzing parameters associated with the call included in signaling messages received from a media gateway controller.

20. The system of claim 17 wherein determining whether the predetermined event occurs includes determining whether one of:
a feature is activated for the call;
conferencing is activated for the call;
tone detection or reporting is enabled for the call;
a change to a bi-directional mode of the call occurs; or a codec change occurs for the call.

21. The system of claim 20 wherein determining whether the predetermined event occurs includes receiving signaling from a media gateway controller regarding the event.

22. The system of claim 17 comprising, in response to determining that the predetermined conditions are not met, continuously evaluating whether the conditions are met and, in response to the conditions being met, establishing the DSP-less IP-IP switching.

23. The system claim 22 comprising limiting a number of times that DSP-less IP-IP switching can be implemented for the call.

24. The system of claim 17 wherein inserting the DSP resources in the call comprises:
receiving a media packet for the call at a network interface of the media gateway;
identifying the media packet as being associated with a call that requires DSP resources; and
forwarding the media packet to a voice server module;
at the voice server module, using a DSP to process the media packet.

25. A non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the computer to perform steps comprising:
in a media gateway:
determining whether predetermined conditions exist for DSP-less Internet protocol to Internet protocol (IP-IP) switching for a call, and, in response to determining that the predetermined conditions exist, implementing the DSP-less IP-IP switching for the call in the media gateway, wherein implementing DSP-less IP-IP switching includes receiving a media packet for the call at a packet network interface of the media gateway, identifying the media packet as being for a call for which DSP-less IP-IP switching is indicated, and in response to determining that the media packet as being a media packet for which DSP-less IP-IP switching is indicated, switching the media packet through the media gateway to an outbound call leg associated with the call without using a DSP resource of the media gateway;
after implementing the DSP-less IP-IP switching for the call, determining whether a predetermined event occurs that requires insertion of DSP resources during the call, and in response to determining that the predetermined event occurs, inserting, during the call, the DSP resources into the call, wherein the DSP resources are associated with the media gateway already in the call path.