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.
appHasCompanyLogo
- 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"
}"
})
});