# Patent

## Title
Conditional execution of commands

## Abstract

Method for controlling terminations of a media gateway, wherein a command from a media gateway controller is received containing a condition under which the command is executed. After having identified the terminations addressed by the command, it is verified whether the condition is met, and if the condition is met, the command is executed.

## Background
TECHNICAL FIELD
This invention relates to a method for controlling a media gateway, to a method for transmitting a command from a media gateway controller to a media gateway, and to the media gateway.
Background
The industry trend goes towards high capacity mobile switching center (MSC) servers which are also scalable. A typical architecture for such a system is a blade cluster structure with a plurality of blades. Transmission lines that carry payload are terminated in media gateways and the switching of these resources is controlled by the MSC server. Furthermore, a pool of terminations is provided at the media gateway, the pool of terminations being controlled by the different blades of the MSC. In case one blade of the MSC server fails, the terminations controlled by said blade have to be released in order to make them available for other calls. In this context, the terminations controlled by a failed blade need to be released in an efficient way. One possibility to release the terminations controlled by the failed blade would be to subtract the different terminations one by one by sending a subtract command to each termination. However, this represents an unacceptable amount of signalling and recovery time.
H.248 is for a control of elements in a multimedia gateway and is used as a control protocol between the media gateway and the media gateway controller. In this protocol a wildcard mechanism is known using two types of wildcards with termination IDs. These two wildcards are “ALL” and “CHOSE”. The former “ALL” is used to address multiple terminations at once while the latter is used to indicate to the media gateway that it should select a termination satisfying a partially specified termination ID.
A termination for a media gateway is a logical entity which is the source and/or the sink of media and/or control streams. Each termination has a unique entity, the termination ID.
A context is an association between a number of terminations, the context describing the topology (who hears/sees whom) and the media mixing and/or switching parameters if more than two terminations are involved in the association. A context is created by adding the first termination and it is released by removing/ subtracting the last termination.
Either the context ID or the termination ID or both may be wildcarded. The wildcarding of context or terminations represents a rudimentary tool for conditional execution: the receiver of the commands scans all existing contexts and/or terminations. Only if the context ID matches the received context ID wildcard, or if the termination ID matches the received termination ID wildcard, the commands can be executed.
However, this wildcarding mechanism is not powerful enough to efficiently address some of the terminations in the pool of terminations with a limited number of messages to be exchanged.
SUMMARY
Accordingly, a need exists to provide an efficient way for addressing terminations with a minimum number of messages or commands to be exchanged.
This need is met by the features of the independent claims. In the dependent claims preferred embodiments of the invention are described.
According to a first aspect of the invention a method for controlling a media gateway is provided, in which the media gateway receives a command from the media gateway controller, the command containing a condition under which the command is to be executed. In an additional step it is verified whether the condition contained in the command is met or not. In the affirmative, i.e. when the condition is met, the command is executed. Accordingly, the command will only be executed if the condition is met, and if the condition is not met, then the command will not be executed in the media gateway to which the command is transmitted. If the condition is not met, no action will be taken except that a reply message may be sent to the transmitter of the command, the reply message eventually containing an error message, such as “condition not met” or “condition not fulfilled”.
Preferably, the command is a command for controlling terminations of a media gateway, the command addressing at least one termination of the media gateway. Before it is determined whether the command is executed for said at least one termination, the termination to which the command is addressed is identified and the command is executed for said at least one termination when the condition is met. Thus, after having identified the terminations addressed by the command, it is verified whether the condition is met, and if the condition is met, the command is executed for the identified terminations.
Preferably, the condition contains a property parameter and a property value, wherein for determining whether the condition is met by a predetermined termination it is determined whether said property parameter is set to a given property value for said termination. The property parameter and the given property value may be set during the seizure of a termination. However, it is also possible that the property parameter and the given property value will be provided to the termination at a later stage, e.g. with a modify or move command. Preferably, the property parameter and the property value will be set until the termination is released.
In order to efficiently address a plurality of terminations by one command, the command is addressed to a plurality of terminations. The condition is then used to determine to which termination or terminations among the plurality of terminations the command is addressed. Thus, the provision of the condition in the command provides the possibility to address a command to a plurality of terminations, the condition specifying to which of the terminations the command is addressed.
According to another embodiment of the invention the condition may contain a first condition and a second condition combined by a compound condition rule, such as “AND”, “OR” or “NOT”. Depending on the compound condition rule used the command is then executed when the first and the second condition is met. By way of example if the two conditions are combined by the compound condition rule “AND”, both conditions have to be met. If the two conditions are connected by the compound condition rule “OR”, either the first or the second condition has to be met for the execution of the command.
The media gateway controller may further comprise a plurality of processors, e.g. in a multi-blade architecture, and the property parameter in the command contains a group indicator identifying the processor to which the command relates to. By way of example the command may be a command to subtract the terminations controlled by a predetermined processor of the media gateway controller, e.g. in case the processor fails. In this situation the terminations controlled by said predetermined processor can be identified by the group indicator contained in the condition. With this method the processor affected by a failure, e.g. due to a re-start, can effectively remove all terminations which were controlled by the failed processor with a single command.
The command can be a H.248 command as the H.248 protocol or media gateway control protocol is used for exchanging commands between the media gateway and the media gateway controller.
However, the command containing the condition is not restricted to the subtract command. The command containing the condition could be any command used in the H.248 control protocol. Another example for the command can be the modify command, the command being a command to modify all terminations in the media gateway meeting a predetermined requirement. In this embodiment the condition contains the predetermined requirement. By way of example the predetermined requirement may be all terminations belonging to a predetermined IP domain. Another example of a command containing a condition may be a notify command as will be explained in further detail below.
The invention furthermore relates to a media gateway receiving the command, the media gateway comprising a receiving unit receiving the command from the media gateway controller, the command containing the condition under which the command is to be executed. Furthermore, a verification unit is provided verifying whether the condition contained in the command is met. A controller of the media gateway provided in a media gateway may then execute the command when the condition contained in the command is met.
Preferably, the media gateway comprises an identification unit to identify said at least one termination addressed by the command as the command is addressing at least one termination of the terminations provided in the media gateway.
According to another aspect a method is provided transmitting the command from the media gateway controller to the media gateway. Before the command can be transmitted to the media gateway, the condition under which the command is to be executed at the media gateway is determined and the command message is generated including said condition.
Additionally, the command is transmitted from the media gateway controller to the media gateway. The receiving media gateway receiving the command processes the command as discussed above. In one embodiment of the invention the condition may contain the group indicator identifying the processor to which the command is related to in case the media gateway controller is a multi-processor controller. When a failure of one of the processors is detected in the media gateway controller, a subtract command can be transmitted to the media gateway, the subtract command containing the identity of the failed processor as condition.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be discussed in further detail with reference to the accompanying drawings, in which
FIG. 1 shows a schematic view of a media gateway controller having a multi-blade architecture, the media gateway controller controlling a media gateway containing a pool of terminations,
FIG. 2 shows a flowchart showing the steps carried out at the media gateway using a command containing a condition, and
FIG. 3 shows a flowchart indicating the steps needed to subtract terminations controlled by a failed blade.



