summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip/RtpSession.h
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-04-25 14:59:29 +0000
committerHenri Herscher <henri@oreka.org>2006-04-25 14:59:29 +0000
commit8267f45f799c2c976534676ed03b5ab315382873 (patch)
tree49cd3692b04b53213fc7935a6a3b1a71ae4ce205 /orkaudio/audiocaptureplugins/voip/RtpSession.h
parent7d5d8183afee4086b74c9ded6de3bbab92ae04fd (diff)
Improved skinny signalling detection by taking OpenReceiveChannelAck Skinny messages into account.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@222 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/RtpSession.h')
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.h b/orkaudio/audiocaptureplugins/voip/RtpSession.h
index dc1fcae..a745c38 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.h
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.h
@@ -120,10 +120,12 @@ private:
LoggerPtr m_log;
CStdString m_capturePort;
bool m_started;
+ bool m_stopped;
int m_rtpTimestampCorrectiveOffset;
};
typedef boost::shared_ptr<RtpSession> RtpSessionRef;
+//===================================================================
class RtpSessions
{
public:
@@ -134,10 +136,16 @@ public:
void ReportSipBye(SipByeInfo bye);
void ReportSkinnyCallInfo(SkCallInfoStruct*, IpHeaderStruct* ipHeader);
void ReportSkinnyStartMediaTransmission(SkStartMediaTransmissionStruct*, IpHeaderStruct* ipHeader);
- void ReportSkinnyStopMediaTransmission(SkStopMediaTransmissionStruct*);
+ void ReportSkinnyStopMediaTransmission(SkStopMediaTransmissionStruct*, IpHeaderStruct* ipHeader);
+ void ReportSkinnyOpenReceiveChannelAck(SkOpenReceiveChannelAckStruct*);
void ReportRtpPacket(RtpPacketInfoRef& rtpPacket);
void Hoover(time_t now);
private:
+ RtpSessionRef findByEndpointIp(struct in_addr);
+ void ChangeCallId(RtpSessionRef& session, unsigned int newId);
+ void SetMediaAddress(RtpSessionRef& session, struct in_addr mediaIp, unsigned short mediaPort);
+ CStdString GenerateSkinnyCallId(struct in_addr endpointIp, unsigned int callId);
+
std::map<CStdString, RtpSessionRef> m_byIpAndPort;
std::map<CStdString, RtpSessionRef> m_byCallId;
LoggerPtr m_log;