diff options
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/RtpSession.h')
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.h | 29 |
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; |