summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Begumisa <ben_g@users.sourceforge.net>2009-08-14 09:23:07 +0000
committerGerald Begumisa <ben_g@users.sourceforge.net>2009-08-14 09:23:07 +0000
commite163cf54ac781ad592da8a009876479204966b26 (patch)
tree34a5ad268d1f17971b45f82c8749724cff80ee96
parent1cf0cfc8155b0376d35017c4167bece5742fa6af (diff)
Modified the orkaudio API for StartCapture and PauseCapture to carry out their respective operations when the nativecallid is supplied. Added a new API, StopCapture, which causes a session to stop when any of the party, orkuid or nativecallid is provided as a parameter. This API is different from the PauseCapture API in the sense that it actually causes a session to stop and the WAV file is produced. After calling StopCapture, the session cannot be re-started with the StartCapture API (record).
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@633 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/OrkAudio.cpp2
-rw-r--r--orkaudio/audiocaptureplugins/common/AudioCapturePluginCommon.h6
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.cpp186
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.h8
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp112
-rw-r--r--orkbasecxx/AudioCapturePlugin.h6
-rw-r--r--orkbasecxx/CapturePluginProxy.cpp12
-rw-r--r--orkbasecxx/CapturePluginProxy.h6
-rw-r--r--orkbasecxx/Reporting.cpp6
-rw-r--r--orkbasecxx/messages/Message.h1
-rw-r--r--orkbasecxx/messages/RecordMsg.cpp46
-rw-r--r--orkbasecxx/messages/RecordMsg.h17
12 files changed, 341 insertions, 67 deletions
diff --git a/orkaudio/OrkAudio.cpp b/orkaudio/OrkAudio.cpp
index be0dead..0505250 100644
--- a/orkaudio/OrkAudio.cpp
+++ b/orkaudio/OrkAudio.cpp
@@ -218,6 +218,8 @@ void MainThread()
ObjectFactory::GetSingleton()->RegisterObject(objRef);
objRef.reset(new PauseMsg);
ObjectFactory::GetSingleton()->RegisterObject(objRef);
+ objRef.reset(new StopMsg);
+ ObjectFactory::GetSingleton()->RegisterObject(objRef);
//objRef.reset(new TestMsg);
//ObjectFactory::GetSingleton()->RegisterObject(objRef);
diff --git a/orkaudio/audiocaptureplugins/common/AudioCapturePluginCommon.h b/orkaudio/audiocaptureplugins/common/AudioCapturePluginCommon.h
index c406c19..6c3b6ec 100644
--- a/orkaudio/audiocaptureplugins/common/AudioCapturePluginCommon.h
+++ b/orkaudio/audiocaptureplugins/common/AudioCapturePluginCommon.h
@@ -30,9 +30,9 @@ DLL_EXPORT void __CDECL__ Run();
DLL_EXPORT void __CDECL__ Initialize();
DLL_EXPORT void __CDECL__ Shutdown();
DLL_EXPORT void __CDECL__ Configure(DOMNode*);
-DLL_EXPORT void __CDECL__ StartCapture(CStdString& party, CStdString& orkuid);
-DLL_EXPORT void __CDECL__ StopCapture(CStdString& party);
-DLL_EXPORT void __CDECL__ PauseCapture(CStdString& party, CStdString& orkuid);
+DLL_EXPORT void __CDECL__ StartCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid);
+DLL_EXPORT void __CDECL__ StopCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid);
+DLL_EXPORT void __CDECL__ PauseCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid);
DLL_EXPORT void __CDECL__ SetOnHold(CStdString& port, CStdString& orkuid);
DLL_EXPORT void __CDECL__ SetOffHold(CStdString& port, CStdString& orkuid);
}
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
index 93417c8..0927ae1 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
@@ -1236,6 +1236,18 @@ bool RtpSession::PartyMatches(CStdString &party)
return false;
}
+bool RtpSession::NativeCallIdMatches(CStdString& callid)
+{
+ if(callid.size() > 0)
+ {
+ if(m_callId.CompareNoCase(callid) == 0)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
void RtpSession::ReportSkinnyCallInfo(SkCallInfoStruct* callInfo, IpHeaderStruct* ipHeader)
{
std::map<CStdString, CStdString>::iterator pair;
@@ -2547,6 +2559,40 @@ void RtpSessions::StartCaptureOrkuid(CStdString& orkuid)
LOG4CXX_INFO(m_log, logMsg);
}
+CStdString RtpSessions::StartCaptureNativeCallId(CStdString& nativecallid)
+{
+ std::map<CStdString, RtpSessionRef>::iterator pair;
+ bool found = false;
+ CStdString logMsg;
+ RtpSessionRef session;
+ CStdString orkUid = CStdString("");
+
+ for(pair = m_byIpAndPort.begin(); pair != m_byIpAndPort.end() && found == false; pair++)
+ {
+ session = pair->second;
+
+ if(session->NativeCallIdMatches(nativecallid))
+ {
+ session->m_keep = true;
+ found = true;
+ orkUid = session->GetOrkUid();
+ }
+ }
+
+ if(found)
+ {
+ logMsg.Format("[%s] StartCaptureNativeCallId: Started capture, nativecallid:%s", session->m_trackingId, nativecallid);
+ }
+ else
+ {
+ logMsg.Format("StartCaptureNativeCallId: No session has native callid:%s", nativecallid);
+ }
+
+ LOG4CXX_INFO(m_log, logMsg);
+
+ return orkUid;
+}
+
CStdString RtpSessions::StartCapture(CStdString& party)
{
std::map<CStdString, RtpSessionRef>::iterator pair;
@@ -2581,12 +2627,13 @@ CStdString RtpSessions::StartCapture(CStdString& party)
return orkUid;
}
-void RtpSessions::PauseCapture(CStdString& party)
+CStdString RtpSessions::PauseCapture(CStdString& party)
{
std::map<CStdString, RtpSessionRef>::iterator pair;
bool found = false;
CStdString logMsg;
RtpSessionRef session;
+ CStdString orkUid = CStdString("");
for(pair = m_byIpAndPort.begin(); pair != m_byIpAndPort.end() && found == false; pair++)
{
@@ -2596,6 +2643,7 @@ void RtpSessions::PauseCapture(CStdString& party)
{
session->m_keep = false;
found = true;
+ orkUid = session->GetOrkUid();
}
}
@@ -2609,6 +2657,8 @@ void RtpSessions::PauseCapture(CStdString& party)
}
LOG4CXX_INFO(m_log, logMsg);
+
+ return orkUid;
}
void RtpSessions::PauseCaptureOrkuid(CStdString& orkuid)
@@ -2641,6 +2691,140 @@ void RtpSessions::PauseCaptureOrkuid(CStdString& orkuid)
LOG4CXX_INFO(m_log, logMsg);
}
+CStdString RtpSessions::PauseCaptureNativeCallId(CStdString& nativecallid)
+{
+ std::map<CStdString, RtpSessionRef>::iterator pair;
+ bool found = false;
+ CStdString logMsg;
+ RtpSessionRef session;
+ CStdString orkUid = CStdString("");
+
+ for(pair = m_byIpAndPort.begin(); pair != m_byIpAndPort.end() && found == false; pair++)
+ {
+ session = pair->second;
+
+ if(session->NativeCallIdMatches(nativecallid))
+ {
+ session->m_keep = false;
+ found = true;
+ orkUid = session->GetOrkUid();
+ }
+ }
+
+ if(found)
+ {
+ logMsg.Format("[%s] PauseCaptureNativeCallId: Paused capture, nativecallid:%s", session->m_trackingId, nativecallid);
+ }
+ else
+ {
+ logMsg.Format("PauseCaptureNativeCallId: No session has native callid:%s", nativecallid);
+ }
+
+ LOG4CXX_INFO(m_log, logMsg);
+
+ return orkUid;
+}
+
+CStdString RtpSessions::StopCapture(CStdString& party)
+{
+ std::map<CStdString, RtpSessionRef>::iterator pair;
+ bool found = false;
+ CStdString logMsg;
+ RtpSessionRef session;
+ CStdString orkUid = CStdString("");
+
+ for(pair = m_byIpAndPort.begin(); pair != m_byIpAndPort.end() && found == false; pair++)
+ {
+ session = pair->second;
+
+ if (session->PartyMatches(party))
+ {
+ found = true;
+ orkUid = session->GetOrkUid();
+ }
+ }
+
+ if(found)
+ {
+ logMsg.Format("[%s] StopCapture: stopping capture, party:%s", session->m_trackingId, party);
+ LOG4CXX_INFO(m_log, logMsg);
+ Stop(session);
+ }
+ else
+ {
+ logMsg.Format("StopCapture: No session has party %s", party);
+ LOG4CXX_INFO(m_log, logMsg);
+ }
+
+ return orkUid;
+}
+
+void RtpSessions::StopCaptureOrkuid(CStdString& orkuid)
+{
+ std::map<CStdString, RtpSessionRef>::iterator pair;
+ bool found = false;
+ CStdString logMsg;
+ RtpSessionRef session;
+
+ for(pair = m_byIpAndPort.begin(); pair != m_byIpAndPort.end() && found == false; pair++)
+ {
+ session = pair->second;
+
+ if(session->OrkUidMatches(orkuid))
+ {
+ found = true;
+ }
+ }
+
+ if(found)
+ {
+ logMsg.Format("[%s] StopCaptureOrkuid: stopping capture, orkuid:%s", session->m_trackingId, orkuid);
+ LOG4CXX_INFO(m_log, logMsg);
+ Stop(session);
+ }
+ else
+ {
+ logMsg.Format("StopCaptureOrkuid: No session has orkuid:%s", orkuid);
+ LOG4CXX_INFO(m_log, logMsg);
+ Stop(session);
+ }
+}
+
+CStdString RtpSessions::StopCaptureNativeCallId(CStdString& nativecallid)
+{
+ std::map<CStdString, RtpSessionRef>::iterator pair;
+ bool found = false;
+ CStdString logMsg;
+ RtpSessionRef session;
+ CStdString orkUid = CStdString("");
+
+ for(pair = m_byIpAndPort.begin(); pair != m_byIpAndPort.end() && found == false; pair++)
+ {
+ session = pair->second;
+
+ if(session->NativeCallIdMatches(nativecallid))
+ {
+ found = true;
+ orkUid = session->GetOrkUid();
+ }
+ }
+
+ if(found)
+ {
+ logMsg.Format("[%s] StopCaptureNativeCallId: stopping capture, nativecallid:%s", session->m_trackingId, nativecallid);
+ LOG4CXX_INFO(m_log, logMsg);
+ Stop(session);
+ }
+ else
+ {
+ logMsg.Format("StopCaptureNativeCallId: No session has native callid:%s", nativecallid);
+ LOG4CXX_INFO(m_log, logMsg);
+ Stop(session);
+ }
+
+ return orkUid;
+}
+
void RtpSessions::SaveLocalPartyMap(CStdString& oldparty, CStdString& newparty)
{
m_localPartyMap.insert(std::make_pair(oldparty, newparty));
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.h b/orkaudio/audiocaptureplugins/voip/RtpSession.h
index 30efc85..804511c 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.h
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.h
@@ -153,6 +153,7 @@ public:
void ReportRtcpSrcDescription(RtcpSrcDescriptionPacketInfoRef& rtcpInfo);
bool OrkUidMatches(CStdString &oUid);
bool PartyMatches(CStdString &party);
+ bool NativeCallIdMatches(CStdString &callid);
void UpdateMetadataSkinny();
void ReportSkinnyCallInfo(SkCallInfoStruct*, IpHeaderStruct* ipHeader);
CStdString GetOrkUid();
@@ -265,8 +266,13 @@ public:
EndpointInfoRef GetEndpointInfo(struct in_addr endpointIp);
CStdString StartCapture(CStdString& party);
void StartCaptureOrkuid(CStdString& orkuid);
- void PauseCapture(CStdString& party);
+ CStdString StartCaptureNativeCallId(CStdString& nativecallid);
+ CStdString PauseCaptureNativeCallId(CStdString& nativecallid);
+ CStdString PauseCapture(CStdString& party);
void PauseCaptureOrkuid(CStdString& orkuid);
+ CStdString StopCapture(CStdString& party);
+ void StopCaptureOrkuid(CStdString& orkuid);
+ CStdString StopCaptureNativeCallId(CStdString& nativecallid);
void SaveLocalPartyMap(CStdString& oldparty, CStdString& newparty);
CStdString GetLocalPartyMap(CStdString& oldlocalparty);
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
index 6640590..cc0bf77 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
@@ -85,9 +85,9 @@ public:
void Initialize();
void Run();
void Shutdown();
- void StartCapture(CStdString& port, CStdString& orkuid);
- void StopCapture(CStdString& port);
- void PauseCapture(CStdString& port, CStdString& orkuid);
+ void StartCapture(CStdString& port, CStdString& orkuid, CStdString& nativecallid);
+ void StopCapture(CStdString& port, CStdString& orkuid, CStdString& nativecallid);
+ void PauseCapture(CStdString& port, CStdString& orkuid, CStdString& nativecallid);
void SetOnHold(CStdString& port, CStdString& orkuid);
void SetOffHold(CStdString& port, CStdString& orkuid);
void ReportPcapStats();
@@ -3563,19 +3563,73 @@ void VoIp::Shutdown()
#endif
}
-void VoIp::StartCapture(CStdString& port, CStdString& orkuid)
+void VoIp::StartCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
- ;
+ CStdString logMsg;
+
+ logMsg.Format("StartCapture: party:%s orkuid:%s nativecallid:%s", party, orkuid, nativecallid);
+ LOG4CXX_INFO(s_voipPluginLog, logMsg);
+
+ MutexSentinel mutexSentinel(s_mutex);
+
+ if(orkuid.size())
+ {
+ RtpSessionsSingleton::instance()->StartCaptureOrkuid(orkuid);
+ }
+ else if(party.size())
+ {
+ orkuid = RtpSessionsSingleton::instance()->StartCapture(party);
+ }
+ else if(nativecallid.size())
+ {
+ orkuid = RtpSessionsSingleton::instance()->StartCaptureNativeCallId(nativecallid);
+ }
}
-void VoIp::PauseCapture(CStdString& port, CStdString& orkuid)
+void VoIp::PauseCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
- ;
+ CStdString logMsg;
+
+ logMsg.Format("PauseCapture: party:%s orkuid:%s nativecallid:%s", party, orkuid, nativecallid);
+ LOG4CXX_INFO(s_voipPluginLog, logMsg);
+
+ MutexSentinel mutexSentinel(s_mutex);
+
+ if(orkuid.size())
+ {
+ RtpSessionsSingleton::instance()->PauseCaptureOrkuid(orkuid);
+ }
+ else if(party.size())
+ {
+ orkuid = RtpSessionsSingleton::instance()->PauseCapture(party);
+ }
+ else if(nativecallid.size())
+ {
+ orkuid = RtpSessionsSingleton::instance()->PauseCaptureNativeCallId(nativecallid);
+ }
}
-void VoIp::StopCapture(CStdString& port)
+void VoIp::StopCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
- ;
+ CStdString logMsg;
+
+ logMsg.Format("StopCapture: party:%s orkuid:%s nativecallid:%s", party, orkuid, nativecallid);
+ LOG4CXX_INFO(s_voipPluginLog, logMsg);
+
+ MutexSentinel mutexSentinel(s_mutex);
+
+ if(orkuid.size())
+ {
+ RtpSessionsSingleton::instance()->StopCaptureOrkuid(orkuid);
+ }
+ else if(party.size())
+ {
+ orkuid = RtpSessionsSingleton::instance()->StopCapture(party);
+ }
+ else if(nativecallid.size())
+ {
+ orkuid = RtpSessionsSingleton::instance()->StopCaptureNativeCallId(nativecallid);
+ }
}
void VoIp::SetOnHold(CStdString& port, CStdString& orkuid)
@@ -3603,47 +3657,19 @@ void __CDECL__ Shutdown()
VoIpSingleton::instance()->Shutdown();
}
-void __CDECL__ StartCapture(CStdString& party, CStdString& orkuid)
+void __CDECL__ StartCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
- CStdString logMsg;
-
- logMsg.Format("StartCapture: party:%s orkuid:%s", party, orkuid);
- LOG4CXX_INFO(s_voipPluginLog, logMsg);
-
- MutexSentinel mutexSentinel(s_mutex);
-
- if(orkuid.size())
- {
- RtpSessionsSingleton::instance()->StartCaptureOrkuid(orkuid);
- }
- else
- {
- orkuid = RtpSessionsSingleton::instance()->StartCapture(party);
- }
+ VoIpSingleton::instance()->StartCapture(party, orkuid, nativecallid);
}
-void __CDECL__ PauseCapture(CStdString& party, CStdString& orkuid)
+void __CDECL__ PauseCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
- CStdString logMsg;
-
- logMsg.Format("PauseCapture: party:%s orkuid:%s", party, orkuid);
- LOG4CXX_INFO(s_voipPluginLog, logMsg);
-
- MutexSentinel mutexSentinel(s_mutex);
-
- if(orkuid.size())
- {
- RtpSessionsSingleton::instance()->PauseCaptureOrkuid(orkuid);
- }
- else
- {
- RtpSessionsSingleton::instance()->PauseCapture(party);
- }
+ VoIpSingleton::instance()->PauseCapture(party, orkuid, nativecallid);
}
-void __CDECL__ StopCapture(CStdString& party)
+void __CDECL__ StopCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
- ;
+ VoIpSingleton::instance()->StopCapture(party, orkuid, nativecallid);
}
void __CDECL__ SetOnHold(CStdString& port, CStdString& orkuid)
diff --git a/orkbasecxx/AudioCapturePlugin.h b/orkbasecxx/AudioCapturePlugin.h
index ede2ea0..a1bc684 100644
--- a/orkbasecxx/AudioCapturePlugin.h
+++ b/orkbasecxx/AudioCapturePlugin.h
@@ -41,9 +41,9 @@ typedef void (__CDECL__* InitializeFunction)();
typedef void (__CDECL__* RunFunction)();
typedef void (__CDECL__* ShutdownFunction)();
typedef void (__CDECL__* ConfigureFunction)(DOMNode*);
-typedef void (__CDECL__* StartCaptureFunction)(CStdString& port, CStdString& orkUid);
-typedef void (__CDECL__* StopCaptureFunction)(CStdString& port);
-typedef void (__CDECL__* PauseCaptureFunction)(CStdString& port, CStdString& orkUid);
+typedef void (__CDECL__* StartCaptureFunction)(CStdString& port, CStdString& orkUid, CStdString& nativecallid);
+typedef void (__CDECL__* StopCaptureFunction)(CStdString& port, CStdString& orkUid, CStdString& nativecallid);
+typedef void (__CDECL__* PauseCaptureFunction)(CStdString& port, CStdString& orkUid, CStdString& nativecallid);
typedef void (__CDECL__* SetOnHoldFunction)(CStdString& port, CStdString& orkUid);
typedef void (__CDECL__* SetOffHoldFunction)(CStdString& port, CStdString& orkUid);
diff --git a/orkbasecxx/CapturePluginProxy.cpp b/orkbasecxx/CapturePluginProxy.cpp
index 87fc176..bc365bc 100644
--- a/orkbasecxx/CapturePluginProxy.cpp
+++ b/orkbasecxx/CapturePluginProxy.cpp
@@ -213,11 +213,11 @@ void CapturePluginProxy::Shutdown()
}
}
-void CapturePluginProxy::StartCapture(CStdString& party, CStdString& orkuid)
+void CapturePluginProxy::StartCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
if(m_loaded)
{
- m_startCaptureFunction(party, orkuid);
+ m_startCaptureFunction(party, orkuid, nativecallid);
}
else
{
@@ -225,11 +225,11 @@ void CapturePluginProxy::StartCapture(CStdString& party, CStdString& orkuid)
}
}
-void CapturePluginProxy::StopCapture(CStdString& party)
+void CapturePluginProxy::StopCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
if(m_loaded)
{
- m_stopCaptureFunction(party);
+ m_stopCaptureFunction(party, orkuid, nativecallid);
}
else
{
@@ -261,11 +261,11 @@ void CapturePluginProxy::SetOffHold(CStdString& party, CStdString& orkuid)
}
}
-void CapturePluginProxy::PauseCapture(CStdString& party, CStdString& orkuid)
+void CapturePluginProxy::PauseCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid)
{
if(m_loaded)
{
- m_pauseCaptureFunction(party, orkuid);
+ m_pauseCaptureFunction(party, orkuid, nativecallid);
}
else
{
diff --git a/orkbasecxx/CapturePluginProxy.h b/orkbasecxx/CapturePluginProxy.h
index 3ce7e46..d35af24 100644
--- a/orkbasecxx/CapturePluginProxy.h
+++ b/orkbasecxx/CapturePluginProxy.h
@@ -28,9 +28,9 @@ public:
void Run();
void Shutdown();
- void StartCapture(CStdString& party, CStdString& orkuid);
- void PauseCapture(CStdString& party, CStdString& orkuid);
- void StopCapture(CStdString& party);
+ void StartCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid);
+ void PauseCapture(CStdString& party, CStdString& orkuid, CStdString& nativecallid);
+ void StopCapture(CStdString& party, CStdString& orkUid, CStdString& nativecallid);
void SetOnHold(CStdString& party, CStdString& orkuid);
void SetOffHold(CStdString& party, CStdString& orkuid);
diff --git a/orkbasecxx/Reporting.cpp b/orkbasecxx/Reporting.cpp
index f1bbf20..a0664b6 100644
--- a/orkbasecxx/Reporting.cpp
+++ b/orkbasecxx/Reporting.cpp
@@ -373,9 +373,9 @@ void ReportingThread::Run()
// Tape is wanted
if(CONFIG.m_lookBackRecording == false && CONFIG.m_allowAutomaticRecording && ptapeMsg->m_stage.Equals("start"))
{
- CStdString orkuid = "";
- CapturePluginProxy::Singleton()->StartCapture(ptapeMsg->m_localParty, orkuid);
- CapturePluginProxy::Singleton()->StartCapture(ptapeMsg->m_remoteParty, orkuid);
+ CStdString orkuid = "", nativecallid = "";
+ CapturePluginProxy::Singleton()->StartCapture(ptapeMsg->m_localParty, orkuid, nativecallid);
+ CapturePluginProxy::Singleton()->StartCapture(ptapeMsg->m_remoteParty, orkuid, nativecallid);
}
}
//else
diff --git a/orkbasecxx/messages/Message.h b/orkbasecxx/messages/Message.h
index de1275b..e15fda8 100644
--- a/orkbasecxx/messages/Message.h
+++ b/orkbasecxx/messages/Message.h
@@ -34,6 +34,7 @@
#define FILENAME_PARAM "filename"
#define ORKUID_PARAM "orkuid"
#define PARTY_PARAM "party"
+#define NATIVE_CALLID_PARAM "nativecallid"
#define SUCCESS_PARAM "sucess"
#define SUCCESS_DEFAULT true
diff --git a/orkbasecxx/messages/RecordMsg.cpp b/orkbasecxx/messages/RecordMsg.cpp
index 35a21b6..6b5688f 100644
--- a/orkbasecxx/messages/RecordMsg.cpp
+++ b/orkbasecxx/messages/RecordMsg.cpp
@@ -17,6 +17,7 @@
#define RECORD_CLASS "record"
#define PAUSE_CLASS "pause"
+#define STOP_CLASS "stop"
void PauseMsg::Define(Serializer* s)
{
@@ -24,6 +25,7 @@ void PauseMsg::Define(Serializer* s)
s->StringValue(OBJECT_TYPE_TAG, pauseClass, true);
s->StringValue(PARTY_PARAM, m_party, false);
s->StringValue(ORKUID_PARAM, m_orkuid, false);
+ s->StringValue(NATIVE_CALLID_PARAM, m_nativecallid, false);
}
CStdString PauseMsg::GetClassName()
@@ -42,8 +44,43 @@ ObjectRef PauseMsg::Process()
ObjectRef ref(msg);
CStdString logMsg;
- logMsg.Format("Pausing capture for party:%s orkuid:%s", m_party, m_orkuid);
- CapturePluginProxy::Singleton()->PauseCapture(m_party, m_orkuid);
+ CapturePluginProxy::Singleton()->PauseCapture(m_party, m_orkuid, m_nativecallid);
+ logMsg.Format("Pausing capture for party:%s orkuid:%s nativecallid:%s", m_party, m_orkuid, m_nativecallid);
+ msg->m_success = true;
+ msg->m_comment = logMsg;
+
+ return ref;
+}
+
+//===================================================
+
+void StopMsg::Define(Serializer* s)
+{
+ CStdString stopClass(STOP_CLASS);
+ s->StringValue(OBJECT_TYPE_TAG, stopClass, true);
+ s->StringValue(PARTY_PARAM, m_party, false);
+ s->StringValue(ORKUID_PARAM, m_orkuid, false);
+ s->StringValue(NATIVE_CALLID_PARAM, m_nativecallid, false);
+}
+
+CStdString StopMsg::GetClassName()
+{
+ return CStdString(STOP_CLASS);
+}
+
+ObjectRef StopMsg::NewInstance()
+{
+ return ObjectRef(new StopMsg);
+}
+
+ObjectRef StopMsg::Process()
+{
+ SimpleResponseMsg* msg = new SimpleResponseMsg;
+ ObjectRef ref(msg);
+ CStdString logMsg;
+
+ CapturePluginProxy::Singleton()->StopCapture(m_party, m_orkuid, m_nativecallid);
+ logMsg.Format("Stopping capture for party:%s orkuid:%s nativecallid:%s", m_party, m_orkuid, m_nativecallid);
msg->m_success = true;
msg->m_comment = logMsg;
@@ -58,6 +95,7 @@ void RecordMsg::Define(Serializer* s)
s->StringValue(OBJECT_TYPE_TAG, recordClass, true);
s->StringValue(PARTY_PARAM, m_party, false);
s->StringValue(ORKUID_PARAM, m_orkuid, false);
+ s->StringValue(NATIVE_CALLID_PARAM, m_nativecallid, false);
}
CStdString RecordMsg::GetClassName()
@@ -76,8 +114,8 @@ ObjectRef RecordMsg::Process()
ObjectRef ref(msg);
CStdString logMsg;
- CapturePluginProxy::Singleton()->StartCapture(m_party, m_orkuid);
- logMsg.Format("Starting capture for party:%s orkuid:%s", m_party, m_orkuid);
+ CapturePluginProxy::Singleton()->StartCapture(m_party, m_orkuid, m_nativecallid);
+ logMsg.Format("Starting capture for party:%s orkuid:%s nativecallid:%s", m_party, m_orkuid, m_nativecallid);
msg->m_success = true;
msg->m_comment = logMsg;
diff --git a/orkbasecxx/messages/RecordMsg.h b/orkbasecxx/messages/RecordMsg.h
index c374476..7dd58ed 100644
--- a/orkbasecxx/messages/RecordMsg.h
+++ b/orkbasecxx/messages/RecordMsg.h
@@ -29,6 +29,7 @@ public:
CStdString m_party;
CStdString m_orkuid;
+ CStdString m_nativecallid;
};
class DLL_IMPORT_EXPORT_ORKBASE PauseMsg : public SyncMessage
@@ -43,6 +44,22 @@ public:
CStdString m_party;
CStdString m_orkuid;
+ CStdString m_nativecallid;
+};
+
+class DLL_IMPORT_EXPORT_ORKBASE StopMsg : public SyncMessage
+{
+public:
+ void Define(Serializer* s);
+ inline void Validate() {};
+
+ CStdString GetClassName();
+ ObjectRef NewInstance();
+ ObjectRef Process();
+
+ CStdString m_party;
+ CStdString m_orkuid;
+ CStdString m_nativecallid;
};
#endif