|
| RTPSecureSession (RTPRandom *rnd=0, RTPMemoryManager *mgr=0) |
| Constructs an RTPSecureSession instance, see RTPSession::RTPSession for more information about the parameters. More...
|
|
| RTPSession (RTPRandom *rnd=0, RTPMemoryManager *mgr=0) |
| Constructs an RTPSession instance, optionally using a specific instance of a random number generator, and optionally installing a memory manager. More...
|
|
int | Create (const RTPSessionParams &sessparams, const RTPTransmissionParams *transparams=0, RTPTransmitter::TransmissionProtocol proto=RTPTransmitter::IPv4UDPProto) |
| Creates an RTP session. More...
|
|
int | Create (const RTPSessionParams &sessparams, RTPTransmitter *transmitter) |
| Creates an RTP session using transmitter as transmission component. More...
|
|
void | Destroy () |
| Leaves the session without sending a BYE packet. More...
|
|
void | BYEDestroy (const RTPTime &maxwaittime, const void *reason, size_t reasonlength) |
| Sends a BYE packet and leaves the session. More...
|
|
bool | IsActive () |
| Returns whether the session has been created or not. More...
|
|
uint32_t | GetLocalSSRC () |
| Returns our own SSRC. More...
|
|
int | AddDestination (const RTPAddress &addr) |
| Adds addr to the list of destinations. More...
|
|
int | DeleteDestination (const RTPAddress &addr) |
| Deletes addr from the list of destinations. More...
|
|
void | ClearDestinations () |
| Clears the list of destinations. More...
|
|
bool | SupportsMulticasting () |
| Returns true if multicasting is supported. More...
|
|
int | JoinMulticastGroup (const RTPAddress &addr) |
| Joins the multicast group specified by addr . More...
|
|
int | LeaveMulticastGroup (const RTPAddress &addr) |
| Leaves the multicast group specified by addr . More...
|
|
void | LeaveAllMulticastGroups () |
| Leaves all multicast groups. More...
|
|
int | SendPacket (const void *data, size_t len) |
| Sends the RTP packet with payload data which has length len . More...
|
|
int | SendPacket (const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc) |
| Sends the RTP packet with payload data which has length len . More...
|
|
int | SendPacketEx (const void *data, size_t len, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords) |
| Sends the RTP packet with payload data which has length len . More...
|
|
int | SendPacketEx (const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords) |
| Sends the RTP packet with payload data which has length len . More...
|
|
int | SendRTCPAPPPacket (uint8_t subtype, const uint8_t name[4], const void *appdata, size_t appdatalen) |
| If sending of RTCP APP packets was enabled at compile time, this function creates a compound packet containing an RTCP APP packet and sends it immediately. More...
|
|
int | SendUnknownPacket (bool sr, uint8_t payload_type, uint8_t subtype, const void *data, size_t len) |
| Tries to send an Unknown packet immediately. More...
|
|
int | SendRawData (const void *data, size_t len, bool usertpchannel) |
| With this function raw data can be sent directly over the RTP or RTCP channel (if they are different); the data is not passed through the RTPSession::OnChangeRTPOrRTCPData function. More...
|
|
int | SetDefaultPayloadType (uint8_t pt) |
| Sets the default payload type for RTP packets to pt . More...
|
|
int | SetDefaultMark (bool m) |
| Sets the default marker for RTP packets to m . More...
|
|
int | SetDefaultTimestampIncrement (uint32_t timestampinc) |
| Sets the default value to increment the timestamp with to timestampinc . More...
|
|
int | IncrementTimestamp (uint32_t inc) |
| This function increments the timestamp with the amount given by inc . More...
|
|
int | IncrementTimestampDefault () |
| This function increments the timestamp with the amount given set by the SetDefaultTimestampIncrement member function. More...
|
|
int | SetPreTransmissionDelay (const RTPTime &delay) |
| This function allows you to inform the library about the delay between sampling the first sample of a packet and sending the packet. More...
|
|
RTPTransmissionInfo * | GetTransmissionInfo () |
| This function returns an instance of a subclass of RTPTransmissionInfo which will give some additional information about the transmitter (a list of local IP addresses for example). More...
|
|
void | DeleteTransmissionInfo (RTPTransmissionInfo *inf) |
| Frees the memory used by the transmission information inf . More...
|
|
int | Poll () |
| If you're not using the poll thread, this function must be called regularly to process incoming data and to send RTCP data when necessary.
|
|
int | WaitForIncomingData (const RTPTime &delay, bool *dataavailable=0) |
| Waits at most a time delay until incoming data has been detected. More...
|
|
int | AbortWait () |
| If the previous function has been called, this one aborts the waiting (only works when you're not using the poll thread).
|
|
RTPTime | GetRTCPDelay () |
| Returns the time interval after which an RTCP compound packet may have to be sent (only works when you're not using the poll thread.
|
|
int | BeginDataAccess () |
| The following member functions (till EndDataAccess}) need to be accessed between a call to BeginDataAccess and EndDataAccess. More...
|
|
bool | GotoFirstSource () |
| Starts the iteration over the participants by going to the first member in the table. More...
|
|
bool | GotoNextSource () |
| Sets the current source to be the next source in the table. More...
|
|
bool | GotoPreviousSource () |
| Sets the current source to be the previous source in the table. More...
|
|
bool | GotoFirstSourceWithData () |
| Sets the current source to be the first source in the table which has RTPPacket instances that we haven't extracted yet. More...
|
|
bool | GotoNextSourceWithData () |
| Sets the current source to be the next source in the table which has RTPPacket instances that we haven't extracted yet. More...
|
|
bool | GotoPreviousSourceWithData () |
| Sets the current source to be the previous source in the table which has RTPPacket instances that we haven't extracted yet. More...
|
|
RTPSourceData * | GetCurrentSourceInfo () |
| Returns the RTPSourceData instance for the currently selected participant. More...
|
|
RTPSourceData * | GetSourceInfo (uint32_t ssrc) |
| Returns the RTPSourceData instance for the participant identified by ssrc , or NULL if no such entry exists.
|
|
RTPPacket * | GetNextPacket () |
| Extracts the next packet from the received packets queue of the current participant, or NULL if no more packets are available. More...
|
|
uint16_t | GetNextSequenceNumber () const |
| Returns the Sequence Number that will be used in the next SendPacket function call. More...
|
|
void | DeletePacket (RTPPacket *p) |
| Frees the memory used by p . More...
|
|
int | EndDataAccess () |
| See BeginDataAccess. More...
|
|
int | SetReceiveMode (RTPTransmitter::ReceiveMode m) |
| Sets the receive mode to m . More...
|
|
int | AddToIgnoreList (const RTPAddress &addr) |
| Adds addr to the list of addresses to ignore. More...
|
|
int | DeleteFromIgnoreList (const RTPAddress &addr) |
| Deletes addr from the list of addresses to ignore. More...
|
|
void | ClearIgnoreList () |
| Clears the list of addresses to ignore. More...
|
|
int | AddToAcceptList (const RTPAddress &addr) |
| Adds addr to the list of addresses to accept. More...
|
|
int | DeleteFromAcceptList (const RTPAddress &addr) |
| Deletes addr from the list of addresses to accept. More...
|
|
void | ClearAcceptList () |
| Clears the list of addresses to accept. More...
|
|
int | SetMaximumPacketSize (size_t s) |
| Sets the maximum allowed packet size to s . More...
|
|
int | SetSessionBandwidth (double bw) |
| Sets the session bandwidth to bw , which is specified in bytes per second. More...
|
|
int | SetTimestampUnit (double u) |
| Sets the timestamp unit for our own data. More...
|
|
void | SetNameInterval (int count) |
| Sets the RTCP interval for the SDES name item. More...
|
|
void | SetEMailInterval (int count) |
| Sets the RTCP interval for the SDES e-mail item. More...
|
|
void | SetLocationInterval (int count) |
| Sets the RTCP interval for the SDES location item. More...
|
|
void | SetPhoneInterval (int count) |
| Sets the RTCP interval for the SDES phone item. More...
|
|
void | SetToolInterval (int count) |
| Sets the RTCP interval for the SDES tool item. More...
|
|
void | SetNoteInterval (int count) |
| Sets the RTCP interval for the SDES note item. More...
|
|
int | SetLocalName (const void *s, size_t len) |
| Sets the SDES name item for the local participant to the value s with length len . More...
|
|
int | SetLocalEMail (const void *s, size_t len) |
| Sets the SDES e-mail item for the local participant to the value s with length len . More...
|
|
int | SetLocalLocation (const void *s, size_t len) |
| Sets the SDES location item for the local participant to the value s with length len . More...
|
|
int | SetLocalPhone (const void *s, size_t len) |
| Sets the SDES phone item for the local participant to the value s with length len . More...
|
|
int | SetLocalTool (const void *s, size_t len) |
| Sets the SDES tool item for the local participant to the value s with length len . More...
|
|
int | SetLocalNote (const void *s, size_t len) |
| Sets the SDES note item for the local participant to the value s with length len . More...
|
|
|
int | InitializeSRTPContext () |
| Initializes the SRTP context, in case of an error it may be useful to inspect RTPSecureSession::GetLastLibSRTPError. More...
|
|
srtp_ctx_t * | LockSRTPContext () |
| This function locks a mutex and returns the libsrtp context that was created in RTPSecureSession::InitializeSRTPContext, so that you can further use it to specify encryption parameters for various sources; note that you must release the context again after use with the RTPSecureSession::UnlockSRTPContext function. More...
|
|
int | UnlockSRTPContext () |
| Releases the lock on the SRTP context that was obtained in RTPSecureSession::LockSRTPContext. More...
|
|
int | GetLastLibSRTPError () |
| Returns (and clears) the last error that was encountered when using a libsrtp based function. More...
|
|
virtual void | OnErrorChangeIncomingData (int errcode, int libsrtperrorcode) |
| In case the reimplementation of OnChangeIncomingData (which may take place in a background thread) encounters an error, this member function will be called; implement it in a derived class to receive notification of this. More...
|
|
virtual RTPTransmitter * | NewUserDefinedTransmitter () |
| Allocate a user defined transmitter. More...
|
|
virtual void | OnRTPPacket (RTPPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| Is called when an incoming RTP packet is about to be processed. More...
|
|
virtual void | OnRTCPCompoundPacket (RTCPCompoundPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| Is called when an incoming RTCP packet is about to be processed. More...
|
|
virtual void | OnSSRCCollision (RTPSourceData *srcdat, const RTPAddress *senderaddress, bool isrtp) |
| Is called when an SSRC collision was detected. More...
|
|
virtual void | OnCNAMECollision (RTPSourceData *srcdat, const RTPAddress *senderaddress, const uint8_t *cname, size_t cnamelength) |
| Is called when another CNAME was received than the one already present for source srcdat . More...
|
|
virtual void | OnNewSource (RTPSourceData *srcdat) |
| Is called when a new entry srcdat is added to the source table. More...
|
|
virtual void | OnRemoveSource (RTPSourceData *srcdat) |
| Is called when the entry srcdat is about to be deleted from the source table. More...
|
|
virtual void | OnTimeout (RTPSourceData *srcdat) |
| Is called when participant srcdat is timed out. More...
|
|
virtual void | OnBYETimeout (RTPSourceData *srcdat) |
| Is called when participant srcdat is timed after having sent a BYE packet. More...
|
|
virtual void | OnAPPPacket (RTCPAPPPacket *apppacket, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| Is called when an RTCP APP packet apppacket has been received at time receivetime from address senderaddress .
|
|
virtual void | OnUnknownPacketType (RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| Is called when an unknown RTCP packet type was detected. More...
|
|
virtual void | OnUnknownPacketFormat (RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| Is called when an unknown packet format for a known packet type was detected. More...
|
|
virtual void | OnNoteTimeout (RTPSourceData *srcdat) |
| Is called when the SDES NOTE item for source srcdat has been timed out. More...
|
|
virtual void | OnRTCPSenderReport (RTPSourceData *srcdat) |
| Is called when an RTCP sender report has been processed for this source. More...
|
|
virtual void | OnRTCPReceiverReport (RTPSourceData *srcdat) |
| Is called when an RTCP receiver report has been processed for this source. More...
|
|
virtual void | OnRTCPSDESItem (RTPSourceData *srcdat, RTCPSDESPacket::ItemType t, const void *itemdata, size_t itemlength) |
| Is called when a specific SDES item was received for this source. More...
|
|
virtual void | OnRTCPSDESPrivateItem (RTPSourceData *srcdat, const void *prefixdata, size_t prefixlen, const void *valuedata, size_t valuelen) |
| Is called when a specific SDES item of 'private' type was received for this source. More...
|
|
virtual void | OnBYEPacket (RTPSourceData *srcdat) |
| Is called when a BYE packet has been processed for source srcdat . More...
|
|
virtual void | OnSendRTCPCompoundPacket (RTCPCompoundPacket *pack) |
| Is called when an RTCP compound packet has just been sent (useful to inspect outgoing RTCP data). More...
|
|
virtual void | OnPollThreadError (int errcode) |
| Is called when error errcode was detected in the poll thread. More...
|
|
virtual void | OnPollThreadStep () |
| Is called each time the poll thread loops. More...
|
|
virtual void | OnPollThreadStart (bool &stop) |
| Is called when the poll thread is started. More...
|
|
virtual void | OnPollThreadStop () |
| Is called when the poll thread is going to stop. More...
|
|
void | SetChangeOutgoingData (bool change) |
| If this is set to true, outgoing data will be passed through RTPSession::OnChangeRTPOrRTCPData and RTPSession::OnSentRTPOrRTCPData, allowing you to modify the data (e.g. More...
|
|
void | SetChangeIncomingData (bool change) |
| If this is set to true, incoming data will be passed through RTPSession::OnChangeIncomingData, allowing you to modify the data (e.g. More...
|
|
virtual void | OnValidatedRTPPacket (RTPSourceData *srcdat, RTPPacket *rtppack, bool isonprobation, bool *ispackethandled) |
| Allows you to use an RTP packet from the specified source directly. More...
|
|
This is an RTPSession derived class that serves as a base class for an SRTP implementation. The class sets the RTPSession::SetChangeIncomingData and RTPSession::SetChangeOutgoingData flags, and implements RTPSession::OnChangeIncomingData, RTPSession::OnChangeRTPOrRTCPData and RTPSession::OnSentRTPOrRTCPData so that encryption and decryption is applied to packets. The encryption and decryption will be done using libsrtp, which must be available at compile time.
Your derived class should call RTPSecureSession::InitializeSRTPContext to initialize a context struct of libsrtp
. When this succeeds, the context can be obtained and used with the RTPSecureSession::LockSRTPContext function, which also locks a mutex if thread support was available. After you're done using the context yourself (to set encryption parameters for SSRCs), you must release it again using RTPSecureSession::UnlockSRTPContext.
See example7.cpp
for an example of how to use this class.