diff --git a/doc/Extensions/Alerting.md b/doc/Extensions/Alerting.md index 95777ce7c2..6658380e4b 100644 --- a/doc/Extensions/Alerting.md +++ b/doc/Extensions/Alerting.md @@ -28,6 +28,7 @@ Table of Content: - [Canopsis](#transports-canopsis) - [osTicket](#transports-osticket) - [Microsoft Teams](#transports-msteams) + - [Cisco Spark](#transports-ciscospark) - [Entities](#entities) - [Devices](#entity-devices) - [BGP Peers](#entity-bgppeers) @@ -573,6 +574,30 @@ $config['alert']['transports']['msteams']['url'] = 'https://outlook.office365.co ``` ~ +## Cisco Spark + +[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'; +``` +~ + # 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 `. diff --git a/html/pages/settings/alerting.inc.php b/html/pages/settings/alerting.inc.php index c9c66542b2..483bcc9c1f 100644 --- a/html/pages/settings/alerting.inc.php +++ b/html/pages/settings/alerting.inc.php @@ -1122,6 +1122,38 @@ echo ' + + + + + '; +$ciscospark_token = get_config_by_name('alert.transports.ciscospark.token'); +$ciscospark_roomid = get_config_by_name('alert.transports.ciscospark.roomid'); +echo ' +
+
+

+ Cisco Spark transport +

+
+
+
+
+ +
+ + +
+
+
+ +
+ +
diff --git a/includes/alerts/transport.ciscospark.php b/includes/alerts/transport.ciscospark.php new file mode 100644 index 0000000000..73a31ba299 --- /dev/null +++ b/includes/alerts/transport.ciscospark.php @@ -0,0 +1,37 @@ +/* + * LibreNMS + * + * Copyright (c) 2017 Søren Friis Rosiak + * 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; diff --git a/sql-schema/158.sql b/sql-schema/158.sql new file mode 100644 index 0000000000..6cbd278762 --- /dev/null +++ b/sql-schema/158.sql @@ -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');