summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip/SipSession.h
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2005-10-28 03:07:51 +0000
committerHenri Herscher <henri@oreka.org>2005-10-28 03:07:51 +0000
commitef48a96e268f65e6651138e9902d309c18be2e23 (patch)
tree4eed3275fb80c2ad84b9118f7a3b236c4be503e2 /orkaudio/audiocaptureplugins/voip/SipSession.h
parente76fa0b3e203a5eeebc15eed92be79933bd94457 (diff)
Now supports Raw RTP sessions as well as SIP/RTP. SipSession still needs renaming since it is effectively an RTP session object.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@19 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/SipSession.h')
-rw-r--r--orkaudio/audiocaptureplugins/voip/SipSession.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/SipSession.h b/orkaudio/audiocaptureplugins/voip/SipSession.h
index c1aa379..399e4f4 100644
--- a/orkaudio/audiocaptureplugins/voip/SipSession.h
+++ b/orkaudio/audiocaptureplugins/voip/SipSession.h
@@ -40,6 +40,8 @@ public:
class SipSession
{
public:
+ typedef enum{ProtRawRtp, ProtSip, ProtUnkn} ProtocolEnum;
+
SipSession();
void Stop();
void Start();
@@ -49,13 +51,16 @@ public:
CStdString m_ipAndPort;
SipInviteInfoRef m_invite;
time_t m_lastUpdated;
+ ProtocolEnum m_protocol;
private:
- void ProcessMetadata(RtpPacketInfoRef&);
- void ProcessMetadataIncoming();
- void ProcessMetadataOutgoing();
+ void ProcessMetadataSip(RtpPacketInfoRef&);
+ void ProcessMetadataSipIncoming();
+ void ProcessMetadataSipOutgoing();
+ void ProcessMetadataRawRtp(RtpPacketInfoRef&);
void ReportMetadata();
RtpPacketInfoRef m_lastRtpPacket;
+ int m_numRtpPackets;
RtpRingBuffer m_rtpRingBuffer;
struct in_addr m_invitorIp;
int m_invitorTcpPort;
@@ -66,6 +71,7 @@ private:
CStdString m_localParty;
CStdString m_remoteParty;
CaptureEvent::DirectionEnum m_direction;
+ bool m_started;
};
typedef boost::shared_ptr<SipSession> SipSessionRef;
@@ -73,6 +79,7 @@ class SipSessions
{
public:
SipSessions();
+ void Create(CStdString& ipAndPort);
void Stop(SipSessionRef& session);
void ReportSipInvite(SipInviteInfoRef& invite);
void ReportSipBye(SipByeInfo bye);