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
This commit is contained in:
marian 2013-08-06 08:37:10 +00:00
parent 51406e17e2
commit 414a5d9414
1 changed files with 14 additions and 0 deletions

View File

@ -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)
{