STIR/SHAKEN Information in CDRs

The SBC adds CDR information to the appropriate RADIUS, Diameter and CSV call detail records documenting STIR/SHAKEN activity on the system.

The attribute value pairs (AVP) the system uses to populate RADIUS and/or DIAMETER CDRs are similar in nature and data. The system translates applicable STIR/SHAKEN data for use within these AVPs. You configure local CSV CDRs to collect and retain call data, including STIR/SHAKEN information, by enabling and configuring the system's account-config. When configured, the system includes applicable STIR/SHAKEN detail within CDRs that you can send using RADIUS or DIAMETER, as well as local CDRs generated as CSVs for storage within the system or to a configured push-receiver.

For RADIUS, the system populates AVPs within extensions carried by VSA 249, which is a custom VSA used to carry multiple extensions. For DIAMETER, the system populates these AVPs within ACME-specific DIAMETER attributes for distribution by DIAMETER ACRs, according to the DIAMETER protocol.

Note:

When determining how you want to configure CDR collection, bear in mind how XSR output changes when the cdr-output-inclusive parameter is enabled or disabled.

See the SBC Accounting Guide for detail about CDR generation and output detail.

Note:

You can refine the verstat included in CDRs during verstat retrieval process using the verstat-delimiter option in a sti-server. Specifying this delimeter can ensure you include the verstat only, as opposed to the entire verstat response.

Populating CDRs with Rejections based on Response Treatments

You configure the enhanced-cdr option within the sip-config to cause the SBC to populate the following CDR fields with the applicable information:

  • Stir-VS-Invite-State:

    When collecting traffic for a server configured as an STI-VS, the SBC populates this field with “Terminated” for rejecting the INVITE due to call rejection, and with “Continued” when the SBC does not reject the INVITE. When collecting for an STI-AS, the SBC leaves this field empty.

    The SBC also writes the value of the Stir-VS-Invite-State into the local CDR files if the value is "Terminated". This function also requires that you enable the cdr-output-inclusive parameter in the account-config element.

  • Stir-VS-Reason:

    The examples below provide additional detail on how the SBC populates this CDR attribute. When you enable the Call Rejection feature and the SBC rejects a call due to this feature, the SBC populates “Stir-Vs-Reason”:

    • For ATIS success responses (HTTP 200 OK):
      • The Sti-Vs-Reason is reasoncode and the reason text from the JSON body
      • If there is no reasoncode and reason text returned in the JSON body, the Sti-VS-Reason is empty
    • For ATIS 4xx/5xx responses, the Sti-VS-Reason is empty
    • For 3GPP 4xx/5xx responses, the Sti-Vs-Reason is the HTTP status code and the response phrase
    • For both ATIS and 3GPP responses:
      • If there is no answer from STI-VS, the Sti-Vs-Reason is empty
      • If there is no request is send to STI-VS, the Sti-Vs-Reason is empty
  • Stir-VS-Verstat

    Specific Stir-VS-Verstat population is dependent on STIR/SHAKEN operation mode:

    • ATIS—The value of the matched verstat when the SBC is rejecting the call.
    • 3GPP—The final verstat value, which it derives from the SHAKEN and DIV verstat values.

      Note:

      When a call is rejected based on custom verstat match, the system populates the Stir-VS-Verstat with "No-TN-Validation.

For custom or generic verstat values, the SBC uses the first 30 chars for the verstat as the value it inserts into the “Sti-Vs-Verstat” attribute in the CDR. The system stores 30 bytes and truncates the remaining part. You can further define the contents of the CDR by configuring the verstat-delimiter option in each sti-server. You can also use this option to ensure accurate matches during call rejection during verification procedures.

You configure this option by specifying your desired delimiter, such as a semi-colon.

ORACLE(sti-server)+options verstat-delimiter=;

This configuration example specifies that the CDR value includes verstat characters up to the first semi-colon. The examples below present population behavior by the SBC:

  • Behaviors when you set the verstat-delimiter option:
    • If the sti-vs response has the verstat=TN-Validation-Passed

      The Sti-Vs-Verstat in the CDR would be “TN-Validation-Passed”

    • If the sti-vs response has the verstat=TN-Validation-Passed;attest=A;origid=1cab14fd-7c29-4c95-9177-a8317bb0bbbb

      The Sti-Vs-Verstat in the CDR would be “TN-Validation-Passed”

    • If the sti-vs response has the verstat= No-TN-Validation-Custom1234567891011

      The Sti-Vs-Verstat in CDR would be “No-TN-Validation-Custom1234567“

    • If the sti-vs response has the verstat=Custom-verstat;attest=A;origid=1cab14fd-7c29-4c95-9177-a8317bb0bbbb

      The Sti-Vs-Verstat in CDR would be "Custom-verstat”

  • Behaviors when you do not set the verstat-delimiter option:
    • If the sti-vs response has the verstat=TN-Validation-Passed

      The Sti-Vs-Verstat in the CDR would be "TN-Validation-Passed"

    • If the sti-vs response has the verstat=TN-Validation-Passed;attest=A;origid=1cab14fd-7c29-4c95-9177-a8317bb0bbbb

      The Sti-Vs-Verstat in the CDR would be "TN-Validation-Passed;attest=A;"

    • If the sti-vs response has the verstat= No-TN-Validation-Custom1234567891011

      The Sti-Vs-Verstat in the CDR would be "No-TN-Validation-Custom1234567"

The SBC handles rejected call CDR data differently based on protocol. For Diameter, the SBC generates an EVENT record for rejected calls. This is because the SBC only generates a STOP record for a call if it generated a START record. For Radius, however, the SBC generates a START record even if it does not generate a STOP.