From 414a5d9414df2063cbbca71826baa64443686c80 Mon Sep 17 00:00:00 2001 From: marian Date: Tue, 6 Aug 2013 08:37:10 +0000 Subject: [PATCH] Stop chan.rtp dispatch for audio or video media with empty formats list. git-svn-id: http://voip.null.ro/svn/yate@5608 acf43c95-373e-0410-b603-e72c3f656dc1 --- modules/ysipchan.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/ysipchan.cpp b/modules/ysipchan.cpp index 38e998ee..d8d0004c 100644 --- a/modules/ysipchan.cpp +++ b/modules/ysipchan.cpp @@ -940,6 +940,7 @@ protected: virtual Message* buildChanRtp(RefObject* context); MimeSdpBody* createProvisionalSDP(Message& msg); virtual void mediaChanged(const SDPMedia& media); + virtual void dispatchingRtp(Message*& msg, SDPMedia* media); virtual void endDisconnect(const Message& msg, bool handled); private: @@ -5315,6 +5316,7 @@ YateSIPConnection::YateSIPConnection(SIPEvent* ev, SIPTransaction* tr) m_honorDtmfDetect(s_honorDtmfDetect), m_referring(false), m_reInviting(ReinviteNone), m_lastRseq(0) { + setSdpDebug(this,this); Debug(this,DebugAll,"YateSIPConnection::YateSIPConnection(%p,%p) [%p]",ev,tr,this); setReason(); m_tr->ref(); @@ -5488,6 +5490,7 @@ YateSIPConnection::YateSIPConnection(Message& msg, const String& uri, const char m_honorDtmfDetect(s_honorDtmfDetect), m_referring(false), m_reInviting(ReinviteNone), m_lastRseq(0) { + setSdpDebug(this,this); Debug(this,DebugAll,"YateSIPConnection::YateSIPConnection(%p,'%s') [%p]", &msg,uri.c_str(),this); m_targetid = target; @@ -5984,6 +5987,17 @@ void YateSIPConnection::mediaChanged(const SDPMedia& media) clearEndpoint(media); } +void YateSIPConnection::dispatchingRtp(Message*& msg, SDPMedia* media) +{ + if (!(msg && media)) + return; + if (media->formats() || !(media->isAudio() || media->isVideo())) + return; + Debug(this,DebugInfo,"Not sending %s for empty media %s [%p]", + msg->c_str(),media->c_str(),this); + TelEngine::destruct(msg); +} + // Process SIP events belonging to this connection bool YateSIPConnection::process(SIPEvent* ev) {