The Diameter resource adaptor is integrated with the Metaswitch Service Assurance Server (SAS). SAS provides a mechanism to record and search detailed end-to-end tracing of call handling.

See the SAS Facility section in the Rhino extended API documentation for more information about SAS tracing.

Note

SAS tracing is supported on Rhino versions 2.6 and later.

The Diameter resource adaptor can be used with earlier Rhino versions if the Rhino API Compatibility SLEE library is deployed. The script that deploys the Diameter services included in the resource adaptor package has an example of how the library is deployed.

The Diameter CCA and Ro resource adaptors automatically perform SAS tracing, if it is enabled in Rhino.

Diameter server sessions (incoming requests)

The resource adaptor will create a new SAS trail for charging sessions and incoming immediate event charging. The requests will then be logged on this trail.

Diameter client sessions (outgoing requests)

For Diameter client sessions, the resource adaptor will also create a new SAS trail. Correlations with other trails must be done by getting the trail from the activity after the first request is sent.

SAS markers

When creating a SAS trail, the resource adaptors will raise a SAS marker for trail correlation. They raise a GENERIC_CORRELATOR_MARKER containing the Session-Id AVP.

SAS events

Diameter SAS events mini-bundle
---
version: 0.1
events:

  SENDING_MESSAGE:
      summary: 'Sending Diameter {{ var_data[2] | decode_diameter_summary }}'
      details: |
        Sending Diameter {{ var_data[2] | decode_diameter_summary }} to "{{ var_data[1] }}"

        <sas:fixed-width-font>{{ var_data[2] | decode_diameter_details }}</sas:fixed-width-font>
      level: 60
      call_flow:
        data: '{{ var_data[2] | binary }}'
        protocol: _Diameter
        direction: out
        local_address: "{{var_data[0]}}:{{static_data[0]}}"
        remote_address: "{{var_data[1]}}:{{static_data[1]}}"

  RECEIVED_MESSAGE:
      summary: 'Received Diameter {{ var_data[2] | decode_diameter_summary }}'
      details: |
        Received Diameter {{ var_data[2] | decode_diameter_summary }} from "{{ var_data[1] }}"

        <sas:fixed-width-font>{{ var_data[2] | decode_diameter_details }}</sas:fixed-width-font>
      level: 60
      call_flow:
        data: '{{ var_data[2] | binary }}'
        protocol: _Diameter
        direction: in
        local_address: "{{var_data[0]}}:{{static_data[0]}}"
        remote_address: "{{var_data[1]}}:{{static_data[1]}}"

  MESSAGE_RECEIVED_IN_STATE:
      summary: 'Message received in Peer FSM State {{ var_data[0] }}'
      level: 20

  MESSAGE_FILTERED_BY_FSM_STATE:
      summary: 'Message filtered by Peer FSM State'
      level: 20

  SESSION_ID_MISSING:
      summary: 'Session-Id missing from message'
      level: 20

  INTERNAL_PROCESSING_ERROR:
      summary: 'Diameter RA experienced an internal processing error {{ var_data[0] }} {{ var_data[1] }}'
      details: |
        Diameter RA experienced an internal processing error {{ var_data[0] }} {{ var_data[1] }}

        {{ var_data[2] }}
      level: 40

  RETRANSMIT:
      summary: 'Attempting retransmit of Diameter request'
      level: 40

  SENDING_PROXIED_MESSAGE:
    summary: 'Sending proxied Diameter {{ var_data[2] | decode_diameter_summary }}'
    details: |
      Sending proxied Diameter {{ var_data[2] | decode_diameter_summary }} to "{{ var_data[1] }}"

      <sas:fixed-width-font>{{ var_data[2] | decode_diameter_details }}</sas:fixed-width-font>
    level: 60
    call_flow:
      data: '{{ var_data[2] | binary }}'
      protocol: _Diameter
      direction: out
      local_address: "{{var_data[0]}}"
      remote_address: "{{var_data[1]}}"

  RECEIVED_PROXIED_MESSAGE:
    summary: 'Received proxied Diameter {{ var_data[2] | decode_diameter_summary }}'
    details: |
      Received proxied Diameter {{ var_data[2] | decode_diameter_summary }} from "{{ var_data[1] }}"

      <sas:fixed-width-font>{{ var_data[2] | decode_diameter_details }}</sas:fixed-width-font>
    level: 60
    call_flow:
      data: '{{ var_data[2] | binary }}'
      protocol: _Diameter
      direction: in
      local_address: "{{var_data[0]}}"
      remote_address: "{{var_data[1]}}"
Previous page