DETAILED DESCRIPTION
In FIG. 1 a media gateway controller 10 having a multi-blade architecture with a plurality of blades 11 is shown. Each blade 11 has its own processor (not shown) and each processor controls terminations 25 of the media gateway 20. The terminations 25 are provided as a pool of terminations and each of the blades can control any of the terminations 25. In the case of a failure of one blade the terminations controlled by said blade have to be released in order to allow other blades to use these terminations for signalling. In the embodiment shown the media gateway controller 10 is connected to one media gateway. However, it should be understood that the media gateway controller 10 may be connected to several media gateways, but for ease of reading and without limiting the invention in the following description only a single media gateway 20 will be referenced. The media gateway controller sets up and releases end-to-end connections, handles mobility and handover requirements during a call and takes care of charging and accounting. One termination 25 of the media gateway 20 is controlled by a single blade 11 within the media gateway controller. For controlling the terminations 25 messages are transmitted from the different blades to the termination to which the message is related to. By way of example the message may be a message to add a termination, to subtract a termination, or to modify a termination. The media gateway 20 comprises a receiving unit 21 receiving the message containing the command from the media gateway controller. The message contains a condition and the command will only be executed if the condition is met. By way of example the command can be enhanced by a condition descriptor to be included in the command. The condition contains a property parameter, such as a blade number, the property parameter indicating a property value, such as the number of the blade from which the command is transmitted or to which the command is related to. The media gateway furthermore comprises an identification unit 22 identifying said at least one termination addressed by the command. The commands are often used with the wildcarding mechanism allowing to address a plurality of terminations or contexts at a time. The condition can now specify in detail to which terminations the command is addressed. A verification unit 23 then detects the condition within the command and verifies whether the condition contained in the command is met. When the command is addressed to a plurality of terminations, the condition is used to determine to which of the terminations the command is addressed. The identification of the terminations addressed can be achieved with the property parameter and the property value. When a termination is seized, the property parameter with the property value can be set during the seizure. However, it is also possible that the property value is set at a later stage with a modify or move command. By way of example during the seizure of a termination the property parameter may be used to identify the blade which is controlling the seized termination. The property value indicates the blade number. When a subtract command is now sent to the media gateway containing as condition the blade number of a blade, it is possible to effectively release all terminations controlled by one blade. A controller 24 provided in the media gateway executes the command when the condition is met. In the above-mentioned example of the subtract command the controller 24 will release all terminations controlled by the blade, the number of which is contained in the condition. The property parameter will be set by the media gateway controller and remains until the termination is released.
In FIG. 2 the main steps for carrying out the invention are shown. The method starts in step 200. In step 201 a termination may be added to a context for a call where two or more terminations are connected together. During the seizure of the termination the property parameter with the property value is set. If the media gateway control protocol H.248 is used for exchanging messages between the media gateway and the media gateway controller, a new H.248 proprietary package may be needed with a property to indicate the blade. This new proprietary package allows to provide additional functions, such as the indication of the blade. In step 202 a command from the media gateway controller is received by the media gateway and in step 203 the terminations addressed by the command are identified. In step 204 it is asked whether the condition contained in the command is met for the identified terminations. If the condition is met for none of the terminations, the command is not executed and an error message may be transmitted back to the transmitter of the message. If, however, the condition is met in step 204, the command is executed in step 205.
In connection with FIG. 3 an embodiment is shown in which terminations controlled by a failed blade can be released effectively. In step 301 the termination is seized with the blade indicator indicating the blade number that is controlling in the seized termination. Now it may happen that a blade failure occurs, by way of example due to a re-start of the blade. If in step 302 a blade failure is detected, the terminations controlled by the failed blade have to be released in order to provide the possibility that these terminations are used for other calls controlled by other blades. In step 303 a subtract command is transmitted to the media gateway containing the blade ID of the failed blade as condition. The command may have the following form:

