35#define YSDP_API __declspec(dllexport)
38#define YSDP_API __declspec(dllimport)
73 int rport = -1,
int lport = -1);
99 {
return m_modified; }
106 { m_modified = modified; }
120 {
return m_id && m_transport && m_format && m_lPort; }
127 {
return m_transport; }
148 {
return m_formats; }
169 {
return m_mappings; }
176 {
if (newMap) m_mappings = newMap; }
183 {
return m_rfc2833; }
203 {
return m_rCrypto; }
210 {
return m_lCrypto; }
217 {
return m_securable; }
226 bool sameAs(
const SDPMedia* other,
bool ignorePort =
false,
bool checkStarted =
false)
const;
233 {
return m_localChanged; }
240 { m_localChanged = chg; }
257 bool update(
const char*
formats,
int rport = -1,
int lport = -1,
bool force =
false);
287 void crypto(
const char* desc,
bool remote);
389 {
return m_externalAddr ? m_externalAddr : m_rtpLocalAddr; }
413 {
putMedia(msg,m_rtpMedia,putPort); }
421 {
return m_rtpMedia ?
static_cast<SDPMedia*
>((*m_rtpMedia)[name]) : 0; }
502 bool allowEmptyAddr =
false);
531 if (m_rtpAddr.null()) {
532 m_mediaStatus = MediaMuted;
572 const MimeBody* body = 0,
bool force =
false,
bool allowEmptyAddr =
false);
619 ObjList* oldList = 0,
bool allowEmptyAddr =
false);
671 unsigned int m_sdpHash;
693 friend class SDPSession;
702 inline SDPParser(
const char* dbgName,
const char* sessName,
const char* fmts =
"alaw,mulaw")
703 :
Mutex(true,
"SDPParser"),
705 m_sdpForward(false), m_secure(false), m_ignorePort(false),
706 m_sessionName(sessName), m_audioFormats(fmts),
707 m_codecs(
""), m_hacks(
"")
716 {
Lock lock(
this); buf = m_audioFormats; }
723 {
return m_rfc2833; }
737 {
return m_sdpForward; }
744 {
return m_ignorePort; }
775 {
return sdp ?
parse(*sdp,addr,oldMedia,media,force) : 0; }
A holder for a debug level.
Definition yateclass.h:312
DebugEnabler(int level=TelEngine::debugLevel(), bool enabled=true)
Definition yateclass.h:319
const char * debugName() const
Definition yateclass.h:358
Ephemeral mutex or semaphore locking object.
Definition yateclass.h:5833
Mutex(bool recursive=false, const char *name=0)
virtual bool lock(long maxwait=-1)
A named string container class.
Definition yateclass.h:5016
NamedList(const char *name)
A named string class.
Definition yateclass.h:3481
An object list class.
Definition yateclass.h:1454
Definition yateclass.h:1174
A SDP parser.
Definition yatesdp.h:692
static const TokenDict s_payloads[]
Definition yatesdp.h:788
ObjList * parse(const MimeSdpBody &sdp, String &addr, ObjList *oldMedia=0, const String &media=String::empty(), bool force=false)
int rfc2833() const
Definition yatesdp.h:722
ObjList * parse(const MimeSdpBody *sdp, String &addr, ObjList *oldMedia=0, const String &media=String::empty(), bool force=false)
Definition yatesdp.h:773
bool sdpForward() const
Definition yatesdp.h:736
void getAudioFormats(String &buf)
Definition yatesdp.h:715
static const TokenDict s_rtpmap[]
Definition yatesdp.h:793
bool secure() const
Definition yatesdp.h:729
bool ignorePort() const
Definition yatesdp.h:743
SDPParser(const char *dbgName, const char *sessName, const char *fmts="alaw,mulaw")
Definition yatesdp.h:702
void initialize(const NamedList *codecs, const NamedList *hacks, const NamedList *general=0)
void setFormatsExtra(const NamedList &list, bool out)
bool dispatchRtp(const char *addr, bool start, RefObject *context=0)
bool addRtpParams(NamedList &msg, const String &natAddr=String::empty(), const MimeBody *body=0, bool force=false, bool allowEmptyAddr=false)
const String & getRtpAddr() const
Definition yatesdp.h:388
bool updateSDP(const NamedList ¶ms, bool defaults=true)
void printRtpMedia(const char *reason)
bool dispatchRtp(SDPMedia *media, const char *addr, bool start, bool pick, RefObject *context=0)
bool startRtp(RefObject *context=0)
SDPSession(SDPParser *parser, NamedList ¶ms)
void setSdpDebug(DebugEnabler *enabler=0, void *ptr=0, const String &traceId=String::empty())
void setLocalRtpChanged(bool chg=false)
MimeSdpBody * createPasstroughSDP(NamedList &msg, bool update=true, bool allowEmptyAddr=false)
bool addSdpParams(NamedList &msg, const String &rawSdp)
virtual Message * buildChanRtp(SDPMedia *media, const char *addr, bool start, RefObject *context)
bool addSdpParams(NamedList &msg, const MimeBody *body)
static ObjList * updateRtpSDP(const NamedList ¶ms, String &rtpAddr, ObjList *oldList=0, bool allowEmptyAddr=false)
void putMedia(NamedList &msg, bool putPort=true)
Definition yatesdp.h:412
void setRfc2833(const String *value)
Definition yatesdp.h:433
MimeSdpBody * createRtpSDP(const char *addr, const NamedList &msg)
Definition yatesdp.h:511
virtual Message * buildChanRtp(RefObject *context)=0
bool localRtpChanged() const
virtual void mediaChanged(const SDPMedia &media)
static void putMedia(NamedList &msg, ObjList *media, bool putPort=true)
MimeSdpBody * createSDP()
SDPMedia * getMedia(const String &name) const
Definition yatesdp.h:420
virtual void resetSdp(bool all=true)
bool updateRtpSDP(const NamedList ¶ms)
const String & getHost() const
Definition yatesdp.h:381
MimeSdpBody * createRtpSDP(const char *addr, bool start)
Definition yatesdp.h:520
void updateFormats(const NamedList &msg, bool changeMedia=false)
bool setMedia(ObjList *media, bool preserveExisting=false)
MimeSdpBody * createSDP(const char *addr, ObjList *mediaList=0)
SDPSession(SDPParser *parser)
virtual void dispatchingRtp(Message *&msg, SDPMedia *media)
void setRfc2833(const String &value)
MimeSdpBody * createRtpSDP(bool start)
Definition yatesdp.h:529
A C-style string handling class.
Definition yateclass.h:2131
String & append(const char *value, int len)
static const char * boolText(bool value)
Definition yateclass.h:2229
static const String & empty()
Definition yateclass.h:848