STIR/SHAKEN Statistics in SNMP

You can retrieve statistics on STIR/SHAKEN status using SNMP. The SBC provides statistics on system-wide, server, sip-interface, realm and session-agent bases. The SBC presents STIR statistics using its standard recent, total, and permax statistics.

STIR Stats are supported in SNMP beginning with the apAppsStirMIBObjectsTable. The system organizes all STIR OIDs under this table. To perform a complete SNMP-walk, for example, you invoke this object in your command line. For example:

snmpwalk -v 2c -c public -r 0 10.10.10.9 APAPPS-MIB::apAppsStirMIBObjects

Subsequent high-level tables provide the basis for each type of configuration source and use entry rows of the configuration objects' names and objects IDs. The agent table, for example, uses the apAppsStirAgentStatsEntry entry, which consists of apStirAgentName, which is configured in ACLI, and apStirStatsAgentIndex, which is the object ID of the ACLI config element. These tables include:

  • apAppsStirServerTable
  • apAppsStirAgentTable
  • apAppsStirSipInterfaceTable
  • apAppsStirRealmTable
  • apAppsStirSystemStatsTable—This table's ApAppsStirSystemStatsEntry uses only the apCounterStatsType and apStirStatsType.

The SBC nests a series of index and identification OIDs to specify each target object together with index and counter OIDs to fully specify the complete output. For example, Server-oriented indexes and data category OIDs include:

  • 1.3.6.1.4.1.9148.3.16.1.2.4.1 — apAppsStirServerTable Parent Stir Server table
  • 1.3.6.1.4.1.9148.3.16.1.2.4.1.1 — apAppsStirServerEntry Server Entry Object
  • 1.3.6.1.4.1.9148.3.16.1.2.4.1.1.1 — apStirServerIndex Server Index Object (Index)
  • 1.3.6.1.4.1.9148.3.16.1.2.4.1.1.2 — apStirServerName Server Name Object

Data-oriented indexes and data category OIDs used to index and provide counter objects include:

  • 1.3.6.1.4.1.9148.3.16.1.2.4.2 — apAppsStirStatsTable Stats Table
  • 1.3.6.1.4.1.9148.3.16.1.2.4.2.1— apAppsStirStatsEntry
  • 1.3.6.1.4.1.9148.3.16.1.2.4.2.1.2 — apCounterStatsType Stats counter type Object (Index)
  • 1.3.6.1.4.1.9148.3.16.1.2.4.2.1.3 — apStirStatsType Stats type Object (Index)

Objects that capture and specify per-server data include:

  • 1.3.6.1.4.1.9148.3.16.1.2.4.2.1.1 — apStirStatsServerIndex stats server index Object (Index)
  • 1.3.6.1.4.1.9148.3.16.1.2.4.2.1.4 — apStirServerStats Stats Object

The SBC uses this same model to assemble objects and specify data to produce statistics specific to sip-interface, realm and session-agent elements. The SBC uses a similar, albeit simpler model, to capture system-wide data using 5 OID objects.

Deciphering STIR Data in SNMP

The STI server labels are contained in OID APAPPS-MIB::apStirServerName. The OID of each sti-server is the same ID as the config object instance. This means that the SNMP table does not start from 0, instead starting from the config-object ID. This is also true for the object IDs of your sip-interface, realm and session-agent elements. Each SBC assigns its own reference numbers sequentially from 0. These numbers serve only as labels. The entries below present the beginning of a walk of two servers, named stirServer1 and stirServer2, using the reference numbers 80 and 99.

  • APAPPS-MIB::apStirServerName.80 = STRING: stirServer1
  • APAPPS-MIB::apStirServerName.99 = STRING: stirServer2

The format for STIR OID strings is:

  • Root label—For example, APAPPS-MIB::apStirServerStats
  • The Instance OID
  • The type of statistics, including recent, total and permax
  • The type of statistics, such as asQueries and vsQueries

For example, the output for an agent query is composed of:

  • apStirAgentName which is configured in ACLI
  • apStirStatsAgentIndex which is the object ID of the ACLI config element
  • The table is indexed by apStirStatsAgentIndex.
  • The apCounterStatsType has any of the value in set {recent(1), total(2), or permax(3)}.
  • The apStirStatsType is one of the following:
    • asQueries(1)
    • asSuccessResponses(2)
    • asFailResponses(3)
    • asFailServiceException(4)
    • asFailPolicyException(5)
    • vsQueries(6)
    • vsSuccessResponses(7)
    • vsFailResponses(8)
    • vsSuccessVerification(9)
    • vsFailVerification(10)
    • vsFailServiceException(11)
    • vsFailPolicyException(12)
    • serverUnreachable(13)
    • asSentInviteswithShakenPASSportA(14)
    • asSentInviteswithShakenPASSportB(15)
    • asSentInviteswithShakenPASSportC(16)
    • asSentInviteswithdivPASSport(17)
    • vsReceivedInviteswithNoPASSport(18)
    • vsReceivedInviteswithShakenPASSport(19)
    • vsReceivedInviteswithDivPASSport(20)
    • vsSentInviteswithTNValidationPassed(21)
    • sSentInviteswithTNValidationFailed(22)
    • vsSentInviteswithNoTNValidation(23)
    • asServiceUnreachable(24)
    • vsServiceUnreachable(25)
    • apStirStatsTypeMax(26)

Example responses to two STIR agent statistics queries, with one value set to 5 and the other to 50, are:

  • APAPPS-MIB::apStirAgentStats.80.recent.asQueries = Gauge32: 5
  • APAPPS-MIB::apStirAgentStats.80.recent.asSuccessResponses = Gauge32: 50

See the SBC MIB Guide for further detail about SNMP function, configuration, and STIR OID detail.