summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip/RtpSession.h
diff options
context:
space:
mode:
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/RtpSession.h')
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.h b/orkaudio/audiocaptureplugins/voip/RtpSession.h
index a205e63..843ce57 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.h
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.h
@@ -24,6 +24,27 @@
using namespace log4cxx;
+class Sip302MovedTemporarilyInfo
+{
+public:
+ Sip302MovedTemporarilyInfo();
+ void ToString(CStdString& string);
+
+ struct in_addr m_senderIp;
+ struct in_addr m_receiverIp;
+ CStdString m_from;
+ CStdString m_to;
+ CStdString m_contact;
+ CStdString m_callId;
+ CStdString m_fromDomain;
+ CStdString m_toDomain;
+ CStdString m_contactDomain;
+ CStdString m_fromName;
+ CStdString m_toName;
+ CStdString m_contactName;
+};
+typedef boost::shared_ptr<Sip302MovedTemporarilyInfo> Sip302MovedTemporarilyInfoRef;
+
class SipInviteInfo
{
public:
@@ -133,6 +154,8 @@ class EndpointInfo
{
public:
CStdString m_extension;
+ CStdString m_latestCallId;
+ struct in_addr m_ip;
};
typedef boost::shared_ptr<EndpointInfo> EndpointInfoRef;
@@ -165,6 +188,7 @@ public:
void ReportSkinnyCallInfo(SkCallInfoStruct*, IpHeaderStruct* ipHeader);
CStdString GetOrkUid();
void MarkAsOnDemand();
+ bool Stopped();
CStdString m_capturePort;
CStdString m_trackingId;
@@ -196,6 +220,7 @@ public:
bool m_nonLookBackSessionStarted;
bool m_onDemand;
std::list<CStdString> m_otherIpAndPortMappings;
+ bool m_newRtpStream;
private:
void ProcessMetadataSip(RtpPacketInfoRef&);
@@ -264,7 +289,7 @@ public:
void ReportSkinnyStartMediaTransmission(SkStartMediaTransmissionStruct*, IpHeaderStruct* ipHeader);
void ReportSkinnyStopMediaTransmission(SkStopMediaTransmissionStruct*, IpHeaderStruct* ipHeader);
void ReportSkinnyOpenReceiveChannelAck(SkOpenReceiveChannelAckStruct*);
- void SetEndpointExtension(CStdString& extension, struct in_addr* endpointIp);
+ void SetEndpointExtension(CStdString& extension, struct in_addr* endpointIp, CStdString& callId);
void ReportSkinnyLineStat(SkLineStatStruct*, IpHeaderStruct* ipHeader);
void ReportSkinnySoftKeyHold(SkSoftKeyEventMessageStruct* skEvent, IpHeaderStruct* ipHeader);
void ReportSkinnySoftKeyResume(SkSoftKeyEventMessageStruct* skEvent, IpHeaderStruct* ipHeader);
@@ -273,6 +298,7 @@ public:
void ReportSipErrorPacket(SipFailureMessageInfoRef& sipError);
void ReportSip200Ok(Sip200OkInfoRef info);
void ReportSipSessionProgress(SipSessionProgressInfoRef& info);
+ void ReportSip302MovedTemporarily(Sip302MovedTemporarilyInfoRef& info);
void Hoover(time_t now);
EndpointInfoRef GetEndpointInfo(struct in_addr endpointIp);
CStdString StartCapture(CStdString& party);
@@ -300,6 +326,7 @@ private:
CStdString GenerateSkinnyCallId(struct in_addr endpointIp, unsigned int callId);
void UpdateEndpointWithCallInfo(SkCallInfoStruct* callInfo, IpHeaderStruct* ipHeader);
void UpdateSessionWithCallInfo(SkCallInfoStruct*, RtpSessionRef&);
+ bool TrySkinnySession(RtpPacketInfoRef& rtpPacket, EndpointInfoRef&);
std::map<CStdString, RtpSessionRef> m_byIpAndPort;
std::map<CStdString, RtpSessionRef> m_byCallId;