SNMP support

The Simple Network Management Protocol (SNMP) is used to manage networks by monitoring and controlling devices connected via their IP addresses. It enables the observation of network performance, the identification of errors, and the collection of information for analysis.

A device that supports SNMP is referred to as an agent, and it holds information about its status in the form of objects. Each object has a unique identifier known as an OID (Object Identifier), which follows a numerical hierarchy, similar to the structure of an IP address but serving a different purpose. These OIDs, along with their descriptions, are stored in a MIB (Management Information Base) file, which defines the objects that can be managed through SNMP.

MIB-file

The information for OID (Object Identifier) identifiers to be collected from a device is described hierarchically within a MIB file. This hierarchy is represented by a sequence of numbers, where each dot (.) separates the different levels of the hierarchical structure, and each number identifies a specific branch or node.

By SNMP default, the OID follows the structure beginning with 1.3.6.1.4.1, which corresponds to the sequence iso.org.dod.internet.private.enterprises. Within this structure, organizations can have their own specific domain, assigned by IANA. ControlID, for instance, has the domain 49617, which branches out to .1 (accessControl). From this branch, further subdivisions can be defined as needed, totaling 10 additional sublevels that describe specific functionalities or data from the managed devices.

Nome OID Descrição
cidSystem .1 System
cidOperationMode .2 Operating Mode
cidAntipassback .3 Anti PassBack
cidNetwork .4 Network
cidBuzzer .5 Buzzer
cidSip .6 SIP
cidApplication .7 Application
cidStreaming .8 Streaming
cidAlarm .9 Alarm
cidSecbox .10 Secbox

The parameters that can be monitored are:

SYSTEM

Name OID Return Description
firmwareVersion .1 OCTET STRING Device firmware version
serialNumber .2 OCTET STRING Device serial number
hasProVersion .3 INTEGER
1: true
2: false
Checks if the device has a Pro license
loadAverage .4 OCTET STRING System load average
cpuUsage .5 OCTET STRING System CPU usage*
cpuTemperature .6 Unsigned32 CPU temperature
Unit: T * 1000 °C
dateAndTime .7 OCTET STRING Device date and time
ntpEnabled .8 INTEGER
1: True
2: False
NTP Enabled
ntpServer .9 OCTET STRING NTP Server(s)

Operating Mode

Name OID Return Description
isDeviceOnline .1 INTEGER
1: True
2: False
Checks if the device is online
devicePort .2 Unsigned32 Device Port

Anti PassBack

Name OID Return Description
antipassbackEnabled .1 INTEGER
1: True
2: False
Checks if antipassback is enabled
antipassbackTimeout .2 Unsigned32 Antipassback timeout value
Unit: Seconds
antipassbackMode .3 OCTET STRING Antipassback operating mode

Network

Name OID Return Description
dhcpEnabled .1 INTEGER
1: True
2: False
Checks if DHCP is enabled
duplexMode .2 OCTET STRING Device duplex mode
Options:
(Half, Full)

Buzzer

Name OID Return Description
audioNotIdentified .1 OCTET STRING Audio status for: Unidentified
Options:
(custom, default, disabled)
audioAuthorized .2 OCTET STRING Audio status for: Authorized
Options:
(custom, default, disabled)
audioNotAuthorized .3 OCTET STRING Audio status for: Unauthorized
Options:
(custom, default, disabled)
audioMaskPresent .4 OCTET STRING Audio status for: Mask present
Options:
(custom, default, disabled)
audioVolume .5 Unsigned32 Audio Message Volume

SIP

Name OID Callback Description
sidEnabled .1 INTEGER
1: True
2: False
Check if SIP is enabled
sipOperationMode .2 INTEGER 1: p2p
2: client
SIP operation mode
sipDialingMode .3 INTEGER SIP dialing mode
sipBranch .4 OCTET STRING SIP branch
sipServer .5 OCTET STRING SIP server address
sipAutoAnswerEnabled .6 INTEGER
1: True
2: False
Checks if SIP auto-answer is enabled
sipCallButtonEnabled .7 INTEGER
1: True
2: False
Checks if SIP call button is enabled
sipAutoCallId .8 OCTET STRING SIP auto call ID
sipMaxCallTime .9 Unsigned32 SIP maximum call time
Unit: Seconds
sipHasCustomAudio .10 INTEGER
1: True
2: False
Checks if SIP uses custom audio
sipKeepAliveInterval .11 Unsigned32 SIP keepalive interval
Unit: Seconds
sipMicVolume .12 Unsigned32 SIP microphone volume
sipSpeakerVolume .13 Unsigned32 SIP Speaker Volume
sipOpenDoorEnabled .14 INTEGER
1: True
2: True
Checks if SIP open door is enabled
sipInCall .15 INTEGER
1: True
2: False
Checks if user is in a call
sipRegisterTime .16 Unsigned32 Timeout value until connection to server is established
sipRegisterStatus .17 DisplayString SIP server connection status

