summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip/RtpSession.h
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2007-06-13 20:48:15 +0000
committerHenri Herscher <henri@oreka.org>2007-06-13 20:48:15 +0000
commit3d436f683ca56ce566a7bed92343b0550aeca14d (patch)
treeb49bd557ddcea2ac3262a8a0f8a389f229ad3c89 /orkaudio/audiocaptureplugins/voip/RtpSession.h
parent517af5661d24adf948dc67fea6c935edf8f7a960 (diff)
1. Skinny sessions can not change CallId anymore (CallId used to change to passThruPartyId when startMediaTransmission was received).
2. StartMediaTransmission and OpenReceiveChannelAck are now associated to the most recent CallInfo. 3. StopMediaTransmission is now dismissed if passThruPartyId does not match. 4. Skinny sessions can now have dynamic media address when <SkinnyDynamicMediaAddress> is set to true. 5. Skinny Hold and Resume now associated to sessions on the basis of CallID. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@448 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/RtpSession.h')
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.h b/orkaudio/audiocaptureplugins/voip/RtpSession.h
index fe7e17a..7754873 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.h
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.h
@@ -18,6 +18,7 @@
#include "RtpSession.h"
#include "Rtp.h"
#include <map>
+#include "ace/OS_NS_sys_time.h"
#include "ace/Singleton.h"
#include "PacketHeaderDefs.h"
@@ -82,6 +83,8 @@ public:
CStdString m_ipAndPort; // IP address and TCP port of one side of the session, serves as a key for session storage and retrieval. Not necessarily the same as the capturePort (capturePort is usually the client (phone) IP+port)
CStdString m_callId;
SipInviteInfoRef m_invite;
+ ACE_Time_Value m_creationDate; // When the session is first created
+ time_t m_beginDate; // When the session has seen a few RTP packets
time_t m_lastUpdated;
ProtocolEnum m_protocol;
CStdString m_localParty;
@@ -89,7 +92,8 @@ public:
CaptureEvent::DirectionEnum m_direction;
int m_numRtpPackets;
struct in_addr m_endPointIp; // only used for Skinny
-
+ int m_skinnyPassThruPartyId;
+ ACE_Time_Value m_skinnyLastCallInfoTime;
bool m_onHold;
private:
@@ -122,7 +126,6 @@ private:
CStdString m_capturePort;
bool m_started;
bool m_stopped;
- time_t m_beginDate;
CStdString m_orkUid;
bool m_hasDuplicateRtp;
unsigned int m_highestRtpSeqNumDelta;
@@ -154,7 +157,8 @@ public:
void Hoover(time_t now);
EndpointInfoRef GetEndpointInfo(struct in_addr endpointIp);
private:
- RtpSessionRef findByEndpointIp(struct in_addr);
+ RtpSessionRef findByEndpointIp(struct in_addr, int passThruPartyId = 0);
+ RtpSessionRef findNewestByEndpointIp(struct in_addr endpointIpAddr);
RtpSessionRef findByEndpointIpUsingIpAndPort(struct in_addr endpointIpAddr);
bool ChangeCallId(RtpSessionRef& session, unsigned int newId);
void SetMediaAddress(RtpSessionRef& session, struct in_addr mediaIp, unsigned short mediaPort);