SIP_ENABLE_COUNTERS(3SIP) Session Initiation Protocol Library Functions
NAME
sip_enable_counters, sip_disable_counters, sip_get_counter_value -
counter operations
SYNOPSIS
cc [
flag... ]
file... -
lsip [
library... ]
#include <sip.h>
int sip_enable_counters(
int counter_group);
int sip_disable_counters(
int counter_group);
int sip_get_counter_value(
int group,
int counter,
void *counterval,
size_t counterlen);
DESCRIPTION
The
sip_enable_counters() function enables the measurement and
counting of the selected counter group. The only allowed value for
the
counter_group is
SIP_TRAFFIC_COUNTERS, which is defined in
<sip.h>. Once enabled, the SIP stack starts measuring end-to-end SIP
traffic. The SIP stack keeps track of:
o the number of SIP requests sent and received (broken down
by methods),
o the number of SIP responses sent and received (broken down
by response codes), and
o the number of bytes sent and received.
The following counters are defined in
<sip.h> for the
SIP_TRAFFIC_COUNTERS group. These counter values are retrieved using
the
sip_get_counter_value() function.
SIP_TOTAL_BYTES_RCVD
SIP_TOTAL_BYTES_SENT
SIP_TOTAL_REQ_RCVD
SIP_TOTAL_REQ_SENT
SIP_TOTAL_RESP_RCVD
SIP_TOTAL_RESP_SENT
SIP_ACK_REQ_RCVD
SIP_ACK_REQ_SENT
SIP_BYE_REQ_RCVD
SIP_BYE_REQ_SENT
SIP_CANCEL_REQ_RCVD
SIP_CANCEL_REQ_SENT
SIP_INFO_REQ_RCVD
SIP_INFO_REQ_SENT
SIP_INVITE_REQ_RCVD
SIP_INVITE_REQ_SENT
SIP_NOTIFY_REQ_RCVD
SIP_NOTIFY_REQ_SENT
SIP_OPTIONS_REQ_RCVD
SIP_OPTIONS_REQ_SENT
SIP_PRACK_REQ_RCVD
SIP_PRACK_REQ_SENT
SIP_REFER_REQ_RCVD
SIP_REFER_REQ_SENT
SIP_REGISTER_REQ_RCVD
SIP_REGISTER_REQ_SENT
SIP_SUBSCRIBE_REQ_RCVD
SIP_SUBSCRIBE_REQ_SENT
SIP_UPDATE_REQ_RCVD
SIP_UPDATE_REQ_SENT
SIP_1XX_RESP_RCVD
SIP_1XX_RESP_SENT
SIP_2XX_RESP_RCVD
SIP_2XX_RESP_SENT
SIP_3XX_RESP_RCVD
SIP_3XX_RESP_SENT
SIP_4XX_RESP_RCVD
SIP_4XX_RESP_SENT
SIP_5XX_RESP_RCVD
SIP_5XX_RESP_SENT
SIP_6XX_RESP_RCVD
SIP_6xx_RESP_SENT
SIP_COUNTER_START_TIME /* records time when counting was enabled */
SIP_COUNTER_STOP_TIME /* records time when counting was disabled */
All of the above counters are defined to be
uint64_t, except for
SIP_COUNTER_START_TIME and
SIP_COUNTER_STOP_TIME, which are defined
to be
time_t.
The
sip_disable_counters() function disables measurement and counting
for the specified
counter_group. When disabled, the counter values
are not reset and are retained until the measurement is enabled
again. Calling
sip_enable_counters() again would reset all counter
values to zero and counting would start afresh.
The
sip_get_counter_value() function retrieves the value of the
specified counter within the specified counter group. The value is
copied to the user provided buffer,
counterval, of length
counterlen.
For example, after the following call,
invite_rcvd would have the
correct value.
uint64_t invite_rcvd;
sip_get_counter_value(SIP_TRAFFIC_COUNTERS, SIP_INVITE_REQ_RCVD,
&invite_rcvd, sizeof (uint64_t));
RETURN VALUES
Upon successful completion,
sip_enable_counters() and
sip_disable_counters() return 0. They will return
EINVAL if an
incorrect group is specified.
Upon successful completion,
sip_get_counter_value() returns 0. It
returns
EINVAL if an incorrect counter name or counter size is
specified, or if
counterval is
NULL.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
SEE ALSO
attributes(7) January 11, 2008 SIP_ENABLE_COUNTERS(3SIP)