Conditional Codec Policies

A codec policy performs actions conditionally when any of its parameters includes a conditional value. A conditional value includes a target codec paired with a requirement for executing the action. The Oracle® Enterprise Session Border Controller manipulates SDP according to this value pair if the ingress SDP or a previous manipulation to the SDP meets the condition's criteria. The user configures this "conditional manipulation" by extending upon the syntax of three core parameters in the codec-policy configuration element, including:

  • allow-codecs,
  • add-codecs-on-egress, and
  • order-codecs.

The system establishes conditions on a codec policy as a sequence of allowing, adding, and re-ordering. Each step in this sequence can occur with or without conditions. Allowing is required. Any applied policy, whether or not it is conditional, without an allow blocks all traffic. Allow all, using the wildcard asterisk character is a typical setting. Adding only applies to egress policies.

To establish conditions, the user configure the parameter with pairs that consist of target codecs followed by the condition(s) that trigger the action. Each policy parameter can include one or more of these pairs. When configuring a parameter with multiple values, the user encloses them within parenthesis, whether or not there are conditions.

The system processes all policies serially, regardless of whether any includes a condition. Specifically, the system first determines which codecs to allow, then which to add (none on ingress), then the codec order. The system also processes parameter values serially. The user, therefore, must configure all parameter values based on what may have been changed previously. This is particularly important when using both ingress and egress codec policies. Consistent with this serial concept, egress policies operate on what the system presents to them, which includes the results of any ingress policies.

Note that the use of conditional order-codecs is often done in conjunction with add-codecs-on-egress to define the location of user-added codecs to the list presented at egress. When order-codecs is not used, the system places all added codecs at the beginning of the list in the order they were added. It is often desirable to place an added codec in a different position, using order-codecs.