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/audiocaptureplugins/voip/VoIp.cpp | 112 ++++++++++++++++++----------- 1 file changed, 69 insertions(+), 43 deletions(-) (limited to 'orkaudio/audiocaptureplugins/voip/VoIp.cpp') 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) -- cgit v1.2.3