From e163cf54ac781ad592da8a009876479204966b26 Mon Sep 17 00:00:00 2001 From: Gerald Begumisa Date: Fri, 14 Aug 2009 09:23:07 +0000 Subject: 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 --- orkaudio/OrkAudio.cpp | 2 + .../common/AudioCapturePluginCommon.h | 6 +- orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 186 ++++++++++++++++++++- orkaudio/audiocaptureplugins/voip/RtpSession.h | 8 +- orkaudio/audiocaptureplugins/voip/VoIp.cpp | 112 ++++++++----- orkbasecxx/AudioCapturePlugin.h | 6 +- orkbasecxx/CapturePluginProxy.cpp | 12 +- orkbasecxx/CapturePluginProxy.h | 6 +- orkbasecxx/Reporting.cpp | 6 +- orkbasecxx/messages/Message.h | 1 + orkbasecxx/messages/RecordMsg.cpp | 46 ++++- orkbasecxx/messages/RecordMsg.h | 17 ++ 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::iterator pair; @@ -2547,6 +2559,40 @@ void RtpSessions::StartCaptureOrkuid(CStdString& orkuid) LOG4CXX_INFO(m_log, logMsg); } +CStdString RtpSessions::StartCaptureNativeCallId(CStdString& nativecallid) +{ + std::map::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::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::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::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::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::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::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 -- cgit v1.2.3