Context=ALL{SUBTRACT{Termination=ALL,Condition{Blade=blade 1}}}

In step 304 the terminations to which the command is addressed is identified. In the present example it is detected that the command basically addresses all terminations of the media gateway as the wildcard mechanism “ALL” is used. This step corresponds to step 203 mentioned in FIG. 2. With the blade ID contained in the condition it is possible to more specifically identify the terminations which should be released after the blade failure. As the property of the blade number is already set during the seizure of the termination or at a later stage, it is possible to identify the terminations that were controlled by the failed blade. In step 305 the blade indicator contained in the condition is identified (in the above example it is blade 1). In the next step 306 the terminations affected by the blade failure are determined that were controlled by said blade by checking the blade indicator set for each termination. The terminations having the blade indicator contained in the condition are then subtracted in step 307.
Although the invention is particularly useful in connection with a subtract command, the condition can be used in connection with other commands. One example is the modify command. After a re-start of the media gateway controller the removal of all ATM/IP terminations is ordered, but before that a signal is sent to release the bearer (BNC) release. However, the signal is only applicable to ATM bearers, it is not necessary for IP bearers. The termination ID does not indicate whether it is an IP or an ATM termination. With the following command

Context=ALL {Modify{Termination=ALL,Condition{BCP/BNCChar=AAL2},SignalDescriptor{Signal=BNC Release}}}

it is possible to determine whether it is an IP or an ATM bearer, as the ITU-T Q. 1950 BCP/BNCChar property indicates whether it is an IP or an ATM bearer.

Furthermore, it is possible to use the condition in connection with compound conditions, as shown in the following example:

Context=ALL{Modify{Termination=ALL,Condition{{BNCChar=AAL2},{threegup/interface=CN},AND},SignalDescriptor{Signal=BNC Release}}}

This embodiment relates to the same situation as in the previous case, but the release bearer is only needed for ATM bearers and the core network side, whereas it is not needed for the mobile access side. The 3GPP TS 29.232 threegup/interface indicates whether it is a network or an access interface. Another example is that the media gateway controller may want to modify all terminations in the media gateway that are handling a specific IP domain identified by the system H.248.41 ipcd/realm. With the following command

Context=ALL{Subtract{Termination=ALL,Condition{ipdc/realm=domain 1}}}

it is possible to remove all terminations belonging to the specific IP domain, as a problem may occur in a particular domain making it necessary to remove all terminations belonging to said domain.

A further example of a command containing a condition is as follows:

Context=ALL{Notify{Termination=ALL,Condition{ipdc/realm=domain1},EventsDescriptor}}

In this embodiment an event is sent on all terminations belonging to a specific IP domain as identified by the ITU-T H.248.41 ipcd/realm property.
Summarizing, the use of conditions in the commands of the H.248 control protocol allows an effective addressing of some of the terminations with a minimum number of messages to be exchanged.

## Claims

