RFC 3326 Support
This section explains the Oracle Communications 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 Communications 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 Communications Session Border Controller sends SIP responses to the softswitch that contain the received Q.850 cause code and the reason.
Though the Oracle Communications Session Border Controller can generate RFC 3326 headers, the default behavior for this feature is disabled. Furthermore, the Oracle Communications 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 Communications Session Border Controller receives an error message without the Reason header, then the Oracle Communications 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 Communications 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 Communications Session Border Controller uses default mappings defined in the Default Mappings table below.
The following describes how the Oracle Communications 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 Communications 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 Communications 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 Communications 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 Communications 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 Communications 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 Communications 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 Communications 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 Communications Session Border Controller checks to see if adding the Reason header is enabled in the IWF configuration. If it is, then the Oracle Communications 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 Communications Session Border Controller error—If the call is released due a Oracle Communications 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 Communications 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 Communications 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 Communications 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 |