fixed VOIP plugin to work with v0.6

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7288 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2014-04-20 14:21:53 +00:00
parent ca6b463a31
commit 160e04fe9a
10 changed files with 94 additions and 100 deletions

View File

@ -133,11 +133,8 @@ RsAutoUpdatePage *VOIPPlugin::qt_transfers_tab() const
RsPQIService *VOIPPlugin::rs_pqi_service() const RsPQIService *VOIPPlugin::rs_pqi_service() const
{ {
if(mVoip == NULL) if(mVoip == NULL)
{ rsVoip = mVoip = new p3VoRS(mPlugInHandler,mPluginNotifier) ; // , 3600 * 24 * 30 * 6); // 6 Months
mVoip = new p3VoRS(mPlugInHandler,mPluginNotifier) ; // , 3600 * 24 * 30 * 6); // 6 Months
rsVoip = mVoip ;
}
return mVoip ; return mVoip ;
} }

View File

@ -22,19 +22,20 @@ void PluginGUIHandler::ReceivedVoipAccept(const QString& /*peer_id*/)
std::cerr << "****** Plugin GUI handler: received VoipAccept!" << std::endl; std::cerr << "****** Plugin GUI handler: received VoipAccept!" << std::endl;
} }
void PluginGUIHandler::ReceivedVoipData(const QString& peer_id) void PluginGUIHandler::ReceivedVoipData(const QString& qpeer_id)
{ {
std::cerr << "****** Plugin GUI handler: received VoipData!" << std::endl; std::cerr << "****** Plugin GUI handler: received VoipData!" << std::endl;
RsPeerId peer_id(qpeer_id.toStdString()) ;
std::vector<RsVoipDataChunk> chunks ; std::vector<RsVoipDataChunk> chunks ;
if(!rsVoip->getIncomingData(peer_id.toStdString(),chunks)) if(!rsVoip->getIncomingData(peer_id,chunks))
{ {
std::cerr << "PluginGUIHandler::ReceivedVoipData(): No data chunks to get. Weird!" << std::endl; std::cerr << "PluginGUIHandler::ReceivedVoipData(): No data chunks to get. Weird!" << std::endl;
return ; return ;
} }
ChatDialog *di = ChatDialog::getExistingChat(peer_id.toStdString()) ; ChatDialog *di = ChatDialog::getExistingChat(peer_id) ;
if (di) { if (di) {
ChatWidget *cw = di->getChatWidget(); ChatWidget *cw = di->getChatWidget();
if (cw) { if (cw) {
@ -47,7 +48,7 @@ void PluginGUIHandler::ReceivedVoipData(const QString& peer_id)
for (unsigned int i = 0; i < chunks.size(); ++i) { for (unsigned int i = 0; i < chunks.size(); ++i) {
for (unsigned int chunkIndex=0; chunkIndex<chunks.size(); chunkIndex++){ for (unsigned int chunkIndex=0; chunkIndex<chunks.size(); chunkIndex++){
QByteArray qb(reinterpret_cast<const char *>(chunks[chunkIndex].data),chunks[chunkIndex].size); QByteArray qb(reinterpret_cast<const char *>(chunks[chunkIndex].data),chunks[chunkIndex].size);
acwh->addAudioData(peer_id,&qb); acwh->addAudioData(QString::fromStdString(peer_id.toStdString()),&qb);
} }
} }
break; break;

View File

@ -1,18 +1,18 @@
#include "PluginNotifier.h" #include "PluginNotifier.h"
void PluginNotifier::notifyReceivedVoipInvite(const std::string& peer_id) void PluginNotifier::notifyReceivedVoipInvite(const RsPeerId& peer_id)
{ {
emit voipInvitationReceived(QString::fromStdString(peer_id)) ; emit voipInvitationReceived(QString::fromStdString(peer_id.toStdString())) ;
} }
void PluginNotifier::notifyReceivedVoipData(const std::string& peer_id) void PluginNotifier::notifyReceivedVoipData(const RsPeerId &peer_id)
{ {
emit voipDataReceived(QString::fromStdString(peer_id)) ; emit voipDataReceived(QString::fromStdString(peer_id.toStdString())) ;
} }
void PluginNotifier::notifyReceivedVoipAccept(const std::string& peer_id) void PluginNotifier::notifyReceivedVoipAccept(const RsPeerId& peer_id)
{ {
emit voipAcceptReceived(QString::fromStdString(peer_id)) ; emit voipAcceptReceived(QString::fromStdString(peer_id.toStdString())) ;
} }
void PluginNotifier::notifyReceivedVoipHangUp(const std::string& peer_id) void PluginNotifier::notifyReceivedVoipHangUp(const RsPeerId &peer_id)
{ {
emit voipHangUpReceived(QString::fromStdString(peer_id)) ; emit voipHangUpReceived(QString::fromStdString(peer_id.toStdString())) ;
} }

View File

@ -6,16 +6,17 @@
// //
#include <QObject> #include <QObject>
#include <retroshare/rstypes.h>
class PluginNotifier: public QObject class PluginNotifier: public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
void notifyReceivedVoipData(const std::string& peer_id) ; void notifyReceivedVoipData(const RsPeerId& peer_id) ;
void notifyReceivedVoipInvite(const std::string& peer_id) ; void notifyReceivedVoipInvite(const RsPeerId &peer_id) ;
void notifyReceivedVoipHangUp(const std::string& peer_id) ; void notifyReceivedVoipHangUp(const RsPeerId& peer_id) ;
void notifyReceivedVoipAccept(const std::string& peer_id) ; void notifyReceivedVoipAccept(const RsPeerId &peer_id) ;
signals: signals:
void voipInvitationReceived(const QString&) ; // signal emitted when an invitation has been received void voipInvitationReceived(const QString&) ; // signal emitted when an invitation has been received

View File

@ -56,7 +56,7 @@ double convertRttToPixels(double maxRTT, double rtt)
class VoipLagPlot class VoipLagPlot
{ {
public: public:
VoipLagPlot(const std::map<std::string, std::list<RsVoipPongResult> > &info, VoipLagPlot(const std::map<RsPeerId, std::list<RsVoipPongResult> > &info,
double refTS, double maxRTT, double minTS, double maxTS) double refTS, double maxRTT, double minTS, double maxTS)
:mInfo(info), mRefTS(refTS), mMaxRTT(maxRTT), mMinTS(minTS), mMaxTS(maxTS) {} :mInfo(info), mRefTS(refTS), mMaxRTT(maxRTT), mMinTS(minTS), mMaxTS(maxTS) {}
@ -96,7 +96,7 @@ class VoipLagPlot
} }
/* draw a different line for each peer */ /* draw a different line for each peer */
std::map<std::string, std::list<RsVoipPongResult> >::const_iterator mit; std::map<RsPeerId, std::list<RsVoipPongResult> >::const_iterator mit;
int i = 0; int i = 0;
int nLines = mInfo.size(); int nLines = mInfo.size();
for(mit = mInfo.begin(); mit != mInfo.end(); mit++, i++) for(mit = mInfo.begin(); mit != mInfo.end(); mit++, i++)
@ -161,14 +161,14 @@ class VoipLagPlot
painter->setPen(QColor::fromRgb(0,0,0)) ; painter->setPen(QColor::fromRgb(0,0,0)) ;
painter->drawRect(ox,oy,cellx,celly) ; painter->drawRect(ox,oy,cellx,celly) ;
painter->drawText(ox + cellx + 4,oy + celly / 2,VoipStatistics::getPeerName(mit->first)); painter->drawText(ox + cellx + 4,oy + celly / 2,VoipStatistics::getPeerName(mit->first));
oy += 2 * celly; oy += 2 * celly;
} }
} }
private: private:
const std::map<std::string, std::list<RsVoipPongResult> > &mInfo; const std::map<RsPeerId, std::list<RsVoipPongResult> > &mInfo;
double mRefTS; double mRefTS;
double mMaxRTT; double mMaxRTT;
double mMinTS; double mMinTS;
@ -230,15 +230,15 @@ void VoipStatistics::processSettings(bool bLoad)
void VoipStatistics::updateDisplay() void VoipStatistics::updateDisplay()
{ {
std::map<std::string, std::list<RsVoipPongResult> > info; std::map<RsPeerId, std::list<RsVoipPongResult> > info;
if (!rsVoip) if (!rsVoip)
{ {
return; return;
} }
std::list<std::string> idList; std::list<RsPeerId> idList;
std::list<std::string>::iterator it; std::list<RsPeerId>::iterator it;
rsPeers->getOnlineList(idList); rsPeers->getOnlineList(idList);
@ -284,11 +284,11 @@ void VoipStatistics::updateDisplay()
_tst_CW->update(); _tst_CW->update();
} }
QString VoipStatistics::getPeerName(const std::string& peer_id) QString VoipStatistics::getPeerName(const RsPeerId& peer_id)
{ {
static std::map<std::string, QString> names ; static std::map<RsPeerId, QString> names ;
std::map<std::string,QString>::const_iterator it = names.find(peer_id) ; std::map<RsPeerId,QString>::const_iterator it = names.find(peer_id) ;
if( it != names.end()) if( it != names.end())
return it->second ; return it->second ;
@ -309,7 +309,7 @@ VoipStatisticsWidget::VoipStatisticsWidget(QWidget *parent)
maxHeight = 0 ; maxHeight = 0 ;
} }
void VoipStatisticsWidget::updateVoipStatistics(const std::map<std::string, std::list<RsVoipPongResult> >& info, void VoipStatisticsWidget::updateVoipStatistics(const std::map<RsPeerId, std::list<RsVoipPongResult> >& info,
double maxRTT, double minTS, double maxTS) double maxRTT, double minTS, double maxTS)
{ {
//static const int cellx = 6 ; //static const int cellx = 6 ;

View File

@ -37,7 +37,7 @@ class VoipStatistics: public RsAutoUpdatePage, public Ui::VoipStatistics
~VoipStatistics(); ~VoipStatistics();
// Cache for peer names. // Cache for peer names.
static QString getPeerName(const std::string& peer_id) ; static QString getPeerName(const RsPeerId &peer_id) ;
private: private:
@ -60,7 +60,7 @@ class VoipStatisticsWidget: public QWidget
virtual void resizeEvent(QResizeEvent *event); virtual void resizeEvent(QResizeEvent *event);
void updateVoipStatistics(const std::map<std::string, std::list<RsVoipPongResult> >& info, void updateVoipStatistics(const std::map<RsPeerId, std::list<RsVoipPongResult> >& info,
double maxRTT, double minTS, double maxTS); double maxRTT, double minTS, double maxTS);
private: private:

View File

@ -7,6 +7,7 @@
#include <string> #include <string>
#include <list> #include <list>
#include <vector> #include <vector>
#include <retroshare/rstypes.h>
class RsVoip ; class RsVoip ;
extern RsVoip *rsVoip; extern RsVoip *rsVoip;
@ -36,17 +37,17 @@ struct RsVoipDataChunk
class RsVoip class RsVoip
{ {
public: public:
virtual int sendVoipHangUpCall(const std::string& peer_id) = 0; virtual int sendVoipHangUpCall(const RsPeerId& peer_id) = 0;
virtual int sendVoipRinging(const std::string& peer_id) = 0; virtual int sendVoipRinging(const RsPeerId& peer_id) = 0;
virtual int sendVoipAcceptCall(const std::string& peer_id) = 0; virtual int sendVoipAcceptCall(const RsPeerId& peer_id) = 0;
// Sending data. The client keeps the memory ownership and must delete it after calling this. // Sending data. The client keeps the memory ownership and must delete it after calling this.
virtual int sendVoipData(const std::string& peer_id,const RsVoipDataChunk& chunk) = 0; virtual int sendVoipData(const RsPeerId& peer_id,const RsVoipDataChunk& chunk) = 0;
// The server fill in the data and gives up memory ownership. The client must delete the memory // The server fill in the data and gives up memory ownership. The client must delete the memory
// in each chunk once it has been used. // in each chunk once it has been used.
// //
virtual bool getIncomingData(const std::string& peer_id,std::vector<RsVoipDataChunk>& chunks) = 0; virtual bool getIncomingData(const RsPeerId& peer_id,std::vector<RsVoipDataChunk>& chunks) = 0;
typedef enum { AudioTransmitContinous = 0, AudioTransmitVAD = 1, AudioTransmitPushToTalk = 2 } enumAudioTransmit ; typedef enum { AudioTransmitContinous = 0, AudioTransmitVAD = 1, AudioTransmitPushToTalk = 2 } enumAudioTransmit ;
@ -67,7 +68,7 @@ class RsVoip
virtual bool getVoipEchoCancel() const = 0 ; virtual bool getVoipEchoCancel() const = 0 ;
virtual void setVoipEchoCancel(bool) = 0 ; virtual void setVoipEchoCancel(bool) = 0 ;
virtual uint32_t getPongResults(std::string id, int n, std::list<RsVoipPongResult> &results) = 0; virtual uint32_t getPongResults(const RsPeerId& id, int n, std::list<RsVoipPongResult> &results) = 0;
}; };

View File

@ -78,33 +78,6 @@ RsVoip *rsVoip = NULL;
* *
*/ */
#if 0
class RsVorsLagItem: public RsItem
{
public:
uint32_t seqno;
uint32_t type; // REQUEST, RESPONSE.
double peerTs;
};
class RsVorsDatatem: public RsItem
{
public:
uint32_t seqno;
uint32_t encoding;
uint32_t audiolength; // in 44.1 kbs samples.
uint32_t datalength;
void *data;
};
#endif
#ifdef WINDOWS_SYS #ifdef WINDOWS_SYS
#include <time.h> #include <time.h>
#include <sys/timeb.h> #include <sys/timeb.h>
@ -143,7 +116,7 @@ static double convert64bitsToTs(uint64_t bits)
} }
p3VoRS::p3VoRS(RsPluginHandler *handler,PluginNotifier *notifier) p3VoRS::p3VoRS(RsPluginHandler *handler,PluginNotifier *notifier)
: RsPQIService(RS_SERVICE_TYPE_VOIP_PLUGIN,CONFIG_TYPE_VOIP_PLUGIN,0,handler), mVorsMtx("p3VoRS"), mLinkMgr(handler->getLinkMgr()) , mNotify(notifier) : RsPQIService(RS_SERVICE_TYPE_VOIP_PLUGIN,0,handler), mVorsMtx("p3VoRS"), mServiceControl(handler->getServiceControl()) , mNotify(notifier)
{ {
addSerialType(new RsVoipSerialiser()); addSerialType(new RsVoipSerialiser());
@ -160,6 +133,21 @@ p3VoRS::p3VoRS(RsPluginHandler *handler,PluginNotifier *notifier)
_echo_cancel = true; _echo_cancel = true;
} }
RsServiceInfo p3VoRS::getServiceInfo()
{
const std::string TURTLE_APP_NAME = "VOIP";
const uint16_t TURTLE_APP_MAJOR_VERSION = 1;
const uint16_t TURTLE_APP_MINOR_VERSION = 0;
const uint16_t TURTLE_MIN_MAJOR_VERSION = 1;
const uint16_t TURTLE_MIN_MINOR_VERSION = 0;
return RsServiceInfo(RS_SERVICE_TYPE_VOIP_PLUGIN,
TURTLE_APP_NAME,
TURTLE_APP_MAJOR_VERSION,
TURTLE_APP_MINOR_VERSION,
TURTLE_MIN_MAJOR_VERSION,
TURTLE_MIN_MINOR_VERSION);
}
int p3VoRS::tick() int p3VoRS::tick()
{ {
@ -196,7 +184,7 @@ int p3VoRS::sendPackets()
} }
return true ; return true ;
} }
int p3VoRS::sendVoipHangUpCall(const std::string& peer_id) int p3VoRS::sendVoipHangUpCall(const RsPeerId &peer_id)
{ {
RsVoipProtocolItem *item = new RsVoipProtocolItem ; RsVoipProtocolItem *item = new RsVoipProtocolItem ;
@ -208,7 +196,7 @@ int p3VoRS::sendVoipHangUpCall(const std::string& peer_id)
return true ; return true ;
} }
int p3VoRS::sendVoipAcceptCall(const std::string& peer_id) int p3VoRS::sendVoipAcceptCall(const RsPeerId& peer_id)
{ {
RsVoipProtocolItem *item = new RsVoipProtocolItem ; RsVoipProtocolItem *item = new RsVoipProtocolItem ;
@ -220,7 +208,7 @@ int p3VoRS::sendVoipAcceptCall(const std::string& peer_id)
return true ; return true ;
} }
int p3VoRS::sendVoipRinging(const std::string& peer_id) int p3VoRS::sendVoipRinging(const RsPeerId &peer_id)
{ {
RsVoipProtocolItem *item = new RsVoipProtocolItem ; RsVoipProtocolItem *item = new RsVoipProtocolItem ;
@ -233,7 +221,7 @@ int p3VoRS::sendVoipRinging(const std::string& peer_id)
return true ; return true ;
} }
int p3VoRS::sendVoipData(const std::string& peer_id,const RsVoipDataChunk& chunk) int p3VoRS::sendVoipData(const RsPeerId& peer_id,const RsVoipDataChunk& chunk)
{ {
#ifdef DEBUG_VORS #ifdef DEBUG_VORS
std::cerr << "Sending " << chunk.size << " bytes of voip data." << std::endl; std::cerr << "Sending " << chunk.size << " bytes of voip data." << std::endl;
@ -267,9 +255,11 @@ void p3VoRS::sendPingMeasurements()
{ {
/* we ping our peers */ /* we ping our peers */
/* who is online? */ /* who is online? */
std::list<std::string> idList; if(!mServiceControl)
return ;
mLinkMgr->getOnlineList(idList); std::set<RsPeerId> onlineIds;
mServiceControl->getPeersConnected(getServiceInfo().mServiceType, onlineIds);
double ts = getCurrentTS(); double ts = getCurrentTS();
@ -279,8 +269,8 @@ void p3VoRS::sendPingMeasurements()
#endif #endif
/* prepare packets */ /* prepare packets */
std::list<std::string>::iterator it; std::set<RsPeerId>::iterator it;
for(it = idList.begin(); it != idList.end(); it++) for(it = onlineIds.begin(); it != onlineIds.end(); it++)
{ {
#ifdef DEBUG_VORS #ifdef DEBUG_VORS
std::cerr << "p3VoRS::sendPingMeasurements() Pinging: " << *it; std::cerr << "p3VoRS::sendPingMeasurements() Pinging: " << *it;
@ -347,7 +337,7 @@ void p3VoRS::handleData(RsVoipDataItem *item)
// store the data in a queue. // store the data in a queue.
std::map<std::string,VorsPeerInfo>::iterator it = mPeerInfo.find(item->PeerId()) ; std::map<RsPeerId,VorsPeerInfo>::iterator it = mPeerInfo.find(item->PeerId()) ;
if(it == mPeerInfo.end()) if(it == mPeerInfo.end())
{ {
@ -362,13 +352,13 @@ void p3VoRS::handleData(RsVoipDataItem *item)
} }
} }
bool p3VoRS::getIncomingData(const std::string& peer_id,std::vector<RsVoipDataChunk>& incoming_data_chunks) bool p3VoRS::getIncomingData(const RsPeerId& peer_id,std::vector<RsVoipDataChunk>& incoming_data_chunks)
{ {
RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/ RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/
incoming_data_chunks.clear() ; incoming_data_chunks.clear() ;
std::map<std::string,VorsPeerInfo>::iterator it = mPeerInfo.find(peer_id) ; std::map<RsPeerId,VorsPeerInfo>::iterator it = mPeerInfo.find(peer_id) ;
if(it == mPeerInfo.end()) if(it == mPeerInfo.end())
{ {
@ -505,7 +495,7 @@ int p3VoRS::handlePong(RsVoipPongItem *pong)
return true ; return true ;
} }
int p3VoRS::storePingAttempt(std::string id, double ts, uint32_t seqno) int p3VoRS::storePingAttempt(const RsPeerId& id, double ts, uint32_t seqno)
{ {
RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/ RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/
@ -528,7 +518,7 @@ int p3VoRS::storePingAttempt(std::string id, double ts, uint32_t seqno)
int p3VoRS::storePongResult(std::string id, uint32_t counter, double ts, double rtt, double offset) int p3VoRS::storePongResult(const RsPeerId &id, uint32_t counter, double ts, double rtt, double offset)
{ {
RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/ RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/
@ -559,7 +549,7 @@ int p3VoRS::storePongResult(std::string id, uint32_t counter, double ts, double
} }
uint32_t p3VoRS::getPongResults(std::string id, int n, std::list<RsVoipPongResult> &results) uint32_t p3VoRS::getPongResults(const RsPeerId& id, int n, std::list<RsVoipPongResult> &results)
{ {
RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/ RsStackMutex stack(mVorsMtx); /****** LOCKED MUTEX *******/
@ -577,9 +567,9 @@ uint32_t p3VoRS::getPongResults(std::string id, int n, std::list<RsVoipPongResul
VorsPeerInfo *p3VoRS::locked_GetPeerInfo(std::string id) VorsPeerInfo *p3VoRS::locked_GetPeerInfo(const RsPeerId &id)
{ {
std::map<std::string, VorsPeerInfo>::iterator it; std::map<RsPeerId, VorsPeerInfo>::iterator it;
it = mPeerInfo.find(id); it = mPeerInfo.find(id);
if (it == mPeerInfo.end()) if (it == mPeerInfo.end())
{ {
@ -598,7 +588,7 @@ VorsPeerInfo *p3VoRS::locked_GetPeerInfo(std::string id)
return &(it->second); return &(it->second);
} }
bool VorsPeerInfo::initialisePeerInfo(std::string id) bool VorsPeerInfo::initialisePeerInfo(const RsPeerId& id)
{ {
mId = id; mId = id;

View File

@ -32,6 +32,8 @@
#include "services/rsvoipitems.h" #include "services/rsvoipitems.h"
#include "services/p3service.h" #include "services/p3service.h"
#include "serialiser/rstlvbase.h"
#include "serialiser/rsconfigitems.h"
#include "plugins/rspqiservice.h" #include "plugins/rspqiservice.h"
#include <interface/rsvoip.h> #include <interface/rsvoip.h>
@ -42,9 +44,9 @@ class VorsPeerInfo
{ {
public: public:
bool initialisePeerInfo(std::string id); bool initialisePeerInfo(const RsPeerId &id);
std::string mId; RsPeerId mId;
double mCurrentPingTS; double mCurrentPingTS;
double mCurrentPingCounter; double mCurrentPingCounter;
bool mCurrentPongRecvd; bool mCurrentPongRecvd;
@ -72,22 +74,22 @@ class p3VoRS: public RsPQIService, public RsVoip
/***** overloaded from rsVoip *****/ /***** overloaded from rsVoip *****/
virtual uint32_t getPongResults(std::string id, int n, std::list<RsVoipPongResult> &results); virtual uint32_t getPongResults(const RsPeerId &id, int n, std::list<RsVoipPongResult> &results);
// Call stuff. // Call stuff.
// //
// Sending data. The client keeps the memory ownership and must delete it after calling this. // Sending data. The client keeps the memory ownership and must delete it after calling this.
virtual int sendVoipData(const std::string& peer_id,const RsVoipDataChunk& chunk) ; virtual int sendVoipData(const RsPeerId &peer_id,const RsVoipDataChunk& chunk) ;
// The server fill in the data and gives up memory ownership. The client must delete the memory // The server fill in the data and gives up memory ownership. The client must delete the memory
// in each chunk once it has been used. // in each chunk once it has been used.
// //
virtual bool getIncomingData(const std::string& peer_id,std::vector<RsVoipDataChunk>& chunks) ; virtual bool getIncomingData(const RsPeerId& peer_id,std::vector<RsVoipDataChunk>& chunks) ;
virtual int sendVoipHangUpCall(const std::string& peer_id) ; virtual int sendVoipHangUpCall(const RsPeerId& peer_id) ;
virtual int sendVoipRinging(const std::string& peer_id) ; virtual int sendVoipRinging(const RsPeerId& peer_id) ;
virtual int sendVoipAcceptCall(const std::string& peer_id) ; virtual int sendVoipAcceptCall(const RsPeerId &peer_id) ;
/***** overloaded from p3Service *****/ /***** overloaded from p3Service *****/
/*! /*!
@ -126,7 +128,10 @@ class p3VoRS: public RsPQIService, public RsVoip
* chat msg items and custom status are saved * chat msg items and custom status are saved
*/ */
virtual bool saveList(bool& cleanup, std::list<RsItem*>&) ; virtual bool saveList(bool& cleanup, std::list<RsItem*>&) ;
virtual bool loadList(std::list<RsItem*>& load) ; virtual bool loadList(std::list<RsItem*>& load) ;
virtual std::string configurationFileName() const { return "voip.cfg" ; }
virtual RsServiceInfo getServiceInfo() ;
private: private:
int sendPackets(); int sendPackets();
@ -136,24 +141,24 @@ class p3VoRS: public RsPQIService, public RsVoip
int handlePing(RsVoipPingItem *item); int handlePing(RsVoipPingItem *item);
int handlePong(RsVoipPongItem *item); int handlePong(RsVoipPongItem *item);
int storePingAttempt(std::string id, double ts, uint32_t mCounter); int storePingAttempt(const RsPeerId &id, double ts, uint32_t mCounter);
int storePongResult(std::string id, uint32_t counter, double ts, double rtt, double offset); int storePongResult(const RsPeerId& id, uint32_t counter, double ts, double rtt, double offset);
void handleProtocol(RsVoipProtocolItem*) ; void handleProtocol(RsVoipProtocolItem*) ;
void handleData(RsVoipDataItem*) ; void handleData(RsVoipDataItem*) ;
RsMutex mVorsMtx; RsMutex mVorsMtx;
VorsPeerInfo *locked_GetPeerInfo(std::string id); VorsPeerInfo *locked_GetPeerInfo(const RsPeerId& id);
static RsTlvKeyValue push_int_value(const std::string& key,int value) ; static RsTlvKeyValue push_int_value(const std::string& key,int value) ;
static int pop_int_value(const std::string& s) ; static int pop_int_value(const std::string& s) ;
std::map<std::string, VorsPeerInfo> mPeerInfo; std::map<RsPeerId, VorsPeerInfo> mPeerInfo;
time_t mSentPingTime; time_t mSentPingTime;
uint32_t mCounter; uint32_t mCounter;
p3LinkMgr *mLinkMgr; RsServiceControl *mServiceControl;
PluginNotifier *mNotify ; PluginNotifier *mNotify ;
int _atransmit ; int _atransmit ;

View File

@ -30,7 +30,6 @@
#include "serialiser/rsserviceids.h" #include "serialiser/rsserviceids.h"
#include "serialiser/rsserial.h" #include "serialiser/rsserial.h"
#include "serialiser/rstlvtypes.h"
/**************************************************************************/ /**************************************************************************/