1. A method for controlling a media gateway, comprising:
receiving a command from a media gateway controller, wherein the command comprises:
a termination wildcard, according to a media gateway control protocol and having a length according to the media gateway protocol, the termination wildcard addressing, a plurality of terminations of the media gateway;
a condition, distinct from the termination wildcard, under which the command is to be executed for a subset of the addressed plurality of terminations, the condition containing both a property parameter and a property value directed to a property of the subset;

identifying the plurality of terminations to which the command is addressed according to the termination wildcard;
subsequent to the identifying, determining the subset by selecting, from the addressed plurality of terminations identified according to the termination wildcard, terminations that meet the condition contained in the command, wherein the determined subset comprises fewer terminations than the addressed plurality of terminations, wherein each termination selected to be in the determined subset is assigned a respective termination ID having the length of the termination wildcard;
executing the command for each termination in the determined subset without executing the command for any termination in the addressed plurality of terminations not selected to be in the determined subset.

2. The method according to claim 1, further comprising setting the property parameter for a termination before receiving said command, either when that termination is seized or at a later stage.

3. The method according to claim 1:
wherein the condition contains a first condition and a second condition combined by a compound condition rule;
wherein the determining of the subset comprises verifying, for each termination of the plurality of terminations to which the command is addressed, whether the first condition and the second condition are met by that termination according to the compound condition rule; and
wherein the executing comprises executing the command for each termination verified as meeting the first condition and the second condition according to the compound condition rule.

4. The method according to claim 1, wherein the media gateway controller contains a plurality of processors, and wherein the property value of the property parameter in the command comprises a group indicator identifying the processor to which the command relates.

5. The method according to claim 4, wherein the command is a command to subtract the terminations controlled by a predetermined processor of the media gateway controller, and wherein the terminations controlled by said predetermined processor are identified by the group indicator.

6. The method according to claim 1, wherein the command is a proprietary media gateway control protocol command that is based on the media gateway control protocol.

7. The method according to claim 1, wherein the command is a command to modify all terminations in the media gateway meeting a predetermined requirement, the condition indicating said predetermined requirement through said property parameter and said property value.

8. The method according to claim 1, wherein the command is a command to remove all termination belonging to a predetermined IP domain, the condition indicating said predetermined IP domain through said property parameter and said property value.

9. A media gateway, comprising:
receiver circuitry configured to receive a command from a media gateway controller, wherein the command comprises:
a termination wildcard, according to a media gateway control protocol and having a length according to the media gateway protocol, the termination wildcard addressing, a plurality of terminations of the media gateway;
a condition, distinct from the termination wildcard, under which the command is to be executed for a subset of the addressed plurality of terminations, the condition containing both a property parameter and a property value directed to a property of the subset;

one or more processing circuits configured to operate as:
an identification unit configured to identify the plurality of terminations to which the command is addressed according to the termination wildcard;
a verification unit configured to determine the subset, subsequent to the identifying of the addressed plurality of terminations, by selecting from the addressed plurality of terminations identified according to the termination wildcard, terminations that meet the condition contained in the command, wherein the determined subset comprises fewer terminations than the addressed plurality of terminations, wherein each termination selected to be in the determined subset is assigned a respective termination ID having the length of the termination wildcard; and
a controller configured to execute the command for each termination in the determined subset without executing the command for any termination in the addressed plurality of terminations not selected to be in the determined subset.

10. The media gateway according to claim 9, configured to set the property parameter for a termination before receiving said command, either when that termination is seized or at a later stage.

11. The media gateway according to claim 9:
wherein the condition contains a first condition and a second condition combined by a compound condition rule;
wherein the verification unit is configured to determine the subset by verifying, for each termination of the plurality of terminations to which the command is addressed, whether the first condition and the second condition are met by that termination according to the compound condition rule; and
wherein the controller is configured to execute the command for each termination verified as meeting the first condition and the second condition according to the compound condition rule.

12. The media gateway according to claim 9, wherein the media gateway controller contains a plurality of processors, and wherein the property value of the property parameter in the command comprises a group indicator identifying the processor to which the command relates.

13. The media gateway according to claim 12, wherein the command is a command to subtract the terminations controlled by a predetermined processor of the media gateway controller, and wherein the terminations controlled by said predetermined processor are identified by the group indicator.

14. The media gateway according to claim 9, wherein the command is a proprietary media gateway control protocol command that is based on the media gateway control protocol.

15. The media gateway according to claim 9, wherein the command is a command to modify all terminations in the media gateway meeting a predetermined requirement, the condition indicating said predetermined requirement through said property parameter and said property value.

16. The media gateway according to claim 9, wherein the command is a command to remove all termination belonging to a predetermined IP domain, the condition indicating said predetermined IP domain through said property parameter and said property value.