Creating Detailed Call Rejection Information
You can configure the SBC can provide more specific reasons for rejecting a call towards the caller. You configure these reason-code and reason-text entries within your sti-response-treatment-config configurations. This feature applies to the messages sent by the SBC to the caller after it has completed its STI verification process.
By default, the SBC sends generalized reason detail to applicable stations for rejecting a call based on an STI-VS response. These responses are normalized verstats, presenting a standardized string for both ATIS and 3GPP deployments within the applicable SIP messages. As a result, the verstat information provided by the SBC may not be as specific as desired about the reason a call failed.
For example, without this feature the SBC tags the following call failure scenarios with the same verstat, No-TN-Validation:
- STI-VS no request
- STI-VS no answer
- Answer with no verstat
The SBC, however, allows you to configure your sti-response-treatment-config to provide more specific reason information for specific call fail scenarios, including:
- No-TN-Validation-Timeout—STI-VS does not answer
- No-TN-Validation-StiInvalid—STI-VS answer is meaningless (JSON missing or malformed)
- No-TN-Validation-IdentityMissing—SIP Identity is missing (no request sent to STI-VS)
- No-TN-Validation-TNMissing—TN is missing (no request sent to STI-VS)
- No-TN-Validation-StiConstraints—STI constraints are exceeded (no request sent to STI-VS)
- No-TN-Validation-Unreachable—STI-VS circuit-breaker is open (no request sent to STI-VS)
- No-TN-Validation-ClientError—SBC internal failure (no request sent to STI-VS)
- No-TN-Validation-Bypass—The STIR requests that are bypassed
No-TN-Validation-Timeout—STI-VS does not answer
When you configure a sti-response-treatment-entry with a verstat of No-TN-Validation-Timeout and a reason-code that is “empty" or "0”, the SBC rejects applicable calls when there is a response timeout on the STI-VS server.
When these requests to STI-VS servers time out, the SBC uses the verstat key “No-TN-Validation-Timeout” to find matches for rejecting these calls.
This first configuration example demonstrates the SBC providing a less accurate response.
ORACLE(sti-response-treatment-entry)show
verstat No-TN-Validation-Timeout
reason-code
role STI-VS
sip-reason-code
sip-reason-text
In this case, the SBC rejects the call with:
- A “403 Forbidden” Response
- STI-VS-REASON "" (Field left empty)
- Reason Headers:
- ATIS SIP Reason header—SIP;cause=403;text=Forbidden
- 3GPP SIP Reason header—Empty - No reason header included
- The verstat No-TN-Validation in the FROM header
This second configuration example demonstrates the SBC providing a more accurate response.
ORACLE(sti-response-treatment-entry)show
verstat No-TN-Validation-Timeout
reason-code
role STI-VS
sip-reason-code 404
sip-reason-text NoValidationTimeout
In this case, the SBC rejects the call with:
- “404 NoValidationTimeout” Response
- STI-VS-REASON empty
- Reason Headers:
- ATIS SIP Reason header—SIP;cause=403;text=Forbidden
- 3GPP SIP Reason header—Empty - No reason header included
- The verstat No-TN-Validation in the FROM header
No-TN-Validation-StiInvalid/No-TN-Validation-MalformedStiResponse—STI-VS answer is meaningless (JSON missing or malformed)
When you configure a sti-response-treatment-entry with a verstat of No-TN-Validation-StiInvalid and a reason-code that is “empty" or "0”, the SBC rejects applicable calls when there is a malformed response or missing JSON body from STI-VS server. The system matches the Verstat key “No-TN-Validation-StiInvalid” for this call rejection.
This first configuration example demonstrates the SBC providing a less accurate response.
ORACLE(sti-response-treatment-entry)show
sti-response-treatment-entry
verstat No-TN-Validation-MalformedStiResponse
reason-code
role STI-VS
sip-reason-code
sip-reason-text
In this case, the SBC rejects the call with:
- A “403 Forbidden” Response
- STI-VS-REASON, composed of the HTTP status code plus status text
- Reason Headers:
- ATIS SIP Reason header—SIP;cause=403;text=Forbidden
- 3GPP SIP Reason header—SIP;cause=HTTP status code;text=HTTP status phrase
- The verstat No-TN-Validation in the FROM header
This second configuration example demonstrates the SBC providing a more accurate response.
(sti-response-treatment-entry)show
sti-response-treatment-entry
verstat No-TN-Validation- MalformedStiResponse
reason-code
role STI-VS
sip-reason-code 404
sip-reason-text NoValidationStiInvalid
In this case, the SBC rejects the call with:
- A “404 NoValidationStiInvalid” Response
- STI-VS-REASON includes http reason code + reason text
- Reason Headers:
- ATIS SIP Reason header—SIP;cause=403;text=Forbidden
- 3GPP SIP Reason header—SIP;cause=403;text="4xx/5xx"
- The verstat No-TN-Validation in the FROM header
Oracle considers a verification response as an invalid STI response based on the following:
- 200 OK case
- From an ATIS perspective, meaningless answer:
- no JSON body
- JSON body but no verificationResponse
- JSON body and verificationResponse but no verstat
- From a 3GPP perspective, meaningless answer:
- no JSON body
- JSON body but no verificationResponse
- if SHAKEN verification: JSON body and verificationResponse but no verstatValue
- if DIV verification:
- JSON body and verificationResponse but no divResult
- JSON body and verificationResponse and divResult but no verstatValue
- From an ATIS perspective, meaningless answer:
- 4xx/5xx case—Within 4xx/5xx responses from the STI-VS, there is no
"invalid sti response" possible. The SBC,
therefore, populates the SIP Reason Header as follows:
- cause:
- reasonCode if included in JSON body
- HTTP response status-code if reasonCode is not available in JSON body
- text:
- reasonText if included in JSON body
- OR error included in JSON body if reasonText is not available in JSON body
- OR HTTP reason phrase if reasonText nor error is available in JSON body
- cause:
No-TN-Validation-IdentityMissing—SIP Identity is missing (no request sent to STI-VS)
Consider this scenario to be the same as the second configuration examples above, differing in your sip-reason-text and verstat configurations, which the SBC uses to find matches for rejecting these calls.
verstat No-TN-Validation-IdentityMissing
sip-reason-text NoValidationIdentityMissing
Here, the system provides a “404 NoValidationIdentityMissing” Response, and a adds "No-TN-Validation" in the FROM.
No-TN-Validation-TNMissing—TN is missing (no request sent to STI-VS)
Consider this scenario to be the same as the second configuration examples above, but differing in your sip-reason-text and verstat configurations, which the SBC uses to find matches for rejecting these calls.
verstat No-TN-Validation-TNMissing
sip-reason-text NoValidationTNMissing
Here, the system provides a “404 NoValidationTNMissing” Response, and a adds "No-TN-Validation" in the FROM.
No-TN-Validation-StiConstraints—STI constraints are exceeded (no request sent to STI-VS)
Consider this scenario to be the same as the second configuration examples above, but differing in your sip-reason-text and verstat configurations, which the SBC uses to find matches for rejecting these calls.
verstat No-TN-Validation-StiConstraints
sip-reason-text NoValidationStiConstraints
Here, the system provides a “404 NoValidationStiConstraints” Response, and adds "No-TN-Validation" in the FROM.
No-TN-Validation-Unreachable—STI-VS circuit-breaker is open (no request sent to STI-VS)
Consider this scenario to be the same as the second configuration examples above, but differing in your sip-reason-text and verstat configurations, which the SBC uses to find matches for rejecting these calls.
verstat No-TN-Validation-Unreachable
sip-reason-text NoValidationStiUnreachable
Here, the system provides a “404 NoValidationStiConstraints” Response, and adds "No-TN-Validation" in the FROM.
No-TN-Validation-ClientError—SBC internal failure (no request sent to STI-VS)
Consider this scenario to be the same as the second configuration examples above, but differing in your sip-reason-text and verstat configurations, which the SBC uses to find matches for rejecting these calls.
verstat No-TN-Validation-ClientError
sip-reason-text NoValidationClientError
Here, the system provides a “404 NoValidationStiConstraints” Response, and adds "No-TN-Validation" in the FROM.
No-TN-Validation-Bypass—The STIR requests that are bypassed
If the entry has a verstat of “No-TN-Validation-Bypass”, and a reason-code that is “empty" or "0”, the system rejects the call when the STIR request is bypassed.
verstat No-TN-Validation-Bypass
sip-reason-text Null
The Verstat match key for call rejection is “No-TN-Validation-Bypass”.
In this case, the SBC rejects the call with:
- A “403 Forbidden” Response
- STI-VS-REASON empty
- Reason Headers:
- ATIS SIP Reason header—SIP;cause=403;text=Forbidden
- 3GPP SIP Reason header—empty
- The verstat No-TN-Validation in the FROM header
Reason-code Missing from the Response Body
For cases in which the system receives STI-VS responses in which the reason-code is not present in the verificationResponse of the JSON body, you can configure a sti-response-treatment-entry that causes the system to populate the reason-code from the HTTP body based on operation mode and response:
- For ATIS—When receiving 4xx or 5xx responses from the STI-VS, use the reason-code from the HTTP response code, which the system gets from the response's status line.
- For 3GPP—When receiving any response from the STI-VS, use the reason-code from the HTTP response code, which the system gets from the response's status line.
Consider the following sti-response-treatment-entry:
(sti-response-treatment-entry)show
sti-response-treatment-entry
verstat No-TN-Validation-None
reason-code 400
role STI-VS
sip-reason-code
sip-reason-text
This behavior would take effect when the system receives an HTTP response, as shown below, that triggers the sti-response-treatment-entry above.
HTTP/1.1 400 Bad Request
X-RequestID: AA97B177-9383-4934-8543-0F91A7A02836
Content-Type: application/json
Content-Length: …
{
“requestError”: {
“serviceException”:
{“messageId”: “SVC4001”
“text”: “Error: Missing mandatory parameter ‘%1’”,
“variables”: [“iat”]
}
}
}
In this case the SBC rejects the call with a “400 Bad Request” response. In addition, the STI-VS-REASON is "SIP ;cause=400 ;text="Bad Request".