Application

Name OID Return Description
appNumberOfUsers .1 Unsigned32 Number of users registered in application
appHasCompanyLogo .2 INTEGER
1: True
2: False
Checks if the device is using a custom logo
appQrCodeType .3 INTEGER
1: Alphanumeric
2: Numeric
Checks the type of QR code used on the device
appFacialIdentification .4 INTEGER
1: True
2: False
Checks if facial identification is enabled
appBiometricIdentification .5 INTEGER
1: True
2: False
Checks if biometric identification is enabled
appCardIdentification .6 INTEGER
1: True
2: False
Checks if card identification is enabled
appQrCodeIdentification .7 INTEGER
1: True
2: False
Checks if QR Code identification is enabled
appPinIdentification .8 INTEGER
1: True
2: False
Checks if PIN identification is enabled

Streaming

Name OID Return Description
onvifEnabled .1 INTEGER
1: True
2: False
Checks if ONVIF is enabled
onvifPort .2 Unsigned32 ONVIF port
rtspEnabled .3 INTEGER
1: True
2: False
Checks if RTSP is enabled
rtspPort .4 Unsigend32 RTSP port
rtspRgbIr .5 INTEGER
1: rgb
2: infrared
Checks which camera is being used
rtspCodec .6 OCTET STRING Codec used in RTSP
rtspResolution .7 OCTET STRING Resolution used in RTSP

Alarm

Name OID Return Description
alarmDoorSensorEnabled .1 INTEGER
1: True
2: False
Checks if the door alarm sensor is enabled
alarmDoorSensorDelay .2 Unsigned32 Door alarm sensor delay
Unit: Seconds
alarmForcedAccess .3 INTEGER
1: True
2: False
Checks if there was a forced access attempt
alarmPanicFingerEnabled .4 INTEGER
1: True
2: False
Checks if the panic button is enabled
alarmPanicFingerDelay .5 Unsigned32 Panic Button Delay
Unit: Seconds
alarmPanicCardEnabled .6 INTEGER
1: True
2: False
Checks if panic card is enabled
alarmDeviceViolationEnabled .7 INTEGER
1: True
2: False
Checks if device tampering was detected
alarmBuzzerEnabled .8 INTEGER
1: True
2: False
Checks if buzzer alarm is enabled
alarmPlayingTimeout .9 Unsigned32 Timeout for alarm to finish ringing
Unit: Seconds

Secbox

Name OID Return Description
secboxCount .1 Unsigned32 Number of secboxes
secboxExceptionMode .2 OCTET STRING Checks if an exception mode exists
secboxId .3 Unsigned32 Secbox ID
secboxEnabled .4 INTEGER
1: True
2: False
Checks if the secbox is enabled
secboxVersion .5 OCTET STRING Secbox firmware version
secboxRelayTimeout .6 Unsigned32 Secbox relay timeout
Unit: Milliseconds
secboxDoorEnabled .7 INTEGER
1: True
2: False
Checks if the Secbox door sensor is enabled
secboxDoorNormallyOpen .8 INTEGER
1: Normally Open
2: Normally Closed
Check wheter the door is normally open or closed
Optios:
{NormallyOpen, NormallyClosed}
secboxAutoCloseEnabled .9 INTEGER
1: True
2: False
Check wheter the auto-close feature is enabled

All of this data obtained can be acquired through the file CONTROLID-MIB.txt, made available by Control iD.

It is important to note that since this is a MIB file, it is not possible to make SNMP requests through (Postman). In other words, it is necessary to install a device management tool via SNMP, such as MIB Browser, for example. Within the SNMP management tool, simply execute the (snmpwalk) command on the chosen parameter to be returned. These parameters can be found in the branches created hierarchically.

OID equivalence examples

As previously stated, every OID data will contain the sequence 1.3.6.1.4.1.49617.1 at the beggining, which is equivalent to iso.org.dod.internet.private.enterprises.controlId.accessControl, and the number 0 at the end, that is equivalent to the OID scalar.

On the next two examples, the numbering in bold reffers to the data of interest.

firmwareVersion

  • 1.3.6.1.4.1.49617.1.1.1.0

cidSystem > firmwareVersion.

  • 1.3.6.1.4.1.49617.1.7.2.0

cidApplication > appHasCompanyLogo.

Enable/Disable SNMP via API

The function described below must be used to activate/deactivate SNMP on Control iD access control terminals.

POST /set_configuration.fcgi

Parameters

  • snmp_enabled (int): Defines whether to enable or disable the SNMP protocol

Example of request to activate the SNMP protocol

$.ajax({
    url: "/set_configuration.fcgi?session=" + session,
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({
        "snmp_agent": {
            snmp_enabled: "1"
        }"
    })
});

Example of request to disable the SNMP protocol

$.ajax({
    url: "/set_configuration.fcgi?session=" + session,
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({
        "snmp_agent": {
            snmp_enabled: "0"
        }"
    })
});