diff --git a/config/config.template.ini b/config/config.template.ini
index 3be9c60..ba55ef3 100644
--- a/config/config.template.ini
+++ b/config/config.template.ini
@@ -126,6 +126,7 @@ BosMon = 0
firEmergency = 0
jsonSocket = 0
notifyMyAndroid = 0
+Sms77 = 0
# for developing template-module
template = 0
@@ -301,6 +302,24 @@ phonenumber1 = 0160321654987
# ! DO NOT USE ANY UMLAUT !
text1 = Rueckruf Leitstelle!
+
+[Sms77]
+# SMS77 configuration
+# Login Username
+user =
+
+# Password or API Key
+password =
+
+# Receiver singlenumber or groupname from adressbook
+to =
+
+# Sender number or name
+from =
+
+# Type of Message (see https://www.sms77.de/funktionen/smstypen and https://www.sms77.de/funktionen/http-api)
+type = quality
+
#####################
##### Not ready yet #
#####################
diff --git a/plugins/Sms77/Sms77.py b/plugins/Sms77/Sms77.py
new file mode 100644
index 0000000..22e3f54
--- /dev/null
+++ b/plugins/Sms77/Sms77.py
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+# -*- coding: cp1252 -*-
+
+"""
+SMS77-Plugin to send FMS-, ZVEI- and POCSAG - messages to SMS77
+
+@author: Ricardo Krippner
+
+@requires: SMS77-Configuration has to be set in the config.ini
+"""
+
+import time
+import logging # Global logger
+import httplib #for the HTTP request
+import urllib
+from includes import globals # Global variables
+
+from includes.helper import timeHandler
+from includes.helper import configHandler
+
+##
+#
+# onLoad (init) function of plugin
+# will be called one time by the pluginLoader on start
+#
+def onLoad():
+ """
+ While loading the plugins by pluginLoader.loadPlugins()
+ this onLoad() routine is called one time for initialize the plugin
+
+ @requires: nothing
+
+ @return: nothing
+ """
+ # nothing to do for this plugin
+ return
+
+
+##
+#
+# Main function of SMS77-plugin
+# will be called by the alarmHandler
+#
+def run(typ,freq,data):
+ """
+ This function is the implementation of the Sms77-Plugin.
+ It will send the data to Sms77 API
+
+ @type typ: string (FMS|ZVEI|POC)
+ @param typ: Typ of the dataset
+ @type data: map of data (structure see interface.txt)
+ @param data: Contains the parameter
+ @type freq: string
+ @keyword freq: frequency of the SDR Stick
+
+ @requires: Sms77-Configuration has to be set in the config.ini
+
+ @return: nothing
+ """
+ try:
+ if configHandler.checkConfig("Sms77"): #read and debug the config
+
+ try:
+
+ #
+ # Sms77-Request
+ #
+ logging.debug("send Sms77 %s", typ)
+
+ conn = httplib.HTTPSConnection("gateway.sms77.de:443")
+ conn.request("POST", "",
+ urllib.urlencode({
+ "u": globals.config.get("Sms77", "user"),
+ "p": globals.config.get("Sms77", "password"),
+ "to": globals.config.get("Sms77", "to"),
+ "from": globals.config.get("Sms77", "from"),
+ "type": globals.config.get("Sms77", "type"),
+ "text": data["description"]+"
"+data["msg"].replace(";", "
")
+ }),{"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"})
+
+ except:
+ logging.error("cannot send SMS77 request")
+ logging.debug("cannot send SMS77 request", exc_info=True)
+ return
+
+ else:
+ try:
+ #
+ # check Sms77-Response
+ #
+ response = conn.getresponse()
+ if str(response.status) == "200": #Check Sms77 Response and print a Log or Error
+ logging.debug("SMS77 response: %s - %s" , str(response.status), str(response.reason))
+ else:
+ logging.warning("SMS77 response: %s - %s" , str(response.status), str(response.reason))
+ except: #otherwise
+ logging.error("cannot get SMS77 response")
+ logging.debug("cannot get SMS77 response", exc_info=True)
+ return
+
+ finally:
+ logging.debug("close Sms77-Connection")
+ try:
+ request.close()
+ except:
+ pass
+
+ except:
+ logging.error("unknown error")
+ logging.debug("unknown error", exc_info=True)