mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
feature: Added Cisco Spark Transport #3182
* feature: Added Cisco Spark Transport * updated sql to be compliant
This commit is contained in:
committed by
Neil Lathwood
parent
ab6f78d1fe
commit
9b32fb2b91
@@ -28,6 +28,7 @@ Table of Content:
|
|||||||
- [Canopsis](#transports-canopsis)
|
- [Canopsis](#transports-canopsis)
|
||||||
- [osTicket](#transports-osticket)
|
- [osTicket](#transports-osticket)
|
||||||
- [Microsoft Teams](#transports-msteams)
|
- [Microsoft Teams](#transports-msteams)
|
||||||
|
- [Cisco Spark](#transports-ciscospark)
|
||||||
- [Entities](#entities)
|
- [Entities](#entities)
|
||||||
- [Devices](#entity-devices)
|
- [Devices](#entity-devices)
|
||||||
- [BGP Peers](#entity-bgppeers)
|
- [BGP Peers](#entity-bgppeers)
|
||||||
@@ -573,6 +574,30 @@ $config['alert']['transports']['msteams']['url'] = 'https://outlook.office365.co
|
|||||||
```
|
```
|
||||||
~
|
~
|
||||||
|
|
||||||
|
## <a name="transports-ciscospark">Cisco Spark</a>
|
||||||
|
|
||||||
|
[Using a proxy?](../Support/Configuration.md#proxy-support)
|
||||||
|
|
||||||
|
|
||||||
|
Cisco Spark. LibreNMS can send alerts to a Cisco Spark room. To make this possible you need to have a RoomID and a token.
|
||||||
|
|
||||||
|
For more information about Cisco Spark RoomID and token, take a look here :
|
||||||
|
https://developer.ciscospark.com/getting-started.html
|
||||||
|
https://developer.ciscospark.com/resource-rooms.html
|
||||||
|
|
||||||
|
To configure the transport, go to:
|
||||||
|
|
||||||
|
Global Settings -> Alerting Settings -> Cisco Spark transport.
|
||||||
|
|
||||||
|
This can also be done manually in config.php :
|
||||||
|
|
||||||
|
~
|
||||||
|
```php
|
||||||
|
$config['alert']['transports']['ciscospark']['token'] = '1234567890QWERTYUIOP';
|
||||||
|
$config['alert']['transports']['ciscospark']['roomid'] = '1234567890QWERTYUIOP';
|
||||||
|
```
|
||||||
|
~
|
||||||
|
|
||||||
# <a name="entities">Entities
|
# <a name="entities">Entities
|
||||||
|
|
||||||
Entities as described earlier are based on the table and column names within the database, if you are unsure of what the entity is you want then have a browse around inside MySQL using `show tables` and `desc <tablename>`.
|
Entities as described earlier are based on the table and column names within the database, if you are unsure of what the entity is you want then have a browse around inside MySQL using `show tables` and `desc <tablename>`.
|
||||||
|
|||||||
@@ -1122,6 +1122,38 @@ echo '
|
|||||||
<input id="msteams_url" class="form-control" type="text" name="global-config-input" value="'.$msteams_url['config_value'].'" data-config_id="'.$msteams_url['config_id'].'">
|
<input id="msteams_url" class="form-control" type="text" name="global-config-input" value="'.$msteams_url['config_value'].'" data-config_id="'.$msteams_url['config_id'].'">
|
||||||
<span class="form-control-feedback">
|
<span class="form-control-feedback">
|
||||||
<i class="fa" aria-hidden="true"></i>
|
<i class="fa" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>';
|
||||||
|
$ciscospark_token = get_config_by_name('alert.transports.ciscospark.token');
|
||||||
|
$ciscospark_roomid = get_config_by_name('alert.transports.ciscospark.roomid');
|
||||||
|
echo '
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a data-toggle="collapse" data-parent="#accordion" href="#ciscospark_transport_expand"><i class="fa fa-caret-down"></i> Cisco Spark transport</a> <button name="test-alert" id="test-alert" type="button" data-transport="ciscospark" class="btn btn-primary btn-xs pull-right">Test transport</button>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="ciscospark_transport_expand" class="panel-collapse collapse">
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="form-group has-feedback">
|
||||||
|
<label for="ciscospark_token" class="col-sm-4 control-label">Cisco Spark API Token</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input id="ciscospark_token" class="form-control" type="text" name="global-config-input" value="'.$ciscospark_token['config_value'].'" data-config_id="'.$ciscospark_token['config_id'].'">
|
||||||
|
<span class="form-control-feedback">
|
||||||
|
<i class="fa" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group has-feedback">
|
||||||
|
<label for="ciscospark_roomid" class="col-sm-4 control-label">Cisco Spark RoomID</label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<input id="ciscospark_roomid" class="form-control" type="text" name="global-config-input" value="'.$ciscospark_roomid['config_value'].'" data-config_id="'.$ciscospark_roomid['config_id'].'">
|
||||||
|
<span class="form-control-feedback">
|
||||||
|
<i class="fa" aria-hidden="true"></i>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
37
includes/alerts/transport.ciscospark.php
Normal file
37
includes/alerts/transport.ciscospark.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* LibreNMS
|
||||||
|
*
|
||||||
|
* Copyright (c) 2017 Søren Friis Rosiak <sorenrosiak@gmail.com>
|
||||||
|
* This program is free software: you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
* option) any later version. Please see LICENSE.txt at the top level of
|
||||||
|
* the source code distribution for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$token = $opts['token'];
|
||||||
|
$roomId = $opts['roomid'];
|
||||||
|
$text = strip_tags($obj['msg']);
|
||||||
|
$data = array(
|
||||||
|
'roomId' => $roomId,
|
||||||
|
'text' => $text
|
||||||
|
);
|
||||||
|
$curl = curl_init();
|
||||||
|
set_curl_proxy($curl);
|
||||||
|
curl_setopt($curl, CURLOPT_URL, 'https://api.ciscospark.com/v1/messages');
|
||||||
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
||||||
|
'Content-type' => 'application/json',
|
||||||
|
'Expect:',
|
||||||
|
'Authorization: Bearer '.$token
|
||||||
|
));
|
||||||
|
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
||||||
|
$ret = curl_exec($curl);
|
||||||
|
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||||
|
|
||||||
|
if ($code != 200) {
|
||||||
|
var_dump("Cisco Spark returned Error, retry later");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
1
sql-schema/158.sql
Normal file
1
sql-schema/158.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
INSERT INTO config (`config_name`, `config_value`, `config_default`, `config_descr`, `config_group`, `config_group_order`, `config_sub_group`, `config_sub_group_order`, `config_hidden`, `config_disabled`) VALUES ('alert.transports.ciscospark.token','','','Cisco Spark API Token','alerting',0, 'transports', 0, '0', '0'), ('alert.transports.ciscospark.roomid','','','Cisco Spark RoomID','alerting',0, 'transports', 0, '0', '0');
|
||||||
Reference in New Issue
Block a user