Full RTP session.
More...
#include <yatertp.h>
List of all members.
Public Types |
enum | Direction { FullStop = 0,
RecvOnly = 1,
SendOnly = 2,
SendRecv = 3
} |
Public Member Functions |
| RTPSession () |
virtual | ~RTPSession () |
virtual void | getStats (String &stats) const |
virtual void | rtpData (const void *data, int len) |
virtual void | rtcpData (const void *data, int len) |
virtual bool | rtpRecvData (bool marker, unsigned int timestamp, const void *data, int len) |
virtual bool | rtpRecvEvent (int event, char key, int duration, int volume, unsigned int timestamp) |
virtual void | rtpNewPayload (int payload, unsigned int timestamp) |
virtual void | rtpNewSSRC (u_int32_t newSsrc, bool marker) |
virtual RTPSender * | createSender () |
virtual RTPReceiver * | createReceiver () |
virtual Cipher * | createCipher (const String &name, Cipher::Direction dir) |
virtual bool | checkCipher (const String &name) |
bool | rtpSend (bool marker, int payload, unsigned int timestamp, const void *data, int len) |
bool | rtpSendData (bool marker, unsigned int timestamp, const void *data, int len) |
bool | rtpSendEvent (int event, int duration, int volume=0, unsigned int timestamp=0) |
bool | rtpSendKey (char key, int duration, int volume=0, unsigned int timestamp=0) |
int | padding () const |
bool | padding (int chunk) |
void | setDejitter (unsigned int mindelay=20, unsigned int maxdelay=50) |
virtual void | transport (RTPTransport *trans) |
RTPSender * | sender () const |
void | sender (RTPSender *send) |
RTPReceiver * | receiver () const |
void | receiver (RTPReceiver *recv) |
Direction | direction () const |
bool | direction (Direction dir) |
bool | addDirection (Direction dir) |
bool | delDirection (Direction dir) |
bool | dataPayload (int type) |
bool | eventPayload (int type) |
bool | silencePayload (int type) |
bool | localAddr (SocketAddr &addr, bool rtcp=true) |
RTPSecure * | security () const |
void | security (RTPSecure *secure) |
Protected Member Functions |
virtual void | timerTick (const Time &when) |
Detailed Description
Full RTP session.
An unidirectional or bidirectional RTP session
Member Enumeration Documentation
Constructor & Destructor Documentation
Default constructor, creates a detached session
Destructor - shuts down the session and destroys the transport
Member Function Documentation
Add a direction of this session. A transport must exist for this method to succeed.
- Parameters:
-
dir | New Direction to add for this session |
- Returns:
- True if direction was set, false if a failure occured
virtual bool checkCipher |
( |
const String & |
name | ) |
[virtual] |
Check if a cipher is supported for SRTP
- Parameters:
-
name | Name of the cipher to check |
- Returns:
- True if the specified cipher is supported
Create a cipher when required for SRTP
- Parameters:
-
name | Name of the cipher to create |
dir | Direction the cipher must be able to handle |
- Returns:
- Pointer to newly allocated Cipher or NULL
Create a new RTP receiver for this session. Override this method to create objects derived from RTPReceiver.
- Returns:
- Pointer to the new receiver or NULL on failure
virtual RTPSender* createSender |
( |
| ) |
[virtual] |
Create a new RTP sender for this session. Override this method to create objects derived from RTPSender.
- Returns:
- Pointer to the new sender or NULL on failure
bool dataPayload |
( |
int |
type | ) |
|
Set the data payload type for both receiver and sender.
- Parameters:
-
type | Payload type, -1 to disable |
- Returns:
- True if changed, false if invalid payload type
Delete a direction of this session. A transport must exist for this method to succeed.
- Parameters:
-
dir | Direction to remove for this session |
- Returns:
- True if direction was set, false if a failure occured
Get the direction of this session
- Returns:
- Session's direction as a Direction enum
Set the direction of this session. A transport must exist for this method to succeed.
- Parameters:
-
dir | New Direction for this session |
- Returns:
- True if direction was set, false if a failure occured
bool eventPayload |
( |
int |
type | ) |
|
Set the event payload type for both receiver and sender.
- Parameters:
-
type | Payload type, -1 to disable |
- Returns:
- True if changed, false if invalid payload type
virtual void getStats |
( |
String & |
stats | ) |
const [virtual] |
Retrieve MGCP P: style comma separated session parameters
- Parameters:
-
stats | String to append parameters to |
Reimplemented from RTPProcessor.
bool localAddr |
( |
SocketAddr & |
addr, |
|
|
bool |
rtcp = true |
|
) |
| [inline] |
Set the local network address of the RTP transport of this session
- Parameters:
-
addr | New local RTP transport address |
rtcp | Enable RTCP in this session |
- Returns:
- True if address set, false if a failure occured
int padding |
( |
| ) |
const [inline] |
Get the payload padding size
- Returns:
- Chunk size to pad the payload to a multiple of
bool padding |
( |
int |
chunk | ) |
[inline] |
Set the padding to a multiple of a data chunk
- Parameters:
-
chunk | Size to pad the payload to a multiple of |
- Returns:
- True if the new chunk size is valid
Get the RTP/RTCP receiver of this session
- Returns:
- A pointer to the RTPReceiver of this session
Set the RTP/RTCP receiver of this session
- Parameters:
-
recv | A pointer to the new RTPReceiver of this session or NULL |
virtual void rtcpData |
( |
const void * |
data, |
|
|
int |
len |
|
) |
| [virtual] |
This method is called to process a RTCP packet.
- Parameters:
-
data | Pointer to raw RTCP data |
len | Length of the data packet |
Reimplemented from RTPProcessor.
virtual void rtpData |
( |
const void * |
data, |
|
|
int |
len |
|
) |
| [virtual] |
This method is called to process a RTP packet.
- Parameters:
-
data | Pointer to raw RTP data |
len | Length of the data packet |
Reimplemented from RTPProcessor.
virtual void rtpNewPayload |
( |
int |
payload, |
|
|
unsigned int |
timestamp |
|
) |
| [virtual] |
Method called for unknown payload types just before attempting to call rtpRecvData(). This is a good opportunity to change the payload type and continue.
- Parameters:
-
payload | Payload number |
timestamp | Sampling instant of the unexpected packet data |
virtual void rtpNewSSRC |
( |
u_int32_t |
newSsrc, |
|
|
bool |
marker |
|
) |
| [virtual] |
Method called when a packet with an unexpected SSRC is received just before processing further. This is a good opportunity to change the SSRC and continue
- Parameters:
-
newSsrc | SSRC received in packet |
marker | True if marker bit is set in the RTP packet |
virtual bool rtpRecvData |
( |
bool |
marker, |
|
|
unsigned int |
timestamp, |
|
|
const void * |
data, |
|
|
int |
len |
|
) |
| [virtual] |
Process one RTP data packet
- Parameters:
-
marker | Set to true if the marker bit is set |
timestamp | Sampling instant of the packet data |
data | Pointer to data block to process |
len | Length of the data block in bytes |
- Returns:
- True if data was handled
virtual bool rtpRecvEvent |
( |
int |
event, |
|
|
char |
key, |
|
|
int |
duration, |
|
|
int |
volume, |
|
|
unsigned int |
timestamp |
|
) |
| [virtual] |
Process one RTP event
- Parameters:
-
event | Received event code |
key | Received key (for events 0-16) or zero |
duration | Duration of the event as number of samples |
volume | Attenuation of the tone, zero for don't care |
timestamp | Sampling instant of the initial packet data |
- Returns:
- True if data was handled
bool rtpSend |
( |
bool |
marker, |
|
|
int |
payload, |
|
|
unsigned int |
timestamp, |
|
|
const void * |
data, |
|
|
int |
len |
|
) |
| [inline] |
Send one RTP payload packet
- Parameters:
-
marker | Set to true if the marker bit must be set |
payload | Payload number |
timestamp | Sampling instant of the packet data |
data | Pointer to data block to send |
len | Length of the data block |
- Returns:
- True if data sending was attempted
bool rtpSendData |
( |
bool |
marker, |
|
|
unsigned int |
timestamp, |
|
|
const void * |
data, |
|
|
int |
len |
|
) |
| [inline] |
Send one RTP data packet
- Parameters:
-
marker | Set to true if the marker bit must be set |
timestamp | Sampling instant of the packet data |
data | Pointer to data block to send |
len | Length of the data block |
- Returns:
- True if data sending was attempted
bool rtpSendEvent |
( |
int |
event, |
|
|
int |
duration, |
|
|
int |
volume = 0 , |
|
|
unsigned int |
timestamp = 0 |
|
) |
| [inline] |
Send one RTP event
- Parameters:
-
event | Event code to send |
duration | Duration of the event as number of samples |
volume | Attenuation of the tone, zero for don't care |
timestamp | Sampling instant of the packet data, zero to use current |
- Returns:
- True if data sending was attempted
bool rtpSendKey |
( |
char |
key, |
|
|
int |
duration, |
|
|
int |
volume = 0 , |
|
|
unsigned int |
timestamp = 0 |
|
) |
| [inline] |
Send one RTP key event
- Parameters:
-
key | Key to send |
duration | Duration of the event as number of samples |
volume | Attenuation of the tone, zero for don't care |
timestamp | Sampling instant of the packet data, zero to use current |
- Returns:
- True if data sending was attempted
Get the stored security provider or of the sender
- Returns:
- A pointer to the RTPSecure or NULL
Store a security provider for the sender
- Parameters:
-
Set the RTP/RTCP sender of this session
- Parameters:
-
send | A pointer to the new RTPSender of this session or NULL |
Get the RTP/RTCP sender of this session
- Returns:
- A pointer to the RTPSender of this session
void setDejitter |
( |
unsigned int |
mindelay = 20 , |
|
|
unsigned int |
maxdelay = 50 |
|
) |
| [inline] |
Allocate and set a new dejitter buffer for the receiver in the session
- Parameters:
-
mindelay | Minimum length of the dejitter buffer in microseconds |
maxdelay | Maximum length of the dejitter buffer in microseconds |
bool silencePayload |
( |
int |
type | ) |
|
Set the silence payload type for both receiver and sender.
- Parameters:
-
type | Payload type, -1 to disable |
- Returns:
- True if changed, false if invalid payload type
virtual void timerTick |
( |
const Time & |
when | ) |
[protected, virtual] |
Method called periodically to push any asynchronous data or statistics
- Parameters:
-
when | Time to use as base in all computing |
Implements RTPProcessor.
Set the RTP/RTCP transport of data handled by this session
- Parameters:
-
Reimplemented from UDPSession.
The documentation for this class was generated from the following file: