Voip.MS dev
This commit is contained in:
parent
0c16233403
commit
3090a711e8
@ -17,7 +17,9 @@ HEADERS += \
|
|||||||
Sources/VoipSMS/CSMSMessage.h \
|
Sources/VoipSMS/CSMSMessage.h \
|
||||||
Sources/Gui/SystemTrayManager.h \
|
Sources/Gui/SystemTrayManager.h \
|
||||||
Sources/Gui/SettingsWindow.h \
|
Sources/Gui/SettingsWindow.h \
|
||||||
Sources/ProgramSettings.h
|
Sources/ProgramSettings.h \
|
||||||
|
Sources/Gui/AppIconWidget.h \
|
||||||
|
../../SMSClient/Sources/SMSClient.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
Sources/main.cpp \
|
Sources/main.cpp \
|
||||||
@ -32,7 +34,9 @@ SOURCES += \
|
|||||||
Sources/VoipSMS/CSMSMessage.cpp \
|
Sources/VoipSMS/CSMSMessage.cpp \
|
||||||
Sources/Gui/SystemTrayManager.cpp \
|
Sources/Gui/SystemTrayManager.cpp \
|
||||||
Sources/Gui/SettingsWindow.cpp \
|
Sources/Gui/SettingsWindow.cpp \
|
||||||
Sources/ProgramSettings.cpp
|
Sources/ProgramSettings.cpp \
|
||||||
|
Sources/Gui/AppIconWidget.cpp \
|
||||||
|
../../SMSClient/Sources/SMSClient.cpp
|
||||||
|
|
||||||
|
|
||||||
#win32:SOURCES += $$PWD/Source/qextserialport/win_qextserialport.cpp \
|
#win32:SOURCES += $$PWD/Source/qextserialport/win_qextserialport.cpp \
|
||||||
|
|||||||
22
Sources/Gui/AppIconWidget.cpp
Normal file
22
Sources/Gui/AppIconWidget.cpp
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#include "AppIconWidget.h"
|
||||||
|
#include <Qpainter>
|
||||||
|
|
||||||
|
|
||||||
|
CAppIconWidget::CAppIconWidget()
|
||||||
|
{
|
||||||
|
setWindowFlags(Qt::Popup | Qt::FramelessWindowHint);
|
||||||
|
setParent(0); // Create TopLevel-Widget
|
||||||
|
setAttribute(Qt::WA_NoSystemBackground, true);
|
||||||
|
setAttribute(Qt::WA_TranslucentBackground, true);
|
||||||
|
setAttribute(Qt::WA_PaintOnScreen); // not needed in Qt 5.2 and up
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CAppIconWidget::paintEvent(QPaintEvent *event)
|
||||||
|
{
|
||||||
|
QRectF Rect(100,100,100,100);
|
||||||
|
QPainter Painter(this);
|
||||||
|
|
||||||
|
Painter.fillRect(Rect,Qt::SolidPattern);
|
||||||
|
}
|
||||||
|
|
||||||
18
Sources/Gui/AppIconWidget.h
Normal file
18
Sources/Gui/AppIconWidget.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef CAPPICONWIDGET_H
|
||||||
|
#define CAPPICONWIDGET_H
|
||||||
|
|
||||||
|
#include "GlobalDefine.h"
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class CAppIconWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CAppIconWidget();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
virtual void paintEvent(QPaintEvent *event);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CAPPICONWIDGET_H
|
||||||
@ -37,6 +37,11 @@ void CMasterCtrl::Start()
|
|||||||
|
|
||||||
mSettingsManager.LoadSettings(&mMasterCtrlSettings);
|
mSettingsManager.LoadSettings(&mMasterCtrlSettings);
|
||||||
mSettingsWindow->SetSettingsData(&mMasterCtrlSettings);
|
mSettingsWindow->SetSettingsData(&mMasterCtrlSettings);
|
||||||
|
mVoipMsSMSClient->SetVOIPMsSettings(&mMasterCtrlSettings.mVoipMSSettings);
|
||||||
|
mVoipMsSMSClient->DownloadSMSFromServer();
|
||||||
|
|
||||||
|
// mAppWidget.show();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
#include "SystemTrayManager.h"
|
#include "SystemTrayManager.h"
|
||||||
#include "SettingsWindow.h"
|
#include "SettingsWindow.h"
|
||||||
#include "ProgramSettings.h"
|
#include "ProgramSettings.h"
|
||||||
|
//#include "AppIconWidget.h"
|
||||||
|
|
||||||
class CMasterCtrl : public QObject
|
class CMasterCtrl : public QObject
|
||||||
{
|
{
|
||||||
@ -23,6 +24,7 @@ public:
|
|||||||
CSystemTrayManager *mSystemTrayManager;
|
CSystemTrayManager *mSystemTrayManager;
|
||||||
CSettingsWindow *mSettingsWindow;
|
CSettingsWindow *mSettingsWindow;
|
||||||
CProgramSettings mSettingsManager;
|
CProgramSettings mSettingsManager;
|
||||||
|
// CAppIconWidget mAppWidget;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,17 +4,25 @@
|
|||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
CVoipMsSMSClient::CVoipMsSMSClient()
|
CVoipMsSMSClient::CVoipMsSMSClient()
|
||||||
{
|
{
|
||||||
mVOIPMSSocket = new QNetworkAccessManager();
|
mVOIPMSSocket = new QNetworkAccessManager();
|
||||||
connect(mVOIPMSSocket,SIGNAL(finished(QNetworkReply*)),this,SLOT(VoipServerReplyFinished(QNetworkReply*)));
|
connect(mVOIPMSSocket,SIGNAL(finished(QNetworkReply*)),this,SLOT(VoipServerReplyFinished(QNetworkReply*)));
|
||||||
|
|
||||||
|
mVOIPMsNotificationServer = new QTcpServer;
|
||||||
|
connect(mVOIPMsNotificationServer,SIGNAL(newConnection()),this,SLOT(VoipNotificationServerConnected()));
|
||||||
|
mVOIPMsNotificationServer->listen(QHostAddress::Any,80);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CVoipMsSMSClient::~CVoipMsSMSClient()
|
CVoipMsSMSClient::~CVoipMsSMSClient()
|
||||||
{
|
{
|
||||||
delete mVOIPMSSocket;
|
delete mVOIPMSSocket;
|
||||||
mSMSMessagesList.clear();
|
mSMSMessagesList.clear();
|
||||||
|
mVOIPMsNotificationServer->close();
|
||||||
|
delete mVOIPMsNotificationServer;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int CVoipMsSMSClient::SetVOIPMsSettings(CVoipMSSMSSettings *SettingsData)
|
unsigned int CVoipMsSMSClient::SetVOIPMsSettings(CVoipMSSMSSettings *SettingsData)
|
||||||
@ -27,37 +35,9 @@ unsigned int CVoipMsSMSClient::SetVOIPMsSettings(CVoipMSSMSSettings *SettingsDat
|
|||||||
int CVoipMsSMSClient::DownloadSMSFromServer()
|
int CVoipMsSMSClient::DownloadSMSFromServer()
|
||||||
{
|
{
|
||||||
|
|
||||||
// QDate EndDate;
|
|
||||||
// mCurStartDate = mVOIPMsSettings.mStartDate;
|
|
||||||
// if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
|
|
||||||
// {
|
|
||||||
// EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
|
|
||||||
// }
|
|
||||||
mCurStartDate = QDate::currentDate().addDays(-VOIP_MS_SMS_DATESPAN);
|
mCurStartDate = QDate::currentDate().addDays(-VOIP_MS_SMS_DATESPAN);
|
||||||
SendSMSDownloadRequest(mCurStartDate,QDate::currentDate());
|
SendSMSDownloadRequest(mCurStartDate,QDate::currentDate());
|
||||||
|
mSMSMessagesList.clear();
|
||||||
// QString Url;
|
|
||||||
// Url.clear();
|
|
||||||
// QTextStream UrlStream(&Url);
|
|
||||||
|
|
||||||
// // Url = "https://www.voip.ms/api/v1/rest.php?api_username=jean-francois.martel@polymtl.ca&api_password=Pentium2&method=getSMS&from=2015-11-01&to=2015-11-11&did=5143606463&limit=50";
|
|
||||||
|
|
||||||
// UrlStream << VOIP_MS_API_URL
|
|
||||||
// << "api_username=" << mVOIPMsSettings.mUsername << "&"
|
|
||||||
// << "api_password=" << mVOIPMsSettings.mPassword << "&"
|
|
||||||
// << "method=" << "getSMS" << "&"
|
|
||||||
// << "from=" << mCurStartDate.toString("yyyy-MM-dd") << "&"
|
|
||||||
// << "to=" << EndDate.toString("yyyy-MM-dd") << "&"
|
|
||||||
// << "did=" << mVOIPMsSettings.mDefaultDID << "&"
|
|
||||||
// << "limit=" << "50";
|
|
||||||
|
|
||||||
// qDebug() << "Cmd: " << Url;
|
|
||||||
// mVOIPMSSocket->get(QNetworkRequest(Url));
|
|
||||||
// mCurStartDate = EndDate;
|
|
||||||
|
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
@ -85,9 +65,15 @@ int CVoipMsSMSClient::SendSMSDownloadRequest(QDate StartDate, QDate EndDate)
|
|||||||
mVOIPMSSocket->get(QNetworkRequest(Url));
|
mVOIPMSSocket->get(QNetworkRequest(Url));
|
||||||
mCurStartDate = EndDate;
|
mCurStartDate = EndDate;
|
||||||
|
|
||||||
|
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CVoipMsSMSClient::DownloadNewSMS()
|
||||||
|
{
|
||||||
|
SendSMSDownloadRequest(QDate::currentDate(),QDate::currentDate());
|
||||||
|
}
|
||||||
|
|
||||||
unsigned int CVoipMsSMSClient::GetDidFromUserAccount(const QString username, const QString Password)
|
unsigned int CVoipMsSMSClient::GetDidFromUserAccount(const QString username, const QString Password)
|
||||||
{
|
{
|
||||||
QString Method = "getDIDsInfo";
|
QString Method = "getDIDsInfo";
|
||||||
@ -160,33 +146,71 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
|||||||
NBMsgReceived = NewMessages.size();
|
NBMsgReceived = NewMessages.size();
|
||||||
qDebug() << "Received " << NBMsgReceived << "messages";
|
qDebug() << "Received " << NBMsgReceived << "messages";
|
||||||
|
|
||||||
|
|
||||||
if(mSMSMessagesList.size() >0 && NewMessages.size() > 0)
|
if(mSMSMessagesList.size() >0 && NewMessages.size() > 0)
|
||||||
{
|
{
|
||||||
//remove existing messages...
|
//remove existing messages...
|
||||||
bool finished = false;
|
bool finished = false;
|
||||||
int i = 0;
|
|
||||||
while(!finished)
|
|
||||||
{
|
|
||||||
//compare starting from the end for efficiency...
|
|
||||||
QDateTime NewDate = NewMessages.at(0).mDateTime;
|
|
||||||
QDateTime OldDate = mSMSMessagesList.last().mDateTime;
|
|
||||||
|
|
||||||
if(NewDate >= OldDate)
|
QDateTime NewDate = NewMessages.at(0).mDateTime;
|
||||||
|
QDateTime OldDate = mSMSMessagesList.at(0).mDateTime;
|
||||||
|
|
||||||
|
if(NewDate > OldDate)
|
||||||
|
{
|
||||||
|
while(!finished)
|
||||||
{
|
{
|
||||||
NewMessages.removeAt(0);
|
//compare starting from the end for efficiency...
|
||||||
if(NewMessages.size() == 0)
|
NewDate = NewMessages.last().mDateTime;
|
||||||
|
OldDate = mSMSMessagesList.at(0).mDateTime;
|
||||||
|
|
||||||
|
if(NewDate <= OldDate)
|
||||||
|
{
|
||||||
|
NewMessages.removeLast();
|
||||||
|
if(NewMessages.size() == 0)
|
||||||
|
{
|
||||||
|
finished = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
finished = true;
|
finished = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
NewMessages.append(mSMSMessagesList);
|
||||||
|
mSMSMessagesList = NewMessages;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
while(!finished)
|
||||||
{
|
{
|
||||||
finished = true;
|
//compare starting from the end for efficiency...
|
||||||
|
NewDate = NewMessages.at(0).mDateTime;
|
||||||
|
OldDate = mSMSMessagesList.last().mDateTime;
|
||||||
|
|
||||||
|
if(NewDate >= OldDate)
|
||||||
|
{
|
||||||
|
NewMessages.removeAt(0);
|
||||||
|
if(NewMessages.size() == 0)
|
||||||
|
{
|
||||||
|
finished = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
finished = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
mSMSMessagesList.append(NewMessages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mSMSMessagesList.append(NewMessages);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
mSMSMessagesList.append(NewMessages);
|
|
||||||
|
|
||||||
|
|
||||||
if(NBMsgReceived == VOIP_MS_SMS_MAX_COUNT)
|
if(NBMsgReceived == VOIP_MS_SMS_MAX_COUNT)
|
||||||
@ -203,7 +227,7 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
|||||||
qDebug(" ");
|
qDebug(" ");
|
||||||
for(int i = 0; i < mSMSMessagesList.size(); i++)
|
for(int i = 0; i < mSMSMessagesList.size(); i++)
|
||||||
{
|
{
|
||||||
qDebug() << mSMSMessagesList.at(i).mDateTime.toString("yyyy:MM:dd hh:mm:ss") << " : " << mSMSMessagesList.at(i).mContact << " : " << mSMSMessagesList.at(i).mMessageText.toUtf8().data();
|
qDebug() << mSMSMessagesList.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << mSMSMessagesList.at(i).mContact << " : " << mSMSMessagesList.at(i).mMessageText.toUtf8().data();
|
||||||
}
|
}
|
||||||
qDebug("-----------------------------------------------------------------------");
|
qDebug("-----------------------------------------------------------------------");
|
||||||
qDebug(" ");
|
qDebug(" ");
|
||||||
@ -215,34 +239,17 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
|||||||
qDebug("No SMS to download in this period.");
|
qDebug("No SMS to download in this period.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int CVoipMsSMSClient::NewSMSNotification(QString DID)
|
||||||
|
{
|
||||||
|
if(DID != mVOIPMsSettings.mDefaultDID)
|
||||||
|
{
|
||||||
|
return RET_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
DownloadNewSMS();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if(mCurStartDate != QDate::currentDate())
|
|
||||||
// {
|
|
||||||
// if(mSMSMessagesList.size() != 0)
|
|
||||||
// {
|
|
||||||
// mCurStartDate = QDate::fromString(mSMSMessagesList.last().mDateTime.toString("yyyy-MM-dd"));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// QDate EndDate;
|
|
||||||
// if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
|
|
||||||
// {
|
|
||||||
// EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// SendSMSDownloadRequest(mCurStartDate,EndDate);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// qDebug("Added %d messages in the list",mSMSMessagesList.size());
|
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -268,6 +275,54 @@ unsigned int CVoipMsSMSClient::DIDsInfoReceived(QJsonArray *DIDsInfoPtr)
|
|||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CVoipMsSMSClient::VoipNotificationServerConnected()
|
||||||
|
{
|
||||||
|
qDebug("Client Connected");
|
||||||
|
|
||||||
|
mClientConnection = mVOIPMsNotificationServer->nextPendingConnection();
|
||||||
|
connect(mClientConnection,SIGNAL(readyRead()),this,SLOT(VoipNotificationServerDataAvail()));
|
||||||
|
// ClientConnection->waitForReadyRead();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CVoipMsSMSClient::VoipNotificationServerDataAvail()
|
||||||
|
{
|
||||||
|
QString Notification(mClientConnection->readAll());
|
||||||
|
QStringList Parts = Notification.split(" ");
|
||||||
|
QString Data;
|
||||||
|
QString Did;
|
||||||
|
|
||||||
|
for(int i = 0; i < Parts.size(); i++)
|
||||||
|
{
|
||||||
|
if(Parts.at(i).contains("/?"))
|
||||||
|
{
|
||||||
|
Data = Parts.at(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Data.isEmpty() == false)
|
||||||
|
{
|
||||||
|
Parts = Data.remove("/?").split("&");
|
||||||
|
|
||||||
|
for(int i = 0; i < Parts.size(); i++)
|
||||||
|
{
|
||||||
|
if(Parts.at(i).contains("did="))
|
||||||
|
{
|
||||||
|
Data = Parts.at(i);
|
||||||
|
Did = Data.remove("did=");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "New SMS from did: " << Did;
|
||||||
|
|
||||||
|
// qDebug() << Notification;
|
||||||
|
mClientConnection->close();
|
||||||
|
|
||||||
|
NewSMSNotification(Did);
|
||||||
|
}
|
||||||
|
|
||||||
//https://www.voip.ms/api/v1/rest.php?api_username=jean-francois.martel@polymtl.ca&api_password=Pentium2&method=getBalance&advanced=True
|
//https://www.voip.ms/api/v1/rest.php?api_username=jean-francois.martel@polymtl.ca&api_password=Pentium2&method=getBalance&advanced=True
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@
|
|||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include "ProgramSettings.h"
|
#include "ProgramSettings.h"
|
||||||
|
#include <QTcpServer>
|
||||||
|
|
||||||
#define VOIP_MS_API_URL "https://www.voip.ms/api/v1/rest.php?"
|
#define VOIP_MS_API_URL "https://www.voip.ms/api/v1/rest.php?"
|
||||||
#define VOIP_MS_SMS_DATESPAN 90
|
#define VOIP_MS_SMS_DATESPAN 90
|
||||||
@ -31,11 +32,13 @@ public:
|
|||||||
|
|
||||||
int DownloadSMSFromServer();
|
int DownloadSMSFromServer();
|
||||||
int SendSMSDownloadRequest(QDate StartDate, QDate EndDate);
|
int SendSMSDownloadRequest(QDate StartDate, QDate EndDate);
|
||||||
|
int DownloadNewSMS();
|
||||||
|
|
||||||
QList<CSMSMessage> mSMSMessagesList;
|
QList<CSMSMessage> mSMSMessagesList;
|
||||||
|
|
||||||
unsigned int GetDidFromUserAccount(const QString username, const QString Password);
|
unsigned int GetDidFromUserAccount(const QString username, const QString Password);
|
||||||
unsigned int SetVOIPMsSettings(CVoipMSSMSSettings *SettingsData);
|
unsigned int SetVOIPMsSettings(CVoipMSSMSSettings *SettingsData);
|
||||||
|
unsigned int NewSMSNotification(QString DID);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QNetworkAccessManager *mVOIPMSSocket;
|
QNetworkAccessManager *mVOIPMSSocket;
|
||||||
@ -47,12 +50,18 @@ private:
|
|||||||
|
|
||||||
QDate mCurStartDate;
|
QDate mCurStartDate;
|
||||||
|
|
||||||
|
QTcpServer *mVOIPMsNotificationServer;
|
||||||
|
QTcpSocket *mClientConnection;
|
||||||
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void DIDSFetched(QStringList);
|
void DIDSFetched(QStringList);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void VoipServerReplyFinished(QNetworkReply*);
|
void VoipServerReplyFinished(QNetworkReply*);
|
||||||
|
void VoipNotificationServerConnected();
|
||||||
|
void VoipNotificationServerDataAvail();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CVOIPMSSMSCLIENT_H
|
#endif // CVOIPMSSMSCLIENT_H
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user