IWF Codec Renegotiation for Audio Sessions

For calls requiring interworking between SIP and H.323, there can be several instances for audio sessions when a mid-call codec change is necessary. These are some examples of when the codec used for voice transportation is necessary:

  • Sessions between analog FAX machines that start as regular voice calls but then must use a codec that is fax-signalling tolerant (like transparent G.711) when FAX tones are detected; detection takes place after the call has been answered. The case of modem calls is similar.
  • An established call is redirected in one carrier’s network either to a different enduser or to a media server. In this case, the party to which the call is redirected might not support the codec used in the redirection. If request for a codec change is carried out at the signalling level, the call can proceed with the party to which the call was redirected.
  • Endusers might want to change codecs when they suffer low voice quality.

Both SIP and H.323 provide mechanisms for changing codecs during a call: SIP uses the ReINVITE, and H.323 uses the H.245 Request Mode. Using the option called processRequestModeForIWF=all either in an H.323 interface (stack) or an H.323 session agent configuration, you can enable the Oracle® Enterprise Session Border Controller to interwork SIP ReINVITE and H.245 Request Mode requests.

RTN 1976

Codec Request Change from the SIP Side

When a SIP party requests a code change, the Oracle® Enterprise Session Border Controller communicates with the H.323 endpoint to renegotiate support for an updated codec. In this renegotiation, the Oracle® Enterprise Session Border Controller presents codec for use ordered according to the SIP side’s preference and one is selected. Then the Oracle® Enterprise Session Border Controller handles opening of a new logical channel that uses the updated codec, and closes the old logical channel (that uses the now-outdated codec). On the SIP side, the Oracle® Enterprise Session Border Controller sends a 200 OK with the necessary RTP port and codec information for the new logical channel.

Codec Request Change from the H.323 Side

When the Oracle® Enterprise Session Border Controller receives a codec request change on the H.323 side of an IWF call, it sends a Re-INVITE to the SIP endpoint containing new codec and information. The Oracle® Enterprise Session Border Controller uses IP address and port information it has cached for the H.323 side of the call for the Re-INVITE since H.245 Request Mode requests do not have this data. If the IP address and port combination should subsequently change (in an OLC from the H.323 side), the Oracle® Enterprise Session Border Controller handles additional INTVITEs on the SIP side to support the change.

Exceptional Cases

When the relevant option in enabled, the Oracle® Enterprise Session Border Controller can handle properly the following cases of codec change:

  • When the H.323 side rejects the request mode change, the Oracle® Enterprise Session Border Controller response to the SIP side with a 488 Not Acceptable. Session description and state remain unchanged, and the call continues using the original session description.
  • When the H.323 side does not respond to the request mode change within the timeout limitation, the Oracle® Enterprise Session Border Controller releases the call on both sides.
  • When the SIP side does not respond to the ReINVITE within in the timeout limitation, the Oracle® Enterprise Session Border Controller releases the call on both sides.
  • When the intersection of codec is empty, the Oracle® Enterprise Session Border Controller rejects the codec change on the SIP side with a 488 Not Acceptable and on the H.323 side with an H.245 RequestModeReject. Session description and state remain unchanged, and the call continues using the original session description.
  • If the Oracle® Enterprise Session Border Controller does not receive any of the LogicalChannel request or acknowledgement messages, the Oracle® Enterprise Session Border Controller releases the call on both sides.

Note that for protocol timeout errors, the preferred behavior is to release the call on both sides. Timeout errors usually indicate network problems, such as an endpoint being unreachable.

IWF Codec Renogotiation Configuration

You can apply the processRequestModeForIWF=all to H.323 interfaces (stacks) and to H.323 session agents (sessions agents for which H.323 has been identified in the protocol parameter). The example below shows you how to enable this option for an H.323 session agent.

To enable IWF codec renegotiation for an H.323 session agent:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
    ORACLE(configure)#
  2. Type session-router and press Enter.
    ORACLE(configure)# session-router
    ORACLE(session-router)#
  3. Type session-agent and press Enter. If you are adding this feature to a pre-existing configuration, you will need to select and edit it.
    ORACLE(session-router)# session-agent
    ORACLE(session-agent)#
  4. options—Set the options parameter by typing options, a Space, the option name processRequestModeForIWF=all with a plus sign in front of it, and then press Enter.
    ORACLE(session-agent)# options +processRequestModeForIWF=all

    If you type the option without the plus sign, you will overwrite any previously configured options. In order to append the new options to the realm configuration’s options list, you must prepend the new option with a plus sign as shown in the previous example.

  5. Save your work.