|
Yate
|
Full RTP session. More...
#include <yatertp.h>
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) |
| u_int32_t | ioPacketsLost () const |
| 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) |
| void | setReports (int interval) |
| virtual void | getStats (NamedList &stats) const |
| virtual void | incWrongSrc () |
Protected Member Functions | |
| virtual void | timerTick (const Time &when) |
| void | sendRtcpReport (const Time &when) |
| void | sendRtcpBye () |
Full RTP session.
An unidirectional or bidirectional RTP session
| enum Direction |
Direction of the session
| RTPSession | ( | ) |
Default constructor, creates a detached session
| virtual ~RTPSession | ( | ) | [virtual] |
Destructor - shuts down the session and destroys the transport
| bool addDirection | ( | Direction | dir | ) | [inline] |
Add a direction of this session. A transport must exist for this method to succeed.
| dir | New Direction to add for this session |
| virtual bool checkCipher | ( | const String & | name | ) | [virtual] |
Check if a cipher is supported for SRTP
| name | Name of the cipher to check |
| virtual Cipher* createCipher | ( | const String & | name, |
| Cipher::Direction | dir | ||
| ) | [virtual] |
Create a cipher when required for SRTP
| name | Name of the cipher to create |
| dir | Direction the cipher must be able to handle |
| virtual RTPReceiver* createReceiver | ( | ) | [virtual] |
Create a new RTP receiver for this session. Override this method to create objects derived from RTPReceiver.
| virtual RTPSender* createSender | ( | ) | [virtual] |
Create a new RTP sender for this session. Override this method to create objects derived from RTPSender.
| bool dataPayload | ( | int | type | ) |
Set the data payload type for both receiver and sender.
| type | Payload type, -1 to disable |
| bool delDirection | ( | Direction | dir | ) | [inline] |
Delete a direction of this session. A transport must exist for this method to succeed.
| dir | Direction to remove for this session |
Get the direction of this session
Set the direction of this session. A transport must exist for this method to succeed.
| dir | New Direction for this session |
| bool eventPayload | ( | int | type | ) |
Set the event payload type for both receiver and sender.
| type | Payload type, -1 to disable |
Retrieve MGCP P: style comma separated session parameters
| stats | String to append parameters to |
Reimplemented from RTPProcessor.
Put the collected statistical data
| stats | NamedList to populate with the data |
| virtual void incWrongSrc | ( | ) | [virtual] |
Increase the counter for number of RTP packets received from a wrong source
Reimplemented from RTPProcessor.
| u_int32_t ioPacketsLost | ( | ) | const [inline] |
Retrieve the number of lost packets in current received
| bool localAddr | ( | SocketAddr & | addr, |
| bool | rtcp = true |
||
| ) | [inline] |
Set the local network address of the RTP transport of this session
| addr | New local RTP transport address |
| rtcp | Enable RTCP in this session |
| int padding | ( | ) | const [inline] |
Get the payload padding size
| bool padding | ( | int | chunk | ) | [inline] |
Set the padding to a multiple of a data chunk
| chunk | Size to pad the payload to a multiple of |
| RTPReceiver* receiver | ( | ) | const [inline] |
Get the RTP/RTCP receiver of this session
| void receiver | ( | RTPReceiver * | recv | ) |
Set the RTP/RTCP receiver of this session
| 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.
| 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.
| 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.
| 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
| 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
| 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 |
| virtual bool rtpRecvEvent | ( | int | event, |
| char | key, | ||
| int | duration, | ||
| int | volume, | ||
| unsigned int | timestamp | ||
| ) | [virtual] |
Process one RTP event
| 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 |
| bool rtpSend | ( | bool | marker, |
| int | payload, | ||
| unsigned int | timestamp, | ||
| const void * | data, | ||
| int | len | ||
| ) | [inline] |
Send one RTP payload packet
| 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 |
| bool rtpSendData | ( | bool | marker, |
| unsigned int | timestamp, | ||
| const void * | data, | ||
| int | len | ||
| ) | [inline] |
Send one RTP data packet
| 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 |
| bool rtpSendEvent | ( | int | event, |
| int | duration, | ||
| int | volume = 0, |
||
| unsigned int | timestamp = 0 |
||
| ) | [inline] |
Send one RTP event
| 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 |
| bool rtpSendKey | ( | char | key, |
| int | duration, | ||
| int | volume = 0, |
||
| unsigned int | timestamp = 0 |
||
| ) | [inline] |
Send one RTP key event
| 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 |
Get the stored security provider or of the sender
Store a security provider for the sender
| secure | Pointer to the new RTPSecure or NULL |
Get the RTP/RTCP sender of this session
Set the RTP/RTCP sender of this session
| send | A pointer to the new RTPSender of this session or NULL |
| void sendRtcpBye | ( | ) | [protected] |
Send a RTCP BYE when the sender is stopped or replaced
| void sendRtcpReport | ( | const Time & | when | ) | [protected] |
Send a RTCP report
| when | Time to use as base for timestamps |
| void setDejitter | ( | unsigned int | mindelay = 20, |
| unsigned int | maxdelay = 50 |
||
| ) | [inline] |
Allocate and set a new dejitter buffer for the receiver in the session
| mindelay | Minimum length of the dejitter buffer in microseconds |
| maxdelay | Maximum length of the dejitter buffer in microseconds |
| void setReports | ( | int | interval | ) |
Set the RTCP report interval
| interval | Average interval between reports in msec, zero to disable |
| bool silencePayload | ( | int | type | ) |
Set the silence payload type for both receiver and sender.
| type | Payload type, -1 to disable |
Method called periodically to push any asynchronous data or statistics
| when | Time to use as base in all computing |
Implements RTPProcessor.
| virtual void transport | ( | RTPTransport * | trans | ) | [virtual] |
Set the RTP/RTCP transport of data handled by this session
| trans | A pointer to the new RTPTransport for this session |
Reimplemented from UDPSession.
1.7.6.1