Introduction

Customers using dedicated hardware have the ability to monitor Active Calls and Connected Calls via Simple Network Management Protocol (SNMP). Sippy uses the SIPPY-MIB file as its Management information base (MIB) file.

In order to enable SNMP, the following steps are required.

1. Enable SNMP agent for SSP MIB tree.

Make sure /home/ssp/etc/snmpd.conf file contains the following:

pass_persist .1.3.6.1.4.1.36523  /home/ssp/scripts/snmp_statsd.py  

By default snmpd conf allows monitoring only from the local host. In order to enable remote monitoring of snmp statistics, you need to add the following line to your snmpd.conf file

rocommunity  <YOUR_SNMP_COMMUNITY_STRING> <IP_ADDRESS>

You must restart the SNMP daemon and rc.firewall script for changes to the snmpd.conf configuration file to take effect.
$ sudo /usr/local/etc/rc.d/snmpd restart
$ sudo /home/ssp/scripts/rc.firewall.sh

2. Download and place MIB file.

The MIB file should be available on any SSP installation on the following path:

/usr/home/ssp/etc/SIPPY-MIB.txt

You must copy the SIPPY-MIB.txt file and place it in your SNMP client host to the MIB storage path, for example:
$ sudo cp /usr/home/ssp/etc/SIPPY-MIB.txt /usr/local/share/snmp/mibs/SIPPY-MIB.txt

If you are monitoring from a remote SNMP client, you must copy the SIPPY-MIB.txt file to the MIB storage path on the SNMP client host.

3. Access live SSP SNMP data.

At this point you should be able to query SSP with SNMP. The following example command returns the environment name of the first environment and the active calls of the thirteenth environment respectively:

snmpget -v2c -m SIPPY-MIB -c <YOUR_SNMP_COMMUNITY_STRING> <YOUR_SSP_HOST> SippyEnvIdEntry.1
# example of the output:
SIPPY-MIB::SippyEnvIdEntry.1 = STRING: "1/Primary/"

snmpget -v2c -m SIPPY-MIB -c <YOUR_SNMP_COMMUNITY_STRING> <YOUR_SSP_HOST>SippyEnvActiveCallsEntry.13
# example of the output:
SIPPY-MIB::SippyEnvActiveCallsEntry.13 = INTEGER: 11

For most monitoring systems you must know the OID of the parameter to be monitored without possibility to access its MIB name. The following command returns the name&description of the first environment and the active calls of the thirteenth environment respectively with OID:


snmpget -On -v2c -m SIPPY-MIB -c <YOUR_SNMP_COMMUNITY_STRING> <YOUR_SSP_HOST> .1.3.6.1.4.1.36523.1.1.1.1.1.1
.1.3.6.1.4.1.36523.1.1.1.1.1.1 = STRING: "1/Primary/"

snmpget -On -v2c -m SIPPY-MIB -c <YOUR_SNMP_COMMUNITY_STRING> <YOUR_SSP_HOST> .1.3.6.1.4.1.36523.1.1.1.2.1.13
.1.3.6.1.4.1.36523.1.1.1.2.1.13 = INTEGER: 15

In order to translate numeric OID to human-readable name snmptranslate utility could be used:

$ snmptranslate -m SIPPY-MIB .1.3.6.1.4.1.36523.1.1.4.3.1
SIPPY-MIB::SippyConnectionConnectedCallsEntry


OID name with parameters
OID description
Available in
System-wide OIDs
SippyRtpProxyOneWay

.1.3.6.1.4.1.36523.1.1.6.1
system-wide percentage of calls that had SDP for both legs, but RTP only seen on one legSippy 2020
SippyRtpProxyIncomplete

.1.3.6.1.4.1.36523.1.1.6.2
system-wide percentage of calls that got media description for only one legSippy 2020
SippyRtpProxyNoRtp

.1.3.6.1.4.1.36523.1.1.6.3
system-wide percentage calls that had SDP for both legs, but RTP not seen on either legSippy 2020
SippyRtpProxyDiscard

