[OpenSIPS-Users] Mediaproxy: closing expired call when one party stops sending RTP

Dan Pascu dan at ag-projects.com
Mon Sep 20 09:42:49 CEST 2010


On 20 Sep 2010, at 00:14, Richard Revels wrote:

> Media relay uses linux connection tracking.  The rules are bi- 
> directional.  If packets are still coming from the called party side  
> back to the (no longer there) calling party side then the packet  
> counters are still incrementing.

Not only conntrack rules are bidirectional and won't timeout if they  
receive packets from at least one endpoint, but mediaproxy was made to  
behave this way by design. Consider the case where one party uses  
voice activation and doesn't say anything for a few minutes. How can  
you distinguish between this valid case and the case where one  
endpoint just died?

> There might also be a way to poll the conntrack packet count  
> externally and compare them against dialogs via the MI interface.

The relay is not necessarily on the same host as opensips, so it may  
not be able to inspect the MI interface. Plus, it wouldn't even help  
since the dialogs are still there. If one endpoint dies, it won't send  
a BYE to close the dialog, because in that case it would close the  
media as well and there wouldn't be a problem anymore.

IMO this cannot be solved within the context of mediaproxy alone,  
since it's not just a media issue. Itg also involves signaling and the  
ability to distinguish between a dead endpoint and a silent one.

--
Dan









More information about the Users mailing list