# class RTPSender | RTP/RTCP packet sender. More...
Full name | `TelEngine::RTPSender`
Definition | `#include <libs/yrtp/yatertp.h>`
Inherits | TelEngine::RTPBaseIO [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- RTPSender (RTPSession* session = 0, bool randomTs = true)
- virtual ~RTPSender ()
- 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)
- inline int padding () const
- bool padding (int chunk)
- virtual void stats (NamedList& stat) const

#### Protected Methods

- virtual void timerTick (const Time& when)
- virtual void rtpEncipher (unsigned char* data, int len)
- virtual void rtpAddIntegrity (const unsigned char* data, int len, unsigned char* authData)

## Detailed Description

Class that builds and sends RTP and RTCP packets

RTPSender (RTPSession* session = 0, bool randomTs = true) | ### RTPSender

Constructor

Parameters:

session | RTP session the sender belongs
randomTs | Initialize a random timestamp offset

~RTPSender () | ### ~RTPSender

[virtual]

Do-nothing destructor

bool rtpSend (bool marker, int payload, unsigned int timestamp, const void* data, int len) | ### rtpSend

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) | ### rtpSendData

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) | ### rtpSendEvent

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) | ### rtpSendKey

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

inline int padding () | ### padding

[const]

Get the payload padding size

Returns: Chunk size to pad the payload to a multiple of

bool padding (int chunk) | ### padding

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

void stats (NamedList& stat) | ### stats

[const virtual]

Retrieve the statistical data from this receiver in a NamedList. Reset all the data.

Parameters:

stat | NamedList to populate with the values for different counters

void timerTick (const Time& when) | ### timerTick

[protected virtual]

Method called periodically to send events and buffered data

Parameters:

when | Time to use as base in all computing

Reimplemented from RTPBaseIO.

void rtpEncipher (unsigned char* data, int len) | ### rtpEncipher

[protected virtual]

Method called to encipher RTP payload data in-place. The default implementation calls session's RTPSecure::rtpEncipher()

Parameters:

data | Pointer to data block to encipher
len | Length of payload data to be encrypted including any padding

void rtpAddIntegrity (const unsigned char* data, int len, unsigned char* authData) | ### rtpAddIntegrity

[protected virtual]

Method called to add integrity information to the RTP packet. The default implementation calls session's RTPSecure::rtpAddIntegrity()

Parameters:

data | Pointer to the RTP packet to protect
len | Length of RTP data to be encrypted including header and padding
authData | Address to write the integrity data to

Generated by: paulc on bussard on Mon Feb 10 13:15:47 2014, using kdoc 2.0a54.