.1.3.6.1.4.1.36523.1.1.6.4
system-wide percentage of number of RTP/RTPC packets discarded. This is typically caused by packets from an unknown source or packets received on existing call from known source of incomplete sessionsSippy 2020
Environment-wide misc OIDs
SippyEnvIdEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.1.1.<i_environment>
name and description of the environmentSippy 5.0
SippyEnvPtimeEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.4.1.
<i_environment>
average ptime (processing time) of the calls in environmentSippy 5.0
SippyEnvAAPtimeEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.5.1.<i_environment>
average aa_ptime (Authorize&Authenticate processing time) of the calls in environmentSippy 5.0
SippyEnvNRegisteredEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.15.1.<i_environment>
number of active Accounts registrations in the environmentSippy 2021
SippyEnvTotalCallsDurationEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.12.1.<i_environment>
total duration of Connected calls in Environment in secondsSippy 2020
Environment-wide total calls number OIDs
SippyEnvNReceivedCallsEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.13.1.<i_environment>
number of Received(Incoming) calls in EnvironmentSippy 2020
SippyEnvNOriginatedCallsEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.14.1.<i_environment>
number of Originated(Outgoing) calls in EnvironmentSippy 2020
SippyEnvAuthorizedCallsAvgEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.6.1.<i_environment>
average number of calls in Authorized state in environmentSippy 5.0
SippyEnvRoutedCallsAvgEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.7.1.<i_environment>
average number of calls in Routed state in environmentSippy 5.0
SippyEnvConnectedCallsAvgEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.8.1.<i_environment>
average number of calls in Connected state in environmentSippy 5.0
SippyEnvNAuthorizedCallsEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.9.1.<i_environment>
number of calls in Authorized state in EnvironmentSippy 2020
SippyEnvNRoutedCallsEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.10.1.<i_environment>
number of call in Routed state in EnvironmentSippy 2020
SippyEnvNConnectedCallsEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.11.1.<i_environment>
number of calls in Connected state in environmentSippy 2020
SippyEnvActiveCallsEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.2.1.<i_environment>
number of Active calls in Environment
Sippy 5.0

SippyEnvConnectedCallsEntry.<i_environment>

.1.3.6.1.4.1.36523.1.1.1.3.1.<i_environment>
number of calls in Connected state in environmentSippy 5.0
Environment-wide unit-specific calls number OIDs

SippyVendorActiveCallsEntry.<i_environment>.<i_vendor>

.1.3.6.1.4.1.36523.1.1.3.2.1.<i_environment>.<i_vendor>
number of Active calls of a Vendor in EnvironmentSippy 5.0
SippyVendorConnectedCallsEntry.<i_environment>.<i_vendor>

.1.3.6.1.4.1.36523.1.1.3.3.1.<i_environment>.<i_vendor>
number of Connected calls of a Vendor in EnvironmentSippy 5.0
SippyConnectionActiveCallsEntry.<i_environment>.<i_connection>

.1.3.6.1.4.1.36523.1.1.4.2.1.<i_environment>.<i_connection>
number of Active calls of a Connection in EnvironmentSippy 5.0
SippyConnectionConnectedCallsEntry.<i_environment>.<i_connection>

.1.3.6.1.4.1.36523.1.1.4.3.1.<i_environment>.<i_connection>
number of Connected calls of a Connection in EnvironmentSippy 5.0
SippyCustomerActiveCallsEntry.<i_environment>.<i_customer>

.1.3.6.1.4.1.36523.1.1.5.2.1.<i_environment>.<i_customer>
number of Active calls of a Customer in EnvironmentSippy 5.0
SippyCustomerConnectedCallsEntry.<i_environment>.<i_customer>

.1.3.6.1.4.1.36523.1.1.5.3.1.<i_environment>.<i_customer>
number of Connected calls of a Customer in EnvironmentSippy 5.0
SippyAccountActiveCallsEntry.<i_environment>.<i_account>

