#include "UrlTriggerPlugin.h" #include "ISmsTransceiver.h" #include "Sms.h" #include "Util.h" #include "Logger.h" #include "Exceptions.h" #include "HttpClient.h" #include using namespace std; UrlTriggerPlugin::UrlTriggerPlugin(string cmd, string url) : Plugin(cmd, string("URL Trigger:")+url ), command(cmd), URL(url) { } void UrlTriggerPlugin::Execute(ISmsTransceiver& modem, SMS& sms) { ostringstream request; request << URL << "?"; request << "sender=" << sms.GetSender() << "&"; request << "data=" << HttpClient::UrlEncode(sms.ExtractParameters()); string reply; try { reply = HttpClient::GetString( request.str() ); reply = Util::str_replace(reply, "\r"); //remove carriage return if (reply == "") reply = "Empty reply from server !?!"; } catch (httpexception& e) { reply = "Error: Could not execute command"; Logger::logMessage(string("UrlTrigger failed: ") + command + ">" + e.what() ); } modem.SendSms(sms.GetSender(), reply, true); }