mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
newdevice: Added additional sensors to Axis camera (#6827)
newdevice: Added additional sensors to Axis camera (#6827)
This commit is contained in:
parent
0ede9525b0
commit
3a62c83642
1
html/images/logos/axis.svg
Normal file
1
html/images/logos/axis.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 190.5 69.5"><path fill-rule="evenodd" fill="#222" d="M79.6 12.1h9.2l.1.1v40l-.1.1h-9.2c-.1 0-.1-.1-.1-.1v-40s0-.1.1-.1zM76.6 12.1s.1.1 0 .2L64.4 32.1c-.1.1-.1.3 0 .5l12.3 19.5c.1.1 0 .2 0 .2H65.3c-.1 0-.2-.1-.3-.1l-7.3-12.1c-.1-.1-.1-.1-.2 0l-6.9 12c-.1.1-.2.2-.3.2H39.5c-.2 0-.2-.1-.1-.1l12.5-20.7c.2-.2.2-.4 0-.7l-11-18.5c-.1-.1 0-.2 0-.2H52c.1 0 .2.1.2.2l6.7 11.2c.1.1.1.1.2 0L66 12.3c0-.1.1-.2.2-.2h10.4z"/><path fill-rule="evenodd" fill="#FBDD32" d="M155.3.7l33.1 51.7h-28.7l-10.9-16.9h-1.3l-.8-1.2h-12.9L155.3.7z"/><path fill-rule="evenodd" d="M153.2 32.6l12.7 19.8h-40.4l12.7-19.8h15z"/><path fill-rule="evenodd" fill="#C74A43" d="M149.9 32.6l12.8 19.8h-40.5l12.7-19.8h15z"/><path fill-rule="evenodd" fill="#222" d="M35.9 12.1h-8.6c-.1 0-.2.1-.2.2l-25.8 40s0 .1.1.1h10.4c.1 0 .2 0 .2-.1l3.5-5.5c.1 0 .1-.1.2-.1h11c.1 0 .1.1.1.1v5.4c0 .1 0 .2.1.2h9l.1-.1v-40c.1-.1 0-.2-.1-.2zm-9 26.7v.1h-6.8c-.1 0-.1 0-.1-.1l7.2-11.5-.3 11.5zM94.3 52.4h12.2c1.5-.1 3.1-.3 4.5-.8 5.6-1.8 8.6-7.3 8.6-12.1 0-7.6-5.9-10.2-12.9-13.2-1.2-.5-2.7-1.3-2.7-3 0-1.6 1.6-2.5 3.4-2.5h9.5c.1 0 .1 0 .1-.1V12c0-.1 0-.1-.1-.1h-10c-8.3 0-13.3 4.9-13.3 11.8 0 6 3.8 9 9.4 11.3 3.9 1.5 6.5 2.2 6.5 5.4 0 1.6-1 3.3-3.1 3.3H94.3v8.4c0 .3.1.3 0 .3zM9.4 67.3c-1.1.5-2 .8-3.2.8-3.2 0-4.7-2-4.7-3.9C1.6 62 3.3 60 6.4 60c1.2 0 2.2.2 3 .7v1.8c-.9-.4-1.8-.8-2.7-.8-1.8 0-3 1-3 2.4 0 1.3 1.2 2.3 2.9 2.3 1.1 0 1.8-.2 3-.8v1.7h-.2zM21 68c-3 0-4.6-2-4.6-3.9 0-2 1.6-4.1 4.6-4.1 3.1 0 4.6 2.2 4.6 4.1 0 2-1.7 3.9-4.6 3.9zm0-6.3c-1.5 0-2.5 1-2.5 2.4s1 2.3 2.5 2.3 2.5-.9 2.5-2.3-1-2.4-2.5-2.4zM39.5 60.1h1.6v7.8h-1.9v-4.8L37 65.5h-.2l-2.2-2.4v4.8h-2v-7.8h1.6l2.7 3 2.6-3zM55.9 60.1h1.8v7.8h-2v-4.8l-2.2 2.4h-.3L51 63.1v4.8h-2v-7.8h1.8l2.6 3 2.5-3zM73.1 60.1v4.5c0 2.5-1.9 3.4-4.1 3.4-2.3 0-3.9-1-3.9-3.4v-4.5h2v4.5c0 1.1.9 1.8 2 1.8s2.1-.4 2.1-1.9v-4.4h1.9zM88.5 67.9h-1.6L82.4 63v4.9h-2v-7.8h1.9l4.2 4.9v-4.9h2v7.8zM96.2 67.9h2v-7.8h-2v7.8zM112.6 67.3c-1.1.5-2 .8-3.2.8-3.1 0-4.7-2-4.7-3.9 0-2.1 1.8-4.1 4.8-4.1 1.2 0 2.2.2 3 .7v1.8c-.9-.4-1.8-.8-2.7-.8-1.8 0-3 1-3 2.4 0 1.3 1.2 2.3 2.9 2.3 1.1 0 1.8-.2 3-.8v1.6h-.1zM127 67.9h-2.1l-.7-1.5h-3.6l-.7 1.5h-2.1l3.2-7.8h2.4l3.6 7.8zm-4.7-5.9l-1.1 3.1h2.4l-1.3-3.1zM138.7 61.6h-2.8v6.3h-2.1v-6.3H131v-1.5h7.7v1.5zM144.9 67.9h2v-7.8h-2v7.8zM157.6 68c-3 0-4.6-2-4.6-3.9 0-2 1.5-4.1 4.6-4.1 3 0 4.6 2.2 4.6 4.1 0 2-1.7 3.9-4.6 3.9zm0-6.3c-1.5 0-2.5 1-2.5 2.4s1 2.3 2.5 2.3 2.5-.9 2.5-2.3-1-2.4-2.5-2.4zM176.2 67.9h-1.6l-4.5-4.9v4.9h-2v-7.8h1.9l4.3 4.9v-4.9h1.9v7.8zM188 62.2c-1.2-.5-1.9-.8-2.6-.8-.7 0-1.1.3-1.1.7 0 1.2 4.1.9 4.1 3.6 0 1.4-1.3 2.3-3.1 2.3-1.4 0-2.1-.3-3-.8v-1.6c1.2.8 1.9 1 2.7 1 .8 0 1.2-.2 1.2-.7 0-1.3-4.1-.9-4.1-3.6 0-1.4 1.2-2.3 3.1-2.3.9 0 1.6.2 2.7.7v1.5h.1z"/></svg>
|
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB |
1
html/images/os/axis.svg
Normal file
1
html/images/os/axis.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 71 54"><path fill-rule="evenodd" fill="#FBDD32" d="M35.8.7l33.1 51.7H40.2L29.3 35.5H28l-.8-1.2H14.3L35.8.7z"/><path fill-rule="evenodd" d="M33.7 32.6l12.7 19.8H6l12.7-19.8h15z"/><path fill-rule="evenodd" fill="#C74A43" d="M30.4 32.6l12.8 19.8H2.7l12.7-19.8h15z"/></svg>
|
After Width: | Height: | Size: 355 B |
@ -2,5 +2,11 @@ os: axiscam
|
||||
text: 'AXIS Network Camera'
|
||||
type: appliance
|
||||
icon: axis
|
||||
mib_dir:
|
||||
- axis
|
||||
discovery:
|
||||
- sysDescr_regex: '/AXIS .* (Network Camera|Video Server|Network Video Encoder)/'
|
||||
over:
|
||||
- { graph: device_bits, text: Traffic }
|
||||
- { graph: device_temperature, text: 'Device Temperature' }
|
||||
- { graph: device_state, text: 'Device State' }
|
||||
|
83
includes/discovery/sensors/state/axiscam.inc.php
Normal file
83
includes/discovery/sensors/state/axiscam.inc.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
echo 'AXIS States';
|
||||
|
||||
// Temp Sensor Status
|
||||
$oids_tmp = snmpwalk_cache_multi_oid($device, 'tempSensorTable', array(), 'AXIS-VIDEO-MIB');
|
||||
$cur_oid = '.1.3.6.1.4.1.368.4.1.3.1.3.1.';
|
||||
|
||||
// Exclude from $oids content .common string
|
||||
foreach ($oids_tmp as $key_oids_tmp => $val_oids_tmp) {
|
||||
$oids[str_replace('common.', '', $key_oids_tmp)] = $val_oids_tmp;
|
||||
}
|
||||
|
||||
if (is_array($oids)) {
|
||||
//Create State Index
|
||||
$state_name = 'tempSensorStatusState';
|
||||
$state_index_id = create_state_index($state_name);
|
||||
|
||||
//Create State Translation
|
||||
if ($state_index_id) {
|
||||
$states = array(
|
||||
array($state_index_id,'Normal',0,1,0) ,
|
||||
array($state_index_id,'Failed',0,2,2) ,
|
||||
array($state_index_id,'Out Of Boundary',0,3,2) ,
|
||||
);
|
||||
foreach ($states as $value) {
|
||||
$insert = array(
|
||||
'state_index_id' => $value[0],
|
||||
'state_descr' => $value[1],
|
||||
'state_draw_graph' => $value[2],
|
||||
'state_value' => $value[3],
|
||||
'state_generic_value' => $value[4]
|
||||
);
|
||||
dbInsert($insert, 'state_translations');
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($oids as $index => $entry) {
|
||||
//Discover Sensors
|
||||
discover_sensor($valid['sensor'], 'state', $device, $cur_oid.$index, $index, $state_name, 'Temperature Sensor '.$index, '1', '1', null, null, null, null, $entry['tempSensorStatus'], 'snmp', $index);
|
||||
|
||||
//Create Sensor To State Index
|
||||
create_sensor_to_state_index($device, $state_name, $index);
|
||||
}
|
||||
}
|
||||
|
||||
// Storage Status
|
||||
$oids = snmpwalk_cache_multi_oid($device, 'storageTable', array(), 'AXIS-VIDEO-MIB');
|
||||
$cur_oid = '.1.3.6.1.4.1.368.4.1.8.1.3.';
|
||||
|
||||
if (is_array($oids)) {
|
||||
//Create State Index
|
||||
$state_name = 'storageDisruptionDetectedState';
|
||||
$state_index_id = create_state_index($state_name);
|
||||
|
||||
//Create State Translation
|
||||
if ($state_index_id) {
|
||||
$states = array(
|
||||
array($state_index_id,'Normal',0,1,0) ,
|
||||
array($state_index_id,'Failed',0,2,2) ,
|
||||
);
|
||||
foreach ($states as $value) {
|
||||
$insert = array(
|
||||
'state_index_id' => $value[0],
|
||||
'state_descr' => $value[1],
|
||||
'state_draw_graph' => $value[2],
|
||||
'state_value' => $value[3],
|
||||
'state_generic_value' => $value[4]
|
||||
);
|
||||
dbInsert($insert, 'state_translations');
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($oids as $index => $entry) {
|
||||
//Discover Sensors
|
||||
discover_sensor($valid['sensor'], 'state', $device, $cur_oid.$index, $index, $state_name, 'Storage Status: ' .$entry['storageName'], '1', '1', null, null, null, null, $entry['storageDisruptionDetected'], 'snmp', $index);
|
||||
|
||||
//Create Sensor To State Index
|
||||
create_sensor_to_state_index($device, $state_name, $index);
|
||||
}
|
||||
}
|
||||
|
||||
unset($oids);
|
19
includes/discovery/sensors/temperature/axiscam.inc.php
Normal file
19
includes/discovery/sensors/temperature/axiscam.inc.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
echo 'AXIS Temperatures ';
|
||||
|
||||
// Temp Sensor Status
|
||||
$oids_tmp = snmpwalk_cache_multi_oid($device, 'tempSensorTable', array(), 'AXIS-VIDEO-MIB');
|
||||
$cur_oid = '.1.3.6.1.4.1.368.4.1.3.1.4.1.';
|
||||
|
||||
// Exclude from $oids content .common string
|
||||
foreach ($oids_tmp as $key_oids_tmp => $val_oids_tmp) {
|
||||
$oids[str_replace('common.', '', $key_oids_tmp)] = $val_oids_tmp;
|
||||
}
|
||||
|
||||
foreach (array_keys($oids) as $index) {
|
||||
$current = $cur_oid[$index]['tempSensorValue'];
|
||||
$oid = $cur_oid.$index;
|
||||
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, 'axiscam', 'Temperature Sensor '.$index, '1', '1', '', '', '', '', $current);
|
||||
}
|
36
mibs/axis/AXIS-ROOT-MIB
Executable file
36
mibs/axis/AXIS-ROOT-MIB
Executable file
@ -0,0 +1,36 @@
|
||||
AXIS-ROOT-MIB DEFINITIONS ::= BEGIN
|
||||
|
||||
IMPORTS
|
||||
enterprises, MODULE-IDENTITY, OBJECT-IDENTITY
|
||||
FROM SNMPv2-SMI;
|
||||
|
||||
axis MODULE-IDENTITY
|
||||
LAST-UPDATED "201206081000Z"
|
||||
ORGANIZATION "Axis Communications AB"
|
||||
CONTACT-INFO
|
||||
"Postal: Axis Communications AB
|
||||
Emdalavagen 14
|
||||
SE-223 69 Lund
|
||||
Sweden
|
||||
Phone: +46 (0)46 272 18 00
|
||||
Fax: +46 (0)46 13 61 30
|
||||
E-Mail: info@axis.com
|
||||
Web: www.axis.com"
|
||||
DESCRIPTION
|
||||
"The AXIS root MIB."
|
||||
REVISION "201206081000Z"
|
||||
DESCRIPTION
|
||||
"Initial version of this MIB module."
|
||||
::= { enterprises 368 } -- assigned by IANA
|
||||
|
||||
products OBJECT-IDENTITY
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"products is the root OBJECT IDENTIFIER from which
|
||||
sysObjectID values are assigned. Actual values and
|
||||
respectively products sub-tree are defined in:
|
||||
AXIS-PRINTSERVER-MIB
|
||||
AXIS-VIDEO-MIB"
|
||||
::= { axis 1 }
|
||||
|
||||
END
|
576
mibs/axis/AXIS-VIDEO-MIB
Executable file
576
mibs/axis/AXIS-VIDEO-MIB
Executable file
@ -0,0 +1,576 @@
|
||||
AXIS-VIDEO-MIB DEFINITIONS ::= BEGIN
|
||||
|
||||
IMPORTS
|
||||
axis, products
|
||||
FROM AXIS-ROOT-MIB
|
||||
MODULE-COMPLIANCE, NOTIFICATION-GROUP, OBJECT-GROUP
|
||||
FROM SNMPv2-CONF -- RFC 2580
|
||||
Integer32, MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE,
|
||||
Unsigned32
|
||||
FROM SNMPv2-SMI -- RFC 2578
|
||||
SnmpAdminString
|
||||
FROM SNMP-FRAMEWORK-MIB; -- RFC 3411
|
||||
|
||||
video MODULE-IDENTITY
|
||||
LAST-UPDATED "201609231218Z"
|
||||
ORGANIZATION
|
||||
"Axis Communications AB"
|
||||
CONTACT-INFO
|
||||
"Postal: Axis Communications AB
|
||||
Emdalavagen 14
|
||||
SE-223 69 Lund
|
||||
Sweden
|
||||
Phone: +46 (0)46 272 18 00
|
||||
Fax: +46 (0)46 13 61 30
|
||||
E-Mail: info@axis.com
|
||||
Web: www.axis.com"
|
||||
DESCRIPTION
|
||||
"Axis Video MIB. Includes HW resources, such as power
|
||||
supplies, and traps for notifying management stations when
|
||||
something fails."
|
||||
REVISION "201609231218Z"
|
||||
DESCRIPTION
|
||||
"Updates in the compliance statement. Video products do not support all
|
||||
objects in general."
|
||||
REVISION "201212121202Z"
|
||||
DESCRIPTION
|
||||
"Initial version."
|
||||
::= { axis 4 }
|
||||
|
||||
-- Object identifiers: all video products return the videoBased OID
|
||||
--- Note: video cannot be used, since it is used above.
|
||||
videoBased OBJECT IDENTIFIER
|
||||
::= { products 1 }
|
||||
|
||||
videoObjects OBJECT IDENTIFIER
|
||||
::= { video 1 }
|
||||
|
||||
-- Power supplies
|
||||
powerSupplyTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF PowerSupplyEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Table containing information about all the power supplies
|
||||
present in the device."
|
||||
::= { videoObjects 1 }
|
||||
|
||||
powerSupplyEntry OBJECT-TYPE
|
||||
SYNTAX PowerSupplyEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A power supply entry containing information about
|
||||
a specific power supply."
|
||||
INDEX { powerSupplyType, powerSupplyId }
|
||||
::= { powerSupplyTable 1 }
|
||||
|
||||
PowerSupplyEntry ::= SEQUENCE {
|
||||
powerSupplyType INTEGER,
|
||||
powerSupplyId Unsigned32,
|
||||
powerSupplyStatus INTEGER
|
||||
}
|
||||
|
||||
powerSupplyType OBJECT-TYPE
|
||||
SYNTAX INTEGER { common(1), internal(2), external(3) }
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Indicates whether the power supply is mounted externally,
|
||||
e.g. in a rack, or internally."
|
||||
::= { powerSupplyEntry 1 }
|
||||
|
||||
powerSupplyId OBJECT-TYPE
|
||||
SYNTAX Unsigned32 (1..128)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used to identify a power supply. The powerSupplyId is unique
|
||||
within the type, i.e. there can not be two external power
|
||||
supplies with the same powerSupplyId. There can, however, be one
|
||||
external and one internal that have the same powerSupplyId."
|
||||
::= { powerSupplyEntry 2 }
|
||||
|
||||
powerSupplyStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER { ok(1), failure(2) }
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The status of a power supply."
|
||||
::= { powerSupplyEntry 3 }
|
||||
|
||||
--- Fans
|
||||
fanTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF FanEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Table containing information about all the fans in the product."
|
||||
::= { videoObjects 2 }
|
||||
|
||||
fanEntry OBJECT-TYPE
|
||||
SYNTAX FanEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A fan entry contains information about a specific fan."
|
||||
INDEX { fanType, fanId }
|
||||
::= { fanTable 1 }
|
||||
|
||||
FanEntry ::= SEQUENCE {
|
||||
fanType INTEGER,
|
||||
fanId Unsigned32,
|
||||
fanStatus INTEGER
|
||||
}
|
||||
|
||||
fanType OBJECT-TYPE
|
||||
SYNTAX INTEGER { common(1), housing(2), rack(3), cpu(4) }
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The type of the fan, i.e. where the fan is mounted."
|
||||
::= { fanEntry 1 }
|
||||
|
||||
fanId OBJECT-TYPE
|
||||
SYNTAX Unsigned32 (1..128)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used, together with fanType, to identify a fan. The fanId is
|
||||
unique within the type, i.e. there can not be two fans with the
|
||||
same fanType and the same fanId."
|
||||
::= { fanEntry 2 }
|
||||
|
||||
fanStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER { ok(1), failure(2) }
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The status of a fan."
|
||||
::= { fanEntry 3 }
|
||||
|
||||
--- Temperature Sensors
|
||||
tempSensorTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF TempSensorEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Table containing information about all the temperature
|
||||
sensors in the product."
|
||||
::= { videoObjects 3 }
|
||||
|
||||
tempSensorEntry OBJECT-TYPE
|
||||
SYNTAX TempSensorEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A temperature sensor entry contains information about a
|
||||
specific temperature sensor."
|
||||
INDEX { tempSensorType, tempSensorId }
|
||||
::= { tempSensorTable 1 }
|
||||
|
||||
TempSensorEntry ::= SEQUENCE {
|
||||
tempSensorType INTEGER,
|
||||
tempSensorId Unsigned32,
|
||||
tempSensorStatus INTEGER,
|
||||
tempSensorValue Integer32
|
||||
}
|
||||
|
||||
tempSensorType OBJECT-TYPE
|
||||
SYNTAX INTEGER { common(1), housing(2), rack(3), cpu(4) }
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The type of the temperature sensor, i.e. where it is mounted."
|
||||
::= { tempSensorEntry 1 }
|
||||
|
||||
tempSensorId OBJECT-TYPE
|
||||
SYNTAX Unsigned32 (1..128)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used, together with tempSensorType, to identify a temperature
|
||||
sensor. The tempSensorId is unique within the type, i.e. there
|
||||
can not be two sensors with the same tempSensorType and the same
|
||||
tempSensorId."
|
||||
::= { tempSensorEntry 2 }
|
||||
|
||||
tempSensorStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER { ok(1), failure(2), outOfBoundary(3) }
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The status of the temperature sensor."
|
||||
::= { tempSensorEntry 3 }
|
||||
|
||||
tempSensorValue OBJECT-TYPE
|
||||
SYNTAX Integer32 (-176..150)
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The temperature measured by a specific temperature sensor.
|
||||
The temperature is given in degrees Celsius."
|
||||
::= { tempSensorEntry 4 }
|
||||
|
||||
--- Physical video channels
|
||||
videoChannelTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF VideoChannelEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A list of video channel information, one entry for each
|
||||
physical video channel."
|
||||
::= { videoObjects 4 }
|
||||
|
||||
videoChannelEntry OBJECT-TYPE
|
||||
SYNTAX VideoChannelEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A video channel entry contains information about a specific
|
||||
physical video channel."
|
||||
INDEX { videoChannelId }
|
||||
::= { videoChannelTable 1 }
|
||||
|
||||
VideoChannelEntry ::= SEQUENCE {
|
||||
videoChannelId Unsigned32,
|
||||
videoSignalStatus INTEGER
|
||||
}
|
||||
|
||||
videoChannelId OBJECT-TYPE
|
||||
SYNTAX Unsigned32 (1..8192)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used to identify a physical video channel."
|
||||
::= { videoChannelEntry 1 }
|
||||
|
||||
videoSignalStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER { signalOk(1), noSignal(2) }
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The status of the video signal for a channel."
|
||||
::= { videoChannelEntry 2 }
|
||||
|
||||
--- Physical audio channels
|
||||
audioChannelTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF AudioChannelEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A list of audio signal information, one entry for each
|
||||
physical audio channel."
|
||||
::= { videoObjects 5 }
|
||||
|
||||
audioChannelEntry OBJECT-TYPE
|
||||
SYNTAX AudioChannelEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"An audio signal entry contains information about a specific
|
||||
physical audio signal."
|
||||
INDEX { audioChannelId }
|
||||
::= { audioChannelTable 1 }
|
||||
|
||||
AudioChannelEntry ::= SEQUENCE {
|
||||
audioChannelId Unsigned32,
|
||||
audioSignalStatus INTEGER
|
||||
}
|
||||
|
||||
audioChannelId OBJECT-TYPE
|
||||
SYNTAX Unsigned32 (1..8192)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used to identify a physical audio channel."
|
||||
::= { audioChannelEntry 1 }
|
||||
|
||||
audioSignalStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER { signalOk(1), noSignal(2) }
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The status of the audio signal for a channel."
|
||||
::= { audioChannelEntry 2 }
|
||||
|
||||
--- Open Casing Detector
|
||||
casingTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF CasingEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A list of casing status, one entry for each casing."
|
||||
::= { videoObjects 6 }
|
||||
|
||||
casingEntry OBJECT-TYPE
|
||||
SYNTAX CasingEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A casing entry contains information about a specific casing."
|
||||
INDEX { casingId }
|
||||
::= { casingTable 1 }
|
||||
|
||||
CasingEntry ::= SEQUENCE {
|
||||
casingId Unsigned32,
|
||||
casingName SnmpAdminString,
|
||||
casingStatus INTEGER
|
||||
}
|
||||
|
||||
casingId OBJECT-TYPE
|
||||
SYNTAX Unsigned32 (1..32)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used to identify a casing."
|
||||
::= { casingEntry 1 }
|
||||
|
||||
casingName OBJECT-TYPE
|
||||
SYNTAX SnmpAdminString (SIZE(0..32))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used to identify a casing. If the original string is longer than the
|
||||
specified length then the middle of the string will be replaced by '..'
|
||||
in such a way that the length of the string becomes 32 characters
|
||||
anyway."
|
||||
::= { casingEntry 2 }
|
||||
|
||||
casingStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER { closed(1), open(2) }
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The status of the casing."
|
||||
::= { casingEntry 3 }
|
||||
|
||||
--- { videoObjects 7 }, reserved for PTZ
|
||||
|
||||
--- Storage
|
||||
storageTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF StorageEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A list of storage media properties, one entry for each storage media."
|
||||
::= { videoObjects 8 }
|
||||
|
||||
storageEntry OBJECT-TYPE
|
||||
SYNTAX StorageEntry
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A storage media contains information about a specific medium."
|
||||
INDEX { storageId }
|
||||
::= { storageTable 1 }
|
||||
|
||||
StorageEntry ::= SEQUENCE {
|
||||
storageId Unsigned32,
|
||||
storageName SnmpAdminString,
|
||||
storageDisruptionDetected INTEGER
|
||||
}
|
||||
|
||||
storageId OBJECT-TYPE
|
||||
SYNTAX Unsigned32 (1..128)
|
||||
MAX-ACCESS not-accessible
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used to identify a storage."
|
||||
::= { storageEntry 1 }
|
||||
|
||||
storageName OBJECT-TYPE
|
||||
SYNTAX SnmpAdminString (SIZE(0..32))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Used to identify a storage medium. If the original string is longer
|
||||
than the specified length then the middle of the string will be
|
||||
replaced by '..' in such a way that the length of the string becomes 32
|
||||
characters anyway."
|
||||
::= { storageEntry 2 }
|
||||
|
||||
storageDisruptionDetected OBJECT-TYPE
|
||||
SYNTAX INTEGER { no(1), yes(2) }
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The status of the storage medium."
|
||||
::= { storageEntry 3 }
|
||||
|
||||
--- { videoObjects 9 }, reserved for tampering
|
||||
|
||||
-- Objects used in Private Enterprise Traps
|
||||
videoNotifications OBJECT IDENTIFIER
|
||||
::= { video 2 }
|
||||
|
||||
videoNotificationPrefix OBJECT IDENTIFIER
|
||||
::= { videoNotifications 0 }
|
||||
|
||||
alarmID OBJECT-TYPE
|
||||
SYNTAX Unsigned32
|
||||
MAX-ACCESS accessible-for-notify
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"This object indentifies a certain alarm event in a unique way.
|
||||
This means that there cannot be any alarm event that has the same ID
|
||||
during a finite period of time."
|
||||
::= { videoNotifications 1 }
|
||||
|
||||
alarmName OBJECT-TYPE
|
||||
SYNTAX SnmpAdminString
|
||||
MAX-ACCESS accessible-for-notify
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A string that identifies which kind of alarm this is. During a certain
|
||||
time it is possible that alarms with the same name occur."
|
||||
::= { videoNotifications 2 }
|
||||
|
||||
alarmText OBJECT-TYPE
|
||||
SYNTAX SnmpAdminString
|
||||
MAX-ACCESS accessible-for-notify
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Detailed description of the alarm."
|
||||
::= { videoNotifications 3 }
|
||||
|
||||
videoConformance OBJECT IDENTIFIER
|
||||
::= { video 3 }
|
||||
|
||||
videoGroups OBJECT IDENTIFIER
|
||||
::= { videoConformance 1 }
|
||||
|
||||
videoCompliances OBJECT IDENTIFIER
|
||||
::= { videoConformance 2 }
|
||||
|
||||
alarmNew NOTIFICATION-TYPE
|
||||
OBJECTS { alarmID, alarmName, alarmText }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"This notification is sent when a new Alarm is
|
||||
generated that has a corresponding cleared state."
|
||||
::= { videoNotificationPrefix 1 }
|
||||
|
||||
alarmCleared NOTIFICATION-TYPE
|
||||
OBJECTS { alarmID, alarmName, alarmText }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"This notification is generated when an alarm is
|
||||
cleared that was previous sent as a new Alarm."
|
||||
::= { videoNotificationPrefix 2 }
|
||||
|
||||
alarmSingle NOTIFICATION-TYPE
|
||||
OBJECTS { alarmID, alarmName, alarmText }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"This notification is sent when a new Alarm is
|
||||
generated that has no corresponding cleared state."
|
||||
::= { videoNotificationPrefix 3 }
|
||||
|
||||
-- Groups
|
||||
videoObjectGroup OBJECT-GROUP
|
||||
OBJECTS { powerSupplyStatus, fanStatus, tempSensorStatus,
|
||||
tempSensorValue, videoSignalStatus, audioSignalStatus,
|
||||
casingName, casingStatus, storageDisruptionDetected,
|
||||
storageName, alarmID, alarmName, alarmText }
|
||||
STATUS obsolete
|
||||
DESCRIPTION
|
||||
"A collection of video objects."
|
||||
::= { videoGroups 1 }
|
||||
|
||||
videoNotificationGroup NOTIFICATION-GROUP
|
||||
NOTIFICATIONS { alarmNew, alarmCleared, alarmSingle }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"A collection of video notifications."
|
||||
::= { videoGroups 2 }
|
||||
|
||||
tempSensorGroup OBJECT-GROUP
|
||||
OBJECTS { tempSensorStatus, tempSensorValue }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Objects related to Axis temperature sensors."
|
||||
::= { videoGroups 3 }
|
||||
|
||||
casingGroup OBJECT-GROUP
|
||||
OBJECTS { casingName, casingStatus }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Objects related to Axis casing."
|
||||
::= { videoGroups 4 }
|
||||
|
||||
storageGroup OBJECT-GROUP
|
||||
OBJECTS { storageDisruptionDetected, storageName }
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Objects related to Axis storage."
|
||||
::= { videoGroups 5 }
|
||||
|
||||
-- Compliance Statements
|
||||
videoComplianceRev2 MODULE-COMPLIANCE
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The compliance statement for Axis video entities."
|
||||
|
||||
MODULE -- this module
|
||||
|
||||
MANDATORY-GROUPS { videoNotificationGroup }
|
||||
|
||||
GROUP powerSupplyStatus
|
||||
DESCRIPTION
|
||||
"This group is mandatory for all AXIS video products that have
|
||||
redundant power supply for backup, for which it is possible to
|
||||
check whether it is still working."
|
||||
|
||||
GROUP fanStatus
|
||||
DESCRIPTION
|
||||
"This group is mandatory for all AXIS video products that have
|
||||
fans, for which the state can be obtained."
|
||||
|
||||
GROUP tempSensorGroup
|
||||
DESCRIPTION
|
||||
"This group is mandatory for all AXIS video products that have
|
||||
temperature sensors, for which a state can be obtained."
|
||||
|
||||
GROUP videoSignalStatus
|
||||
DESCRIPTION
|
||||
"This group is mandatory for all AXIS video products that have
|
||||
video cameras connected for which it is possible to check the
|
||||
connection state. Typically this is an encoder product."
|
||||
|
||||
GROUP audioSignalStatus
|
||||
DESCRIPTION
|
||||
"This group is mandatory for all AXIS video products to which a
|
||||
a microphone can be connected, for which the state can be
|
||||
detected."
|
||||
|
||||
GROUP casingGroup
|
||||
DESCRIPTION
|
||||
"This group is mandatory for all AXIS video products that have
|
||||
a casing box, for which it is possible to check the status."
|
||||
|
||||
GROUP storageGroup
|
||||
DESCRIPTION
|
||||
"This group is mandatory for all AXIS video products that have a
|
||||
storage device connected and for which it is possible to check the
|
||||
state."
|
||||
|
||||
::= { videoCompliances 2 }
|
||||
|
||||
videoCompliance MODULE-COMPLIANCE
|
||||
STATUS obsolete
|
||||
DESCRIPTION
|
||||
"The compliance statement in a previous version of this MIB for Axis
|
||||
video entities."
|
||||
|
||||
MODULE -- this module
|
||||
|
||||
MANDATORY-GROUPS { videoObjectGroup }
|
||||
|
||||
GROUP videoNotificationGroup
|
||||
DESCRIPTION
|
||||
"This group doesn't need to be supported."
|
||||
|
||||
::= { videoCompliances 1 }
|
||||
|
||||
END -- end of module AXIS-VIDEO-MIB.
|
Loading…
Reference in New Issue
Block a user