SDPSession Class Reference
A holder for a SDP session.
More...
#include <yatesdp.h>
List of all members.
Public Types |
enum | { MediaMissing,
MediaStarted,
MediaMuted
} |
Public Member Functions |
| SDPSession (SDPParser *parser) |
| SDPSession (SDPParser *parser, NamedList ¶ms) |
virtual | ~SDPSession () |
const String & | getHost () const |
const String & | getRtpAddr () const |
bool | setMedia (ObjList *media) |
void | putMedia (NamedList &msg, bool putPort=true) |
bool | dispatchRtp (SDPMedia *media, const char *addr, bool start, bool pick, RefObject *context=0) |
bool | dispatchRtp (const char *addr, bool start, RefObject *context=0) |
bool | startRtp (RefObject *context=0) |
bool | updateSDP (const NamedList ¶ms) |
bool | updateRtpSDP (const NamedList ¶ms) |
MimeSdpBody * | createSDP (const char *addr, ObjList *mediaList=0) |
MimeSdpBody * | createSDP () |
MimeSdpBody * | createPasstroughSDP (NamedList &msg, bool update=true) |
MimeSdpBody * | createRtpSDP (const char *addr, const NamedList &msg) |
MimeSdpBody * | createRtpSDP (const char *addr, bool start) |
MimeSdpBody * | createRtpSDP (bool start) |
void | updateFormats (const NamedList &msg, bool changeMedia=false) |
bool | addSdpParams (NamedList &msg, const MimeBody *body) |
bool | addSdpParams (NamedList &msg, const String &rawSdp) |
bool | addRtpParams (NamedList &msg, const String &natAddr=String::empty(), const MimeBody *body=0, bool force=false) |
virtual void | resetSdp () |
virtual Message * | buildChanRtp (SDPMedia *media, const char *addr, bool start, RefObject *context) |
virtual Message * | buildChanRtp (RefObject *context)=0 |
bool | localRtpChanged () const |
void | setLocalRtpChanged (bool chg=false) |
Static Public Member Functions |
static void | putMedia (NamedList &msg, ObjList *media, bool putPort=true) |
static ObjList * | updateRtpSDP (const NamedList ¶ms, String &rtpAddr, ObjList *oldList=0) |
Public Attributes |
SDPParser * | m_parser |
int | m_mediaStatus |
bool | m_rtpForward |
bool | m_sdpForward |
String | m_externalAddr |
String | m_rtpAddr |
String | m_rtpLocalAddr |
ObjList * | m_rtpMedia |
int | m_sdpSession |
int | m_sdpVersion |
String | m_host |
bool | m_secure |
bool | m_rfc2833 |
Protected Member Functions |
virtual void | mediaChanged (const SDPMedia &media) |
Detailed Description
A holder for a SDP session.
This class holds RTP/SDP data for multiple media types NOTE: The SDPParser pointer held by this class is assumed to be non NULL
Member Enumeration Documentation
RTP media status enumeration
Constructor & Destructor Documentation
Constructor
- Parameters:
-
| parser | The SDP parser whose data this object will use |
Constructor
- Parameters:
-
| parser | The SDP parser whose data this object will use |
| params | SDP session parameters |
Destructor. Reset the object
Member Function Documentation
bool addRtpParams |
( |
NamedList & |
msg, |
|
|
const String & |
natAddr = String::empty() , |
|
|
const MimeBody * |
body = 0 , |
|
|
bool |
force = false | |
|
) |
| | |
Add RTP forwarding parameters to a message (media and address)
- Parameters:
-
| msg | Destination list |
| natAddr | Optional NAT address if detected |
| body | Pointer to the body to extract raw SDP from |
| force | True to override RTP forward flag |
- Returns:
- True if RTP data was added. Media is always added if present and remote address is not empty
Add raw SDP forwarding parameter if SDP forward is enabled
- Parameters:
-
| msg | Destination list |
| rawSdp | The raw sdp content |
- Returns:
- True if the parameter was added
Add raw SDP forwarding parameter from body if SDP forward is enabled
- Parameters:
-
| msg | Destination list |
| body | Mime body to process |
- Returns:
- True if the parameter was added
Build a chan.rtp message without media information
- Parameters:
-
| context | Pointer to reference counted user provided context |
- Returns:
- The message with user data set but no media information
Build a chan.rtp message and populate with media information
- Parameters:
-
| media | The media list |
| addr | Remote RTP address |
| start | True to request RTP start |
| context | Pointer to reference counted user provided context |
- Returns:
- The message with media information, NULL if media or addr are missing
Creates a SDP from RTP address data present in message. Use the raw SDP if present.
- Parameters:
-
| msg | The list of parameters |
| update | True to update RTP/SDP data if raw SDP is not found in the list |
- Returns:
- MimeSdpBody pointer or 0
Creates a set of started external RTP channels from remote addr and builds SDP from them
- Parameters:
-
| start | True to create a started RTP |
- Returns:
- MimeSdpBody pointer or 0
MimeSdpBody* createRtpSDP |
( |
const char * |
addr, |
|
|
bool |
start | |
|
) |
| | [inline] |
Creates a set of RTP channels from address and media info and builds SDP from them
- Parameters:
-
| addr | Remote RTP address used when dispatching the chan.rtp message |
| start | True to create a started RTP |
- Returns:
- MimeSdpBody pointer or 0
Creates a set of unstarted external RTP channels from remote addr and builds SDP from them
- Parameters:
-
| addr | Remote RTP address used when dispatching the chan.rtp message |
| msg | List of parameters used to update data |
- Returns:
- MimeSdpBody pointer or 0
References SDPSession::createRtpSDP().
Referenced by SDPSession::createRtpSDP().
Creates a SDP body for current media status
- Returns:
- MimeSdpBody pointer or 0 if media is missing
Creates a SDP body from transport address and list of media descriptors
- Parameters:
-
| addr | The address to set. Use own host if empty |
| mediaList | Optional media list. Use own list if the given one is 0 |
- Returns:
- MimeSdpBody pointer or 0 if there is no media to set
bool dispatchRtp |
( |
const char * |
addr, |
|
|
bool |
start, |
|
|
RefObject * |
context = 0 | |
|
) |
| | |
Calls dispatchRtp() for each media in the list Update it on success. Remove it on failure
- Parameters:
-
| addr | Remote RTP address |
| start | True to request RTP start |
| context | Pointer to user provided context, optional |
- Returns:
- True if the message was succesfully handled for at least one media
bool dispatchRtp |
( |
SDPMedia * |
media, |
|
|
const char * |
addr, |
|
|
bool |
start, |
|
|
bool |
pick, |
|
|
RefObject * |
context = 0 | |
|
) |
| | |
Build and dispatch a chan.rtp message for a given media. Update media on success
- Parameters:
-
| media | The media to use |
| addr | Remote RTP address |
| start | True to request RTP start |
| pick | True to update local parameters (other then media) from returned message |
| context | Pointer to user provided context, optional |
- Returns:
- True if the message was succesfully handled
const String& getHost |
( |
|
) |
const [inline] |
Get RTP local host
- Returns:
- RTP local host
const String& getRtpAddr |
( |
|
) |
const [inline] |
Get local RTP address
- Returns:
- Local RTP address (external or local)
bool localRtpChanged |
( |
|
) |
const |
Check if local RTP data changed for at least one media
- Returns:
- True if local RTP data changed for at least one media
virtual void mediaChanged |
( |
const SDPMedia & |
media |
) |
[protected, virtual] |
Media changed notification. This method is called when setting new media and an old one changed
- Parameters:
-
| media | Old media that changed |
void putMedia |
( |
NamedList & |
msg, |
|
|
bool |
putPort = true | |
|
) |
| | [inline] |
static void putMedia |
( |
NamedList & |
msg, |
|
|
ObjList * |
media, |
|
|
bool |
putPort = true | |
|
) |
| | [static] |
Put specified media parameters into a list of parameters
- Parameters:
-
| msg | Destination list |
| media | List of SDP media information |
| putPort | True to add the media port |
virtual void resetSdp |
( |
|
) |
[virtual] |
Reset this object to default values
void setLocalRtpChanged |
( |
bool |
chg = false |
) |
|
Set or reset the local RTP data changed flag for all media
- Parameters:
-
| chg | The new value for local RTP data changed flag of all media |
Set a new media list
- Parameters:
-
- Returns:
- True if media changed
Try to start RTP (calls dispatchRtp()) for each media in the list
- Parameters:
-
| context | Pointer to user provided context, optional |
- Returns:
- True if at least one media was started
void updateFormats |
( |
const NamedList & |
msg, |
|
|
bool |
changeMedia = false | |
|
) |
| | |
Update media format lists from parameters
- Parameters:
-
| msg | Parameter list |
| changeMedia | True to update media list if required |
Update RTP/SDP data from parameters
- Parameters:
-
| params | Parameter list |
| rtpAddr | String to be filled with rtp address from the list |
| oldList | Optional existing media list (found media will be removed from it and added to the returned list |
- Returns:
- List of media or 0 if not found or rtpAddr is empty
bool updateRtpSDP |
( |
const NamedList & |
params |
) |
|
Update RTP/SDP data from parameters
- Parameters:
-
| params | List of parameters to update from |
- Returns:
- True if media or local address changed
Update from parameters. Build a default SDP from parser formats if no media is found in params
- Parameters:
-
| params | List of parameters to update from |
- Returns:
- True if media changed
The documentation for this class was generated from the following file: