[OpenSER-Users] mediaproxy server NEW FEATURE!!!

Andreas M. openser at breitenlee.net
Fri Feb 22 20:10:04 CET 2008


Hello,
nice feature, i know the problem, because our local ISP´s are disconnecting  DSL lines every 8 hours.
But the DSL line needs nearly 8 seconds, to be up and running again(PPP dialup), if i can´t hear my 
partner for a few seconds i will disconnect the line and redial, my opinion.

Same in mobile environments, when the handover doesn´t work, saying "hello? - hello?" -> hangup -> 
redial.

But i´m willing to try, leave me a note, where i can download your version.

regards,
Andreas M.



Gonzalo J. Sambucaro schrieb:
> Folks,
>       I developed a new feature in the Media Proxy project of AG-Proyect.
> With this new feature the Media Proxy Server is now able to manage the
> problem of the NAT IP change in an established call. It is
> currently in production and working without any problem.
> 
> Somebody wants to test it?
> 
> I would like to know what to do to make this feature available to
> everybody. Does anybody know?
> 
> Regards,
> 
> ------------------------------
> 
> Details:
> -------
>       Supose that there is an established rtp connection between two
> endpoints and the media proxy is in the middle doing the relay of
> the rtp streams, let´s say
> 
> (MP = mediaproxy)
> 
> EP A <--------->[NAT with IP1]<-----------> MP <--------------------> EP B
> 
> EP A sends rtp to MP_IP:MP_PORT  passing through the NAT box.
> EP B sends rtp to MP_IP:MP_PORT  without passing through a NAT box.
> 
> The MP know that the caller = NAT_IP1:NAT_PORT1, and the called =
> EP_B_IP:EP_B_PORT
> 
> Now, supose that the NAT box change their PUBLIC IP from IP1 to IP2, so
> this escenary
> 
> EP A <------->[NAT with IP1]<---------> MP <-------------> EP B
> 
> will change to this
> 
> EP A <------->[NAT with IP2]<---------> MP <--------------> EP B
> 
> so the MP should detect that change of IPs and continue relaying the rtp
> streams but now to IP2:PORT2 instead of IP1:PORT1.
> 
> Well, that was the situation y have experienced.
> 
> To fix this, I developed this solution, changing rtphandler.py file:
> 
> 1) When the first rtp packet of a source arrives, save the SSRC field in
> the MP.
>  - Save the SSRC of the caller.
>  - Save the SSRC of the called.
> 
> 2) If arrives a rtp packet with unknown source IP but with the same SSRC
> field of some of the two streams, updates the binding (with the new IP
> detected) between the caller and the MP or between the called and the MP
> according to the field SSRC previously saved.
> 
> Note: SSRC (RFC 3550 RTP),  (from the rfc: "The SSRC identifier carried in
> the RTP header and in various fields of RTCP packets is a random 32-bit
> number that is required to be globally unique within an RTP session ")
> 
> --------------------------------
> 

-- 
g,
Andreas M.




More information about the Users mailing list