Fax reINVITE Handling

During established T.38 fax sessions, by default the Oracle Communications Session Border Controller applies codec policies when handling reINVITEs, which can result in interrupted fax sessions. You can configure the SBC to allow refresh reINVITEs and non-refresh reINVITEs that modify SDP without applying codec policies for fax continuity.

You allow reINVITEs in both transcoded T.38-G.711 sessions and non-transcoded T.38-T.38 sessions by setting the fax-continue-session parameter as follows:

  • None: When any reINVITE is received, non-refresh or refresh, the SBC applies ingress and egress codec policies while processing it, which may result in an interrupted fax session.
  • faxToVoice:
    • When a refresh reINVITE (no SDP change) is received, the SBC accepts it.
    • When a non-refresh reINVITE with SDP changes is received:
      • If you have also enabled fax-conti-sess-ext, the SBC accepts some non-refresh reINVITEs that modify SDP without interrupting fax continuity. This includes reINVITEs with session version only changes, T.38 bit-rate and buffer changes, and SDP attribute reordering, addition, or removal.
      • If you have not enabled fax-conti-sess-ext, and the SDP changes include a non-faxable codec, such as AMR or G729, the SBC switches the call from fax to voice.

  • faxToVoiceNotAllowed:
    • When a refresh reINVITE (no SDP change) is received, the SBC accepts it.
    • When a non-refresh reINVITE with SDP changes is received, the SBC rejects it with 488 Not Acceptable Here and maintains the established fax session.

      The fax-conti-sess-ext parameter does not apply when fax-continue-session is set to faxToVoiceNotAllowed.

The fax-continue-session and fax-conti-sess-ext parameters do not apply to the following scenarios:
  • Fax sessions converted from audio sessions on tone detection
  • G.711 to G.711 fax calls
  • G.711 to G.711 fax calls that later receive a T.38 reINVITE. Because the SBC cannot determine whether the original call was fax or audio, the SBC processes and routes the reINVITE as normal, including applying codec policies.
  • Fax sessions with multiple m-lines

The SBC handles offerless invites as normal, and rejected offerless reINVITEs do not block subsequent valid refresh reINVITEs.

Permitted SDP Changes on Fax reINVITE

When you set fax-continue-session to faxToVoice and fax-conti-sess-ext to enabled, the SBC accepts reINVITEs containing SDP changes that do not alter the established fax media.

Permitted changes include:

  • Session version increments: Treated as refresh reINVITEs when no other SDP changes are present.
  • Reordered SDP attributes:
    • In transcoded calls, the SBC preserves the requester's SDP media ordering, and increments the response o-line version, if SDP changed.
    • In non-transcoded calls, the SBC forwards the valid T.38 SDP without applying codec policies, incrementing the outgoing session version for requests and relaying as-is for answers.
  • Added or removed SDP attributes: The SBC preserves the updated SDP in the response, and increments the o-line version.
  • T.38 bit rate or buffer parameter modifications: The SBC applies the change on the requester-facing side while preserving the peer leg's last negotiated fax SDP.
  • Extra codecs alongside the negotiated fax codec: The SBC prunes the non-negotiated extra codecs and retains the previously negotiated faxable codec.
  • o-line user or session name changes: The SBC ignores non-media identity or name changes for refresh detection and derives the response version from the SDP previously sent in that direction.
  • Invalid media changes:
    • In transcoded calls, the SBC rejects the reINVITE with 488 and restores the internal state so that the established fax call continues and later valid refresh re-INVITEs are not blocked.
    • In non-transcoded calls, the SBC rejects the reINVITE according to your configured media handling.

In non-transcoded calls, you configure session version incrementing behavior by setting the unique-sdp-id option on the media-manager. If this option is configured, the SBC increments the session version when it receives the reINVITE. If this option is not configured, the SBC passes the reINVITE on without changing the session version.

The following reINVITEs are not permitted, and are rejected with 488 Not Acceptable Here:
  • Two or more m-lines
  • Changes to the negotiated fax codecs
  • Only non-faxable audio codecs received when fax-to-audio transitions are not enabled
  • C-line IP address changes
  • Media port changes
  • Fallback answer attempts to answer G711FB fallback with T.38 (rejected according to normal error handling)

Configuring Fax reINVITE Handling

You enable fax reINVITE handling in the fax-continue-session and fax-conti-sess-ext parameters.

  1. Access the sip-interface configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# session-router
    ORACLE(session-router)# sip-interface
    ORACLE(sip-interface)# 
    
  2. Set fax-continue-session to one of the following:
    • none: Disables reINVITE handling.
    • faxToVoice: Enables refresh reINVITE handling and allows calls to transition to voice for non-refresh reINVITEs.
    • faxToVoiceNotAllowed: Enables refresh reINVITE handling and rejects non-refresh reINVITEs, maintaining fax session.
  3. Optionally, if you set fax-continue-session to faxToVoice, set fax-conti-sess-ext to enabled to enable non-refresh reINVITE handling to modify SDP without interrupting fax continuity.
  4. Type done to save your configuration.
  5. Type exit until you return to the top-level superuser prompt.
  6. Optionally, set the unique-sdp-id option on media-manager to configure the SBC to update the session version number when processing fax reINVITEs:
    1. Access the media-manager configuration element:
      ORACLE# configure terminal
      ORACLE(configure)# media-manager
      ORACLE(media-manager)#
    2. Set the unique-sdp-id option by typing options, a Space, the option name unique-sdp-id with a plus sign in front of it, and then press Enter.
      ORACLE(media-manager)# options +unique-sdp-id
    3. Type done to save your configuration.