summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-04-14 20:41:57 +0000
committerHenri Herscher <henri@oreka.org>2006-04-14 20:41:57 +0000
commite826f0fed4ca9c31ff70ffba22b072fc58e4c306 (patch)
tree6b3313997966be3bff8a0174d5e6a39227182579
parent12ed4e413577cdfabe7123dc8bfe70df05b87fe9 (diff)
OrkAudio now reports local and remote IP addresses for each tape when the voip plugin is used.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@217 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/AudioTape.cpp14
-rw-r--r--orkaudio/AudioTape.h6
-rw-r--r--orkaudio/LogManager.cpp1
-rw-r--r--orkaudio/LogManager.h1
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.cpp37
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.h4
-rw-r--r--orkaudio/messages/TapeMsg.cpp5
-rw-r--r--orkaudio/messages/TapeMsg.h8
-rw-r--r--orkbasecxx/AudioCapture.cpp24
-rw-r--r--orkbasecxx/AudioCapture.h10
10 files changed, 106 insertions, 4 deletions
diff --git a/orkaudio/AudioTape.cpp b/orkaudio/AudioTape.cpp
index 7efce4d..60580e3 100644
--- a/orkaudio/AudioTape.cpp
+++ b/orkaudio/AudioTape.cpp
@@ -38,6 +38,8 @@ void AudioTapeDescription::Define(Serializer* s)
s->StringValue("localParty", m_localParty);
s->StringValue("remoteParty", m_remoteParty);
s->StringValue("localEntryPoint", m_localEntryPoint);
+ s->StringValue("localIp", m_localIp);
+ s->StringValue("remoteIp", m_remoteIp);
}
void AudioTapeDescription::Validate(){}
@@ -182,6 +184,8 @@ void AudioTape::SetShouldStop()
void AudioTape::AddCaptureEvent(CaptureEventRef eventRef, bool send)
{
+ CStdString logMsg;
+
// Extract useful info from well known events
switch(eventRef->m_type)
{
@@ -200,6 +204,8 @@ void AudioTape::AddCaptureEvent(CaptureEventRef eventRef, bool send)
atd.m_localEntryPoint = m_localEntryPoint;
atd.m_localParty = m_localParty;
atd.m_remoteParty = m_remoteParty;
+ atd.m_localIp = m_localIp;
+ atd.m_remoteIp = m_remoteIp;
CStdString description = atd.SerializeSingleLine();
LOG4CXX_INFO(LOG.tapelistLog, description);
}
@@ -216,6 +222,12 @@ void AudioTape::AddCaptureEvent(CaptureEventRef eventRef, bool send)
case CaptureEvent::EtLocalEntryPoint:
m_localEntryPoint = eventRef->m_value;
break;
+ case CaptureEvent::EtLocalIp:
+ m_localIp = eventRef->m_value;
+ break;
+ case CaptureEvent::EtRemoteIp:
+ m_remoteIp = eventRef->m_value;
+ break;
}
// Store the capture event locally
@@ -252,6 +264,8 @@ void AudioTape::GetMessage(MessageRef& msgRef)
pTapeMsg->m_direction = CaptureEvent::DirectionToString(m_direction);
pTapeMsg->m_duration = m_duration;
pTapeMsg->m_timestamp = m_beginDate;
+ pTapeMsg->m_localIp = m_localIp;
+ pTapeMsg->m_remoteIp = m_remoteIp;
}
else
{
diff --git a/orkaudio/AudioTape.h b/orkaudio/AudioTape.h
index adf9b85..8fd8e8f 100644
--- a/orkaudio/AudioTape.h
+++ b/orkaudio/AudioTape.h
@@ -41,7 +41,9 @@ public:
CStdString m_remoteParty;
CaptureEvent::DirectionEnum m_direction;
time_t m_beginDate;
- int m_duration;
+ int m_duration;
+ CStdString m_localIp;
+ CStdString m_remoteIp;
};
class AudioTape
@@ -102,6 +104,8 @@ public:
time_t m_beginDate;
time_t m_endDate;
time_t m_duration;
+ CStdString m_localIp;
+ CStdString m_remoteIp;
private:
void GenerateFilePathAndIdentifier();
diff --git a/orkaudio/LogManager.cpp b/orkaudio/LogManager.cpp
index 5773748..3092f85 100644
--- a/orkaudio/LogManager.cpp
+++ b/orkaudio/LogManager.cpp
@@ -48,6 +48,7 @@ void OrkLogManager::Initialize()
reportingLog = Logger::getLogger("reporting");
configLog = Logger::getLogger("config");
tapelistLog = Logger::getLogger("tapelist");
+ tapeLog = Logger::getLogger("tape");
}
void OrkLogManager::Shutdown()
diff --git a/orkaudio/LogManager.h b/orkaudio/LogManager.h
index 2556147..70aadc1 100644
--- a/orkaudio/LogManager.h
+++ b/orkaudio/LogManager.h
@@ -35,6 +35,7 @@ public:
LoggerPtr reportingLog;
LoggerPtr configLog;
LoggerPtr tapelistLog;
+ LoggerPtr tapeLog;
};
typedef ACE_Singleton<OrkLogManager, ACE_Thread_Mutex> OrkLogManagerSingleton;
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
index 2e74786..fcf39e3 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
@@ -78,6 +78,8 @@ void RtpSession::ProcessMetadataSipIncoming()
char szInviteeIp[16];
ACE_OS::inet_ntop(AF_INET, (void*)&m_inviteeIp, szInviteeIp, sizeof(szInviteeIp));
m_capturePort.Format("%s,%d", szInviteeIp, m_inviteeTcpPort);
+ m_localIp = m_inviteeIp;
+ m_remoteIp = m_invitorIp;
}
void RtpSession::ProcessMetadataSipOutgoing()
@@ -88,6 +90,8 @@ void RtpSession::ProcessMetadataSipOutgoing()
char szInvitorIp[16];
ACE_OS::inet_ntop(AF_INET, (void*)&m_invitorIp, szInvitorIp, sizeof(szInvitorIp));
m_capturePort.Format("%s,%d", szInvitorIp, m_invitorTcpPort);
+ m_localIp = m_invitorIp;
+ m_remoteIp = m_inviteeIp;
}
void RtpSession::ProcessMetadataRawRtp(RtpPacketInfoRef& rtpPacket)
@@ -133,12 +137,17 @@ void RtpSession::ProcessMetadataRawRtp(RtpPacketInfoRef& rtpPacket)
m_localParty = szSourceIp;
m_remoteParty = szDestIp;
m_capturePort.Format("%s,%d", szSourceIp, rtpPacket->m_sourcePort);
+ m_localIp = rtpPacket->m_sourceIp;
+ m_remoteIp = rtpPacket->m_destIp;
}
else
{
m_localParty = szDestIp;
m_remoteParty = szSourceIp;
m_capturePort.Format("%s,%d", szDestIp, rtpPacket->m_destPort);
+ m_localIp = rtpPacket->m_destIp;
+ m_remoteIp = rtpPacket->m_sourceIp;
+
}
}
@@ -211,13 +220,21 @@ void RtpSession::ProcessMetadataSkinny(RtpPacketInfoRef& rtpPacket)
char szDestIp[16];
ACE_OS::inet_ntop(AF_INET, (void*)&rtpPacket->m_destIp, szDestIp, sizeof(szDestIp));
m_capturePort.Format("%s,%u", szDestIp, rtpPacket->m_destPort);
+
+ m_localIp = rtpPacket->m_destIp;
+ m_remoteIp = rtpPacket->m_sourceIp;
+ }
+ else
+ {
+ m_localIp = rtpPacket->m_sourceIp;
+ m_remoteIp = rtpPacket->m_destIp;
}
}
void RtpSession::ReportMetadata()
{
- // report Local party
+ // Report Local party
CaptureEventRef event(new CaptureEvent());
event->m_type = CaptureEvent::EtLocalParty;
event->m_value = m_localParty;
@@ -229,11 +246,27 @@ void RtpSession::ReportMetadata()
event->m_value = m_remoteParty;
g_captureEventCallBack(event, m_capturePort);
- // report direction
+ // Report direction
event.reset(new CaptureEvent());
event->m_type = CaptureEvent::EtDirection;
event->m_value = CaptureEvent::DirectionToString(m_direction);
g_captureEventCallBack(event, m_capturePort);
+
+ // Report Local IP address
+ char szLocalIp[16];
+ ACE_OS::inet_ntop(AF_INET, (void*)&m_localIp, szLocalIp, sizeof(szLocalIp));
+ event.reset(new CaptureEvent());
+ event->m_type = CaptureEvent::EtLocalIp;
+ event->m_value = szLocalIp;
+ g_captureEventCallBack(event, m_capturePort);
+
+ // Report Remote IP address
+ char szRemoteIp[16];
+ ACE_OS::inet_ntop(AF_INET, (void*)&m_remoteIp, szRemoteIp, sizeof(szRemoteIp));
+ event.reset(new CaptureEvent());
+ event->m_type = CaptureEvent::EtRemoteIp;
+ event->m_value = szRemoteIp;
+ g_captureEventCallBack(event, m_capturePort);
}
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.h b/orkaudio/audiocaptureplugins/voip/RtpSession.h
index 6e9c739..dc1fcae 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.h
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.h
@@ -113,6 +113,10 @@ private:
int m_invitorTcpPort;
struct in_addr m_inviteeIp;
int m_inviteeTcpPort;
+ struct in_addr m_localIp;
+ struct in_addr m_remoteIp;
+ //struct in_addr m_localMac;
+ //struct in_addr m_remoteMac;
LoggerPtr m_log;
CStdString m_capturePort;
bool m_started;
diff --git a/orkaudio/messages/TapeMsg.cpp b/orkaudio/messages/TapeMsg.cpp
index 4f21703..b624d08 100644
--- a/orkaudio/messages/TapeMsg.cpp
+++ b/orkaudio/messages/TapeMsg.cpp
@@ -41,6 +41,11 @@ void TapeMsg::Define(Serializer* s)
s->StringValue(DIRECTION_PARAM, m_direction);
s->IntValue(DURATION_PARAM, m_duration);
s->StringValue(SERVICE_PARAM, m_serviceName);
+
+ s->StringValue(LOCAL_IP_PARAM, m_localIp);
+ s->StringValue(REMOTE_IP_PARAM, m_remoteIp);
+ //s->StringValue(LOCAL_MAC_PARAM, m_localMac);
+ //s->StringValue(REMOTE_MAC_PARAM, m_remoteMac);
}
void TapeMsg::Validate()
diff --git a/orkaudio/messages/TapeMsg.h b/orkaudio/messages/TapeMsg.h
index 81f5e3e..3165bb4 100644
--- a/orkaudio/messages/TapeMsg.h
+++ b/orkaudio/messages/TapeMsg.h
@@ -28,6 +28,10 @@
#define LOCALENTRYPOINT_PARAM "localentrypoint"
#define DURATION_PARAM "duration"
#define SERVICE_PARAM "service"
+#define LOCAL_IP_PARAM "localip"
+#define REMOTE_IP_PARAM "remoteip"
+#define LOCAL_MAC_PARAM "localmac"
+#define REMOTE_MAC_PARAM "remotemac"
class TapeMsg : public SyncMessage
{
@@ -53,6 +57,10 @@ public:
CStdString m_loginString;
int m_duration;
CStdString m_serviceName;
+ CStdString m_localIp;
+ CStdString m_remoteIp;
+ CStdString m_localMac;
+ CStdString m_remoteMac;
};
typedef boost::shared_ptr<TapeMsg> TapeMsgRef;
diff --git a/orkbasecxx/AudioCapture.cpp b/orkbasecxx/AudioCapture.cpp
index e1c64c3..5523757 100644
--- a/orkbasecxx/AudioCapture.cpp
+++ b/orkbasecxx/AudioCapture.cpp
@@ -225,6 +225,14 @@ CStdString CaptureEvent::EventTypeToString(int eventTypeEnum)
return ET_LOCALENTRYPOINT;
case EtKeyValue:
return ET_KEYVALUE;
+ case EtLocalIp:
+ return ET_LOCALIP;
+ case EtRemoteIp:
+ return ET_REMOTEIP;
+ case EtLocalMac:
+ return ET_LOCALMAC;
+ case EtRemoteMac:
+ return ET_REMOTEMAC;
}
return ET_INVALID;
}
@@ -260,6 +268,22 @@ int CaptureEvent::EventTypeToEnum(CStdString& eventTypeString)
{
eventTypeEnum = EtKeyValue;
}
+ else if (eventTypeString.CompareNoCase(ET_LOCALIP) == 0)
+ {
+ eventTypeEnum = EtLocalIp;
+ }
+ else if (eventTypeString.CompareNoCase(ET_REMOTEIP) == 0)
+ {
+ eventTypeEnum = EtRemoteIp;
+ }
+ else if (eventTypeString.CompareNoCase(ET_LOCALMAC) == 0)
+ {
+ eventTypeEnum = EtLocalMac;
+ }
+ else if (eventTypeString.CompareNoCase(ET_REMOTEMAC) == 0)
+ {
+ eventTypeEnum = EtRemoteMac;
+ }
return eventTypeEnum;
}
diff --git a/orkbasecxx/AudioCapture.h b/orkbasecxx/AudioCapture.h
index 19bb184..9a9c6b4 100644
--- a/orkbasecxx/AudioCapture.h
+++ b/orkbasecxx/AudioCapture.h
@@ -112,6 +112,10 @@ public:
#define ET_LOCALPARTY "localparty"
#define ET_LOCALENTRYPOINT "localentrypoint"
#define ET_KEYVALUE "keyvalue"
+#define ET_LOCALIP "localip"
+#define ET_REMOTEIP "remoteip"
+#define ET_LOCALMAC "localmac"
+#define ET_REMOTEMAC "remotemac"
#define ET_INVALID "invalid"
typedef enum
{
@@ -123,7 +127,11 @@ public:
EtLocalParty = 5,
EtLocalEntryPoint = 6,
EtKeyValue = 7,
- EtInvalid = 8
+ EtLocalIp = 8,
+ EtRemoteIp = 9,
+ EtLocalMac = 10,
+ EtRemoteMac = 11,
+ EtInvalid = 12
} EventTypeEnum;
static CStdString EventTypeToString(int eventTypeEnum);
static int EventTypeToEnum(CStdString&);