RFC 3326 Support

This section explains the Oracle® Enterprise Session Border Controller’s ability to map Q.850 cause values with SIP responses for calls that require IWF.

RFC 3326 defines a header that might be included in any in-dialogue request. This reason header includes cause values that are defined as either a SIP response code or ITU-T Q.850 cause values. You can configure the Oracle® Enterprise Session Border Controller to support sending and receiving RFC 3326 in SIP messages for:

  • Mapping H.323 Q.850 cause values to SIP responses with reason header and cause value
  • Mapping SIP response messages and RFC 3326 reason header and cause
  • Locally generated SIP response with RFC 3326 reason header and cause

As specified in RFC 3326, the Oracle® Enterprise Session Border Controller sends SIP responses to the softswitch that contain the received Q.850 cause code and the reason.

Though the Oracle® Enterprise Session Border Controller can generate RFC 3326 headers, the default behavior for this feature is disabled. Furthermore, the Oracle® Enterprise Session Border Controller can receive and pass SIP error messages (4xx, 5xx, and 6xx) that contain the SIP reason header with a Q.850 cause code and reason (as specified in RFC 3326). If the Oracle® Enterprise Session Border Controller receives an error message without the Reason header, then the Oracle® Enterprise Session Border Controller is not required to insert one.

In calls that require IWF, the Q.850 cause generated in the SIP response are the same as the cause received in the following H.225 messages: Disconnect, Progress, Release, Release Complete, Resume Reject, Status, and Suspend Reject. In addition, the Q.850 cause codes that the Oracle® Enterprise Session Border Controller receives in RFC 3326 headers are passed to the H.323 part of the call unmodified; the H.323 call leg uses this cause code for releasing the call.

For interworking calls between SIP and H.323, you can configure:

  • Mappings for SIP status codes to Q.850 values
  • Mappings for particular Q.850 cause codes to SIP status codes

If it cannot find the appropriate mapping, then the Oracle® Enterprise Session Border Controller uses default mappings defined in the Default Mappings table below.

The following describes how the Oracle® Enterprise Session Border Controller handles different IWF call scenarios:

  • SIP request containing a Reason header—When it receives a request containing a Reason header, the Oracle® Enterprise Session Border Controller determines if the request is a SIP BYE or SIP CANCEL message. RFC 3326 states that the Reason header is mainly used for these types of requests. If there is a Reason header and it contains the Q.850 cause value, then the Oracle® Enterprise Session Border Controller releases the call on the H.323 side using the specified cause value.
  • SIP response—When it receives the error response to an initial SIP INVITE, the Oracle® Enterprise Session Border Controller uses its SIP-Q.850 map to determine the Q.850 that it will use to release the call. If there is not a map entry, then the Oracle® Enterprise Session Border Controller uses the default mappings shown in the Default Mappings table.
  • Active call released from the H.323 side—If an active call is released from the H.323 side, the Oracle® Enterprise Session Border Controller checks the outgoing realm (the SIP side) to see if the addition of the Reason header is enabled. If it is, then the Oracle® Enterprise Session Border Controller adds the Reason header in the SIP BYE request with the Q.850 value it received from the H.323 side.
  • Error during setup of the call on the H.323 side—In the event of an error during setup on the H.323 side of the call, the Oracle® Enterprise Session Border Controller needs to send:
    • An error response, if this is a SIP to H.323 call
    • A SIP CANCEL, if this is a H.323 to SIP call and the H.323 side hangs up before the call is answered on the SIP side

      In this case, the Oracle® Enterprise Session Border Controller checks to see if adding the Reason header is enabled in the IWF configuration. If it is, then the Oracle® Enterprise Session Border Controller adds the Reason header with the Q.850 cause value it received from the H.323 side.

  • Call released due to a Oracle® Enterprise Session Border Controller error—If the call is released due a Oracle® Enterprise Session Border Controller error and adding the Reason header is enabled in the IWF configuration, the error response to the initial INVITE contains the Reason header. The Oracle® Enterprise Session Border Controller checks the SIP to Q.850 map configurations to determine whether or not the SIP error response code it is generating is configured. If it is, then the system maps according to the configuration. If if it not, the Oracle® Enterprise Session Border Controller derives cause mapping from the default table.

Like the configuration for SIP-only calls that enable this feature, you can set a parameter in the IWF configuration that enables adding the Reason header in the SIP requests or responses.

Default Mappings

This table defines the default mappings the Oracle® Enterprise Session Border Controller uses when it cannot locate an appropriate entry that you have configured.

Q.850 Cause Value SIP Status
1 Unallocated number 404 Not found
2 No route to specified transit network 404 Not found
3 No route destination 404 Not found
16 Normal calling clearing N/A BYE message

Note:

A call clearing BYE message containing cause value 16 typically results in the sending of a SIP BYE or CANCEL request. However, if a SIP response is to be sent to the INVITE request, the default response code is used.
17 User busy 486 Busy here
18 No user responding 408 Request timeout
19 No answer from the user 480 Temporarily unavailable
20 Subscriber absent 480 Temporarily unavailable
21 Call rejected 603 Decline (if location filed in Cause information element indicates user; otherwise 403 Forbidden is used)
22 Number changed 301 Moved permanently (if information in diagnostic field of Cause information element is suitable for generating SIP Contact header; otherwise 410 Gone is used)
23 Redirection to new destination 410 Gone
25 Exchange routing error 483 Too many hops
27 Destination out of order 502 Bad gateway
28 Address incomplete 484 Address incomplete
29 Facility rejected 501 Not implemented
31 Normal, unspecified 480 Temporarily unavailable
34 No circuit, channel unavailable 503 Service unavailable
38 Network out of order 503 Service unavailable
41 Temporary failure 503 Service unavailable
42 Switching equipment congestion 503 Service unavailable
47 Resource unavailable unspecified 503 Service unavailable
55 Incoming calls barred with CUG 403 Forbidden
57 Bearer capability not authorized 403 Forbidden
58 Bearer capability not presently available 503 Service unavailable
65 Bearer capability not implemented 488 Not acceptable here
69 Requested facility not implemented 501 Not implemented
70 Only restricted digital information available 488 Not acceptable here
79 Service or option not implemented, unspecified 501 Not implemented
87 User not member of CUG 403 Forbidden
88 Incompatible destination 503 Service unavailable
102 Recovery on timer expiry 504 Server time-out

RFC 3326 Support Configuration

To configure a SIP status to Q.850 Reason with cause mapping:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  2. Type session-router and press Enter.
    ORACLE(configure)# session-router
  3. Type sip-q850-map and press Enter.
    ORACLE(session-router)# sip-q850-map
    ORACLE(sip-q850-map)#
  4. Type entries and press Enter.
    ORACLE(sip-q850-map)# entries
    ORACLE(sip-q850-map-entry)#

    From here, you can view the entire menu for the SIP status to Q.850 Reason with cause mapping entries configuration by typing a ?.

  5. sip-status—Set the SIP response code that you want to map to a particular Q.850 cause code and reason. There is no default, and the valid range for values is:
    • Minimum—100

    • Maximum—699

  6. q850-cause—Set the Q.850 cause code that you want to map to the SIP response code that you set in step 5. There is no default.
  7. q850-reason—Set the Q.850 reason corresponding to the Q.850 cause code that you set in step 6. There is no default. If your value has spaces between characters, then your entry must be surrounded by quotation marks.
  8. Repeat this process to create the number of local response map entries that you need.
  9. Save and activate your configuration for changes to take effect.

    To configure a Q.850 cause to a SIP status with reason mapping:

  10. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  11. Type session-router and press Enter.
    ORACLE(configure)# session-router
  12. Type sip-q850-map and press Enter.
    ORACLE(session-router)# q850-sip-map
    ORACLE(q850-sip-map)#
  13. Type entries and press Enter.
    ORACLE(q850-sip-map)# entries
    ORACLE(q850-sip-map-entry)#

    From here, you can view the entire menu for the Q.850 cause to a SIP response code with reason mapping entries configuration by typing a ?.

  14. q850-cause—Set the Q.850 cause code that you want to map to a SIP status with reason. There is no default.
  15. sip-status—Set the SIP response code to which you want to map the Q.850 cause that you set in step 5. There is no default, and the valid range for a value is
    • Minimum—100

    • Maximum—699

  16. sip-reason—Set the reason that you want to use with the SIP response code that you specified in step 6. There is no default. If your value has spaces between characters, then your entry must be surrounded by quotation marks.
  17. Repeat this process to create the number of local response map entries that you need.

    To enable the Oracle® Enterprise Session Border Controller to add the Reason header for calls that require IWF:

  18. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  19. Type session-router and press Enter.
    ORACLE(configure)# session-router
  20. Type iwf-config and press Enter.
    ORACLE(session-router)# iwf-config
    ORACLE(iwf-config)#
  21. add-reason-header—Enable this parameter to add the Reason header to IWF calls. The default is disabled. Valid values are:
    • enabled | disabled