1<?php
2
3/*
4 * Sensor State discovery module for the CradlePoint WiPipe Platform
5 *
6 * © 2017 Chris A. Evans <thecityofguanyu@outlook.com>
7 *
8 * This program is free software: you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version.  Please see LICENSE.txt at the top level of
12 * the source code distribution for details.
13 */
14
15echo 'CradlePoint WiPipe';
16
17foreach ($pre_cache['wipipe_oids'] as $index => $entry) {
18    // Modem Connection Status
19    if ($entry['mdmStatus']) {
20        $cur_oid = '.1.3.6.1.4.1.20992.1.2.2.1.5.';
21        //Create State Index
22        $state_name = 'mdmStatus';
23        $states = [
24            ['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'established'],
25            ['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'establishing'],
26            ['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'ready'],
27            ['value' => 4, 'generic' => 2, 'graph' => 0, 'descr' => 'error'],
28            ['value' => 5, 'generic' => 2, 'graph' => 0, 'descr' => 'disconnected'],
29            ['value' => 6, 'generic' => 1, 'graph' => 0, 'descr' => 'disconnecting'],
30            ['value' => 7, 'generic' => 2, 'graph' => 0, 'descr' => 'suspended'],
31            ['value' => 8, 'generic' => 3, 'graph' => 0, 'descr' => 'empty'],
32            ['value' => 9, 'generic' => 3, 'graph' => 0, 'descr' => 'notconfigured'],
33            ['value' => 10, 'generic' => 1, 'graph' => 0, 'descr' => 'userstopped'],
34        ];
35        create_state_index($state_name, $states);
36
37        // Get Modem Model & Phone Number for description
38        $modemdesc = $entry['mdmDescr'];
39        $modemmdn = $entry['mdmMDN'];
40        $descr = 'mdmStatus - ' . $modemdesc . ' - ' . $modemmdn;
41        //Discover Sensors
42        discover_sensor($valid['sensor'], 'state', $device, $cur_oid . $index, $index, $state_name, $descr, 1, 1, null, null, null, null, $entry['mdmStatus'], 'snmp', $index);
43        //Create Sensor To State Index
44        create_sensor_to_state_index($device, $state_name, $index);
45    }
46}
47// Device Firmware Upgrade Status
48$upgradestatus = snmpwalk_cache_oid($device, 'devFWUpgradeStatus', [], 'WIPIPE-MIB');
49foreach ($upgradestatus as $index => $entry) {
50    $cur_oid = '.1.3.6.1.4.1.20992.1.1.4.';
51    //Create State Index
52    $state_name = 'devFWUpgradeStatus';
53    $states = [
54        ['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'idle'],
55        ['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'upgrading'],
56        ['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'uptodate'],
57        ['value' => 4, 'generic' => 1, 'graph' => 0, 'descr' => 'updateAvail'],
58        ['value' => 5, 'generic' => 2, 'graph' => 0, 'descr' => 'failure'],
59    ];
60    create_state_index($state_name, $states);
61
62    $descr = 'Firmware Upgrade Status';
63    //Discover Sensors
64    discover_sensor($valid['sensor'], 'state', $device, $cur_oid . $index, $index, $state_name, $descr, 1, 1, null, null, null, null, $entry['devFWUpgradeStatus'], 'snmp', $index);
65    //Create Sensor To State Index
66    create_sensor_to_state_index($device, $state_name, $index);
67}
68