.1.3.6.1.4.1.36523.1.1.2.2.1.<i_environment>.<i_account>
number of Active calls of an Account in EnvironmentSippy 5.0
SippyAccountConnectedCallsEntry.<i_environment>.<i_account>

.1.3.6.1.4.1.36523.1.1.2.3.1.<i_environment>.<i_account>
number of Connected calls of an Account in Environment
Sippy 5.0


The following picture shows the latest version of SIPPY SNMP monitoring


Picture 1) Sippy SNMP

* will be available in the next release.


All of the attributes can be fetched with the snmpget command.


    A subtle note is the SippyEnvNAuthorizedCallsEntry, SippyEnvNRoutedCallsEntry, SippyEnvNConnectedCallsEntry, SippyEnvTotalCallsDurationEntry, SippyEnvNReceivedCallsEntry, and SippyEnvNOriginatedCallsEntry are accumulative. For instance, getting the X number for SippyEnvNConnectedCalls data means there are X Connected Calls until now, refer to BaseTime from now on. If the returned value is Y in 60 minutes later, it means there are (Y - X) new number of successful calls in the past 60 minutes.


Example;

The number of Connected Calls at BaseTime: X

The number of Connected Calls at (BaseTime + one hour): Y

So, the number of Connected Calls in the past one hour = Y - X


Calculate ACR / ASR by SNMP:

ACD - Average Call Duration

The formula for ACD is:

Total duration of answered calls (in seconds) / Total number of answered calls


In case of interest of the ACD for the past one hour, the values should be fetched two times with one hour interval:


At 10:00 AM:

$ snmpget -v2c -m ~ssp/etc/SIPPY-MIB.txt -c public 127.0.0.1 SippyEnvTotalCallsDurationEntry.1 SippyEnvNConnectedCallsEntry.1

SIPPY-MIB::SippyEnvTotalCallsDurationEntry.1 = Counter64: 19

SIPPY-MIB::SippyEnvNConnectedCallsEntry.1 = Counter64: 2

At 11:00 AM:

$ snmpget -v2c -m ~ssp/etc/SIPPY-MIB.txt -c public 127.0.0.1 SippyEnvTotalCallsDurationEntry.1 SippyEnvNConnectedCallsEntry.1

SIPPY-MIB::SippyEnvTotalCallsDurationEntry.1 = Counter64: 246

SIPPY-MIB::SippyEnvNConnectedCallsEntry.1 = Counter64: 7


In this particular example between 

CallsDuration = 246 - 19 = 227

ConnectedCalls = 7 - 2 = 5


ACD = (CallsDuration / ConnectedCalls) = 227 / 5 = 45.4


ASR - Average Seizure Ratio

This is the formula: (Successful Calls / Calls Attempts) * 100


At 10:00 AM:

$ snmpget -v2c -m ~ssp/etc/SIPPY-MIB.txt -c public 127.0.0.1 SippyEnvNReceivedCallsEntry.1 SippyEnvNConnectedCallsEntry.1

SIPPY-MIB::SippyEnvNReceivedCallsEntry.1 = Counter64: 6

SIPPY-MIB::SippyEnvNConnectedCallsEntry.1 = Counter64: 2


At 11:00 AM:

$ snmpget -v2c -m ~ssp/etc/SIPPY-MIB.txt -c public 127.0.0.1 SippyEnvNReceivedCallsEntry.1 SippyEnvNConnectedCallsEntry.1

SIPPY-MIB::SippyEnvNReceivedCallsEntry.1 = Counter64: 34

SIPPY-MIB::SippyEnvNConnectedCallsEntry.1 = Counter64: 19


Here, the Calls Attempts is 34 - 6 = 28, and the Successful Calls is 19 - 2 = 17

Therefore,

    ASR = (17 / 28) * 100 = % 60.71


The other types of ASR ratio such as routed ASR, Authorized ASR, and Originated ASR can be calculated with the same approach by the SippyEnvNRoutedCallsEntry, SippyEnvNAuthorizedCallsEntry, and SippyEnvNOriginatedCallsEntry data.