--- smsdaemon/Sms.cpp 2008/06/10 20:28:42 39 +++ smsdaemon/Sms.cpp 2008/06/14 08:39:40 78 @@ -2,19 +2,24 @@ #include #include -#include #include "Sms.h" #include "util.h" +#include "SmsPdu.h" + std::string GetSmsCommand(SMS& sms) { unsigned int pos = sms.message.find(" "); + std::string result; + if (pos == std::string::npos) - return sms.message; + result = sms.message; else - return sms.message.substr(0, pos); + result = sms.message.substr(0, pos); + + return Util::str_trim(result); } std::string GetSmsData(SMS& sms) @@ -81,3 +86,18 @@ return newsms; } +SMS SMS::FromPduString(const std::string& input) +{ + std::string smsline = input.substr(7, input.length() -7); //strip "+CMGL: " + + std::vector lines = Util::str_split(smsline, "\r\n"); + std::vector fields = Util::str_split(lines[0],","); + + SMS newsms = SmsPdu::ParseSmsPdu(lines[1]); + + newsms.sms_index = fields[0]; + + return newsms; +} + +