diff --git a/doc/Extensions/Alerting.md b/doc/Extensions/Alerting.md
index fe4e51dab..3e1efa761 100644
--- a/doc/Extensions/Alerting.md
+++ b/doc/Extensions/Alerting.md
@@ -18,6 +18,8 @@ Table of Content:
- [Pushover](#transports-pushover)
- [Boxcar](#transports-boxcar)
- [Pushbullet](#transports-pushbullet)
+ - [Clickatell](#transports-clickatell)
+ - [PlaySMS](#transports-playsms)
- [Entities](#entities)
- [Devices](#entity-devices)
- [BGP Peers](#entity-bgppeers)
@@ -372,6 +374,38 @@ $config['alert']['transports']['pushbullet'] = 'MYFANCYACCESSTOKEN';
```
~~
+## Clickatell
+
+Clickatell provides a REST-API requiring an Authorization-Token and at least one Cellphone number.
+Please consult Clickatell's documentation regarding number formating.
+Here an example using 3 numbers, any amount of numbers is supported:
+
+~~
+```php
+$config['alert']['transports']['clickatell']['token'] = 'MYFANCYACCESSTOKEN';
+$config['alert']['transports']['clickatell']['to'][] = '+1234567890';
+$config['alert']['transports']['clickatell']['to'][] = '+1234567891';
+$config['alert']['transports']['clickatell']['to'][] = '+1234567892';
+```
+~~
+
+## PlaySMS
+
+PlaySMS is an OpenSource SMS-Gateway that can be used via their HTTP-API using a Username and WebService-Token.
+Please consult PlaySMS's documentation regarding number formating.
+Here an example using 3 numbers, any amount of numbers is supported:
+
+~~
+```php
+$config['alert']['transports']['playsms']['url'] = 'https://localhost/index.php?app=ws';
+$config['alert']['transports']['playsms']['user'] = 'user1';
+$config['alert']['transports']['playsms']['token'] = 'MYFANCYACCESSTOKEN';
+$config['alert']['transports']['playsms']['to'][] = '+1234567890';
+$config['alert']['transports']['playsms']['to'][] = '+1234567891';
+$config['alert']['transports']['playsms']['to'][] = '+1234567892';
+```
+~~
+
# 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/includes/alerts/transport.clickatell.php b/includes/alerts/transport.clickatell.php
new file mode 100644
index 000000000..a8d423487
--- /dev/null
+++ b/includes/alerts/transport.clickatell.php
@@ -0,0 +1,45 @@
+/* Copyright (C) 2015 Daniel Preussker
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see . */
+
+/**
+ * Clickatell REST-API Transport
+ * @author f0o
+ * @copyright 2015 f0o, LibreNMS
+ * @license GPL
+ * @package LibreNMS
+ * @subpackage Alerts
+ */
+
+$data = array("text" => $obj['title'], "to" => $opts['to']);
+$data = json_encode($data);
+$curl = curl_init('https://api.clickatell.com/rest/message');
+
+curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
+curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
+curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+curl_setopt($curl, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Content-Length: '.strlen($data),
+ 'Authorization: Bearer '.$opts['token'],
+));
+
+$ret = curl_exec($curl);
+$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+if( $code > 202 ) {
+ if( $debug ) {
+ var_dump($ret);
+ }
+ return false;
+}
+return true;
diff --git a/includes/alerts/transport.playsms.php b/includes/alerts/transport.playsms.php
new file mode 100644
index 000000000..d271fda9d
--- /dev/null
+++ b/includes/alerts/transport.playsms.php
@@ -0,0 +1,39 @@
+/* Copyright (C) 2015 Daniel Preussker
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see . */
+
+/**
+ * PlaySMS API Transport
+ * @author f0o
+ * @copyright 2015 f0o, LibreNMS
+ * @license GPL
+ * @package LibreNMS
+ * @subpackage Alerts
+ */
+
+$data = array("msg" => $obj['title'], "to" => implode(',',$opts['to']), "h" => $opts['token'], "u" => $opts['user']);
+$url = $opts['url'].'&'.http_build_query($data);
+$curl = curl_init($url);
+
+curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
+curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+
+$ret = curl_exec($curl);
+$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+if( $code > 202 ) {
+ if( $debug ) {
+ var_dump($ret);
+ }
+ return false;
+}
+return true;