[OpenSIPS-Users] Mediaproxy: media relay selection algorithm improvements

Kennard_White at logitech.com Kennard_White at logitech.com
Tue Sep 14 17:30:34 CEST 2010


Hi John,

I would agree that media proxy needs better support for geo-distribution of
relays. One possibility is to implement GeoIP directly within the
dispatcher, not within opensips. The dispatcher could compute GeoIP
location of each relay when it registers, and then for each call compute
GeoIP location of the caller (or callee) and select the closest relay based
upon that. And it could load-balance within co-located relays ("co-located"
based upon GeoIP).

One issue with geo distribution of relays is call setup latency and
thruput: the opensips process blocks while the dispatcher has round-trip
conversation with the media relay. This latency goes from ~20ms for local
relay to >200ms for international relay, which can block a lot of
processes, reducing thruput. Ideally, the communication between dispatcher
and relay wouldn't block the opensips process.

Good luck implementing a solution, and please let me know what you come up
with.

Regards,
Kennard



From:	John Khvatov <ivaxer at gmail.com>
To:	users at lists.opensips.org
Date:	09/13/2010 06:07 AM
Subject:	[OpenSIPS-Users] Mediaproxy: media relay selection algorithm
            improvements
Sent by:	users-bounces at lists.opensips.org



Hello all!

We are working on building geo-distributed VoIP solution with
Mediaproxy.

I think, that the current media relay selection algorithm is not perfect
and can be improved. In the current implementation we set IP address of
a particular media relay that will be preferred by dispatcher. But what
if the particular media relay will be unavailable? Media dispatcher will
run normal selection algorithm and does not select neighbor of the
particular media relay.

I propose to implement the groups of media relays. Each media-relay can
be registered on dispatcher with name and group. In the OpenSIPS config
we can specify preferred media relay/relays by name or group.

Consider the example. Several our relays in Frankfurt registered on
dispatchers with group=frankfurt, in Moscow -- with group=moscow. When
we set “$avp(s:media_relay_group) to "moscow", dispatcher will
select one of media_relay hosted in Moscow. Also, we can simply add/remove
media_relays in run-time.

What do you think about this idea? Is it difficult to implement?

--
WBR, John Khvatov

_______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20100914/29a38c9e/attachment-0001.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
Url : http://lists.opensips.org/pipermail/users/attachments/20100914/29a38c9e/attachment-0001.gif 


More information about the Users mailing list