A holder for a SDP session.
More...
#include <yatesdp.h>
|
| enum | { MediaMissing
, MediaStarted
, MediaMuted
} |
| |
|
| | SDPSession (SDPParser *parser) |
| |
| | SDPSession (SDPParser *parser, NamedList ¶ms) |
| |
| virtual | ~SDPSession () |
| |
| const String & | getHost () const |
| |
| const String & | getRtpAddr () const |
| |
| bool | setMedia (ObjList *media, bool preserveExisting=false) |
| |
| void | putMedia (NamedList &msg, bool putPort=true) |
| |
| SDPMedia * | getMedia (const String &name) const |
| |
| void | setRfc2833 (const String &value) |
| |
| void | setRfc2833 (const String *value) |
| |
| 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 defaults=true) |
| |
| bool | updateRtpSDP (const NamedList ¶ms) |
| |
| MimeSdpBody * | createSDP (const char *addr, ObjList *mediaList=0) |
| |
| MimeSdpBody * | createSDP () |
| |
| MimeSdpBody * | createPasstroughSDP (NamedList &msg, bool update=true, bool allowEmptyAddr=false) |
| |
| 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, bool allowEmptyAddr=false) |
| |
| virtual void | resetSdp (bool all=true) |
| |
| 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) |
| |
|
|
SDPParser * | m_parser |
| |
|
int | m_mediaStatus |
| |
|
bool | m_rtpForward |
| |
|
bool | m_sdpForward |
| |
|
String | m_originAddr |
| |
|
String | m_externalAddr |
| |
|
String | m_rtpAddr |
| |
|
String | m_rtpLocalAddr |
| |
|
String | m_rtpNatAddr |
| |
|
ObjList * | m_rtpMedia |
| |
|
int | m_sdpSession |
| |
|
int | m_sdpVersion |
| |
|
unsigned int | m_sdpHash |
| |
|
String | m_host |
| |
|
bool | m_secure |
| |
|
int | m_rfc2833 |
| |
|
bool | m_ipv6 |
| |
|
NamedList | m_amrExtra |
| |
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
◆ anonymous enum
RTP media status enumeration
◆ SDPSession() [1/2]
Constructor
- Parameters
-
| parser | The SDP parser whose data this object will use |
◆ SDPSession() [2/2]
Constructor
- Parameters
-
| parser | The SDP parser whose data this object will use |
| params | SDP session parameters |
◆ ~SDPSession()
Destructor. Reset the object
◆ addRtpParams()
| bool addRtpParams |
( |
NamedList & |
msg, |
|
|
const String & |
natAddr = String::empty(), |
|
|
const MimeBody * |
body = 0, |
|
|
bool |
force = false, |
|
|
bool |
allowEmptyAddr = 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 |
| allowEmptyAddr | Allow empty address in parameters (default: false) |
- Returns
- True if RTP data was added. Media is always added if present and remote address is not empty
◆ addSdpParams() [1/2]
| bool addSdpParams |
( |
NamedList & |
msg, |
|
|
const MimeBody * |
body |
|
) |
| |
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
◆ addSdpParams() [2/2]
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
◆ buildChanRtp() [1/2]
| virtual Message * buildChanRtp |
( |
RefObject * |
context | ) |
|
|
pure virtual |
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
◆ buildChanRtp() [2/2]
| virtual Message * buildChanRtp |
( |
SDPMedia * |
media, |
|
|
const char * |
addr, |
|
|
bool |
start, |
|
|
RefObject * |
context |
|
) |
| |
|
virtual |
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
◆ createPasstroughSDP()
| MimeSdpBody * createPasstroughSDP |
( |
NamedList & |
msg, |
|
|
bool |
update = true, |
|
|
bool |
allowEmptyAddr = false |
|
) |
| |
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 |
| allowEmptyAddr | Allow empty address in parameters (default: false) |
- Returns
- MimeSdpBody pointer or 0
◆ createRtpSDP() [1/3]
| MimeSdpBody * createRtpSDP |
( |
bool |
start | ) |
|
|
inline |
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
◆ createRtpSDP() [2/3]
| 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
◆ createRtpSDP() [3/3]
| MimeSdpBody * createRtpSDP |
( |
const char * |
addr, |
|
|
const NamedList & |
msg |
|
) |
| |
|
inline |
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
◆ createSDP() [1/2]
| MimeSdpBody * createSDP |
( |
| ) |
|
Creates a SDP body for current media status
- Returns
- MimeSdpBody pointer or 0 if media is missing
◆ createSDP() [2/2]
| MimeSdpBody * createSDP |
( |
const char * |
addr, |
|
|
ObjList * |
mediaList = 0 |
|
) |
| |
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
◆ dispatchingRtp()
| virtual void dispatchingRtp |
( |
Message *& |
msg, |
|
|
SDPMedia * |
media |
|
) |
| |
|
protectedvirtual |
Dispatch rtp notification. This method is called before dispatching the message. Clear the message to stop dispatch
- Parameters
-
| msg | Message to dispatch |
| media | Media for which the message is going to be dispatched |
◆ dispatchRtp() [1/2]
| 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
◆ dispatchRtp() [2/2]
| 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
◆ getHost()
| const String & getHost |
( |
| ) |
const |
|
inline |
Get RTP local host
- Returns
- RTP local host
◆ getMedia()
Retrieve a single media description
- Parameters
-
| name | Name of the media to retrieve |
- Returns
- Pointer to media descriptor, NULL if no such media set
◆ getRtpAddr()
| const String & getRtpAddr |
( |
| ) |
const |
|
inline |
Get local RTP address
- Returns
- Local RTP address (external or local)
◆ localRtpChanged()
| 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
◆ mediaChanged()
| virtual void mediaChanged |
( |
const SDPMedia & |
media | ) |
|
|
protectedvirtual |
Media changed notification. This method is called when setting new media and an old one changed
- Parameters
-
| media | Old media that changed |
◆ printRtpMedia()
| void printRtpMedia |
( |
const char * |
reason | ) |
|
|
protected |
Print current media to output
- Parameters
-
◆ putMedia() [1/2]
| void putMedia |
( |
NamedList & |
msg, |
|
|
bool |
putPort = true |
|
) |
| |
|
inline |
Put session media parameters into a list of parameters
- Parameters
-
| msg | Destination list |
| putPort | True to add the media port |
◆ putMedia() [2/2]
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 |
◆ resetSdp()
| virtual void resetSdp |
( |
bool |
all = true | ) |
|
|
virtual |
Reset this object to default values
- Parameters
-
| all | True to reset all parameters including configuration |
◆ setFormatsExtra()
| void setFormatsExtra |
( |
const NamedList & |
list, |
|
|
bool |
out |
|
) |
| |
|
protected |
Set extra parameters for formats
- Parameters
-
| list | List of parameters |
| out | True if session is outgoing, false otherwise |
◆ setLocalRtpChanged()
| 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 |
◆ setMedia()
| bool setMedia |
( |
ObjList * |
media, |
|
|
bool |
preserveExisting = false |
|
) |
| |
Set a new media list
- Parameters
-
| media | New media list |
| preserveExisting | Try to preserve existing started media |
- Returns
- True if media changed
◆ setRfc2833() [1/2]
| void setRfc2833 |
( |
const String & |
value | ) |
|
Update the RFC 2833 availability and payload
- Parameters
-
| value | String to get payload or availability |
◆ setRfc2833() [2/2]
| void setRfc2833 |
( |
const String * |
value | ) |
|
|
inline |
Update the RFC 2833 availability and payload
- Parameters
-
| value | Pointer to string to get payload or availability |
◆ setSdpDebug()
Set data used in debug
- Parameters
-
| enabler | The DebugEnabler to use (0 to to use the parser) |
| ptr | Pointer to print, 0 to use the session pointer |
| traceId | Trace ID to use for debugging |
◆ startRtp()
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
◆ updateFormats()
| 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 |
◆ updateRtpSDP() [1/2]
| 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
◆ updateRtpSDP() [2/2]
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 |
| allowEmptyAddr | Allow empty address in parameters (default: false) |
- Returns
- List of media or 0 if not found or rtpAddr is empty
◆ updateSDP()
| bool updateSDP |
( |
const NamedList & |
params, |
|
|
bool |
defaults = true |
|
) |
| |
Update from parameters and optionally build a default SDP.
- Parameters
-
| params | List of parameters to update from |
| defaults | Build a default SDP from parser formats if no media is found in params |
- Returns
- True if media changed
The documentation for this class was generated from the following file: