[Serusers] Hold/Unhold doesn't work with NATed clientswithrtpproxy in some case...

jimmy jimmy_huang at uni.com.tw
Fri Mar 18 05:17:23 CET 2005


Hi Zeus:
Thanks for your help

Another question about the solution...
When I check the changes of rtp port in SDP while UAC sending re-invite to
unhold the session, If the rtp port UAC wants in SDP has changed, does I
need to first unforce_rtpproxy to signal rtpproxy destroy the previous rtp
session (used before unhold), Then force_rtpproxy to signal rtpproxy to
build new rtp session for the re-invite (used after unhold)? Or just
force_rtpproxy without first unforce_rtpproxy ?
Regards,
Jimmy


-----Original Message-----
From: serusers-bounces at iptel.org [mailto:serusers-bounces at lists.iptel.org] On
Behalf Of Zeus Ng
Sent: Friday, March 18, 2005 11:17 AM
To: 'jimmy'
Cc: 'Iptel-Seruser'
Subject: RE: [Serusers] Hold/Unhold doesn't work with NATed
clientswithrtpproxy in some case...


Jimmy,

See inline.


>   In my test, I put rtpproxy and ser in same pc, and two UACs 
> are behind that pc,
> 
> When I use hold/unhold, most time it works but some times it 
> doesn't work
> 
>  
> 
>   I checked the ethereal log, it seems that the fail happens only when
> 
> 1. hold function last less than 60 seconds.

Do you mean more than 60 seconds? By default, rtpproxy has a session timeout
of 60s. If it detects no traffic for more than 60s, it assumes the call has
finished but SER has not signal it to stop. Thus, it disconnect the call.
Some UA, when on hold, does not send any RTP packets and so rtpproxy thinks
they have been disconnected. 

You can change the SESSION_TIMEOUT and recompile rtpproxy to support a
higher value. Or, if your UA support RTP keep-alive, make it sends a packet
within the 60s interval.

> 
> 2. once the re-invite's rtp port in SDP announced by client 
> has been changed 
> 
>    to different rtp port (different from original rtp port).

Most likely you have not catch re-INVITE and signal rtpproxy about that. One
area to look at is within your loose route routine.

> 
>  
> 
> So it seems rtpproxy doens't knows the ports come from both 
> UACs have changed...
> 
> and didn't forward UACs' rtp packets.
> 
>  
> 
>  
> 
> Here is the question I have conclude from above description
> 
> 1. While receive the re-invite message, will ser recheck the 
> port in SDP 
> 
>    and announce rtpproxy again?

Yes, if you catch it.

> 
> 2. Is this the limitation of Ser+rtpproxy with NATed UACs?

No.

> 
> 3. Does there has any suggestion that can make this function works?
> 
>    (ser+nathelper+rtpproxy with function hold/uhhold)

See above on rtp keep-alive.


_______________________________________________
Serusers mailing list
serusers at lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers






More information about the sr-users mailing list