Is it possible to get rtpproxy/nathelper to start a totally
new rtpproxy session on re-invite and not use the previous pair of ports on the
rtp proxy?
In this case:
A calls B behind nat. Sdp are rewritten to go though
rtpproxy on two ports. X & Y.
Some time goes by with conversation. Then the call chages
codec, line or something (not important). In this case B ua changes rtp port
locally also (incremented by 2). This is no problem. The re-invite is sent with
new port. But problem now is that rtpproxy sees this and updates the sdp as
always and it uses the previous X & Y port that was used on the rtpproxy
before re-invite.
The problem now is this. Packets from B to A goes correctly
since A’s local rtp port was same both before and after re-invite. But
packets from A to B is arrivind on B’s local port for the first sdp
session, not the second… It seems that rtpproxy wont change this..
I assume this is a security measure for rtpproxy. But it
should have some function to force new session ports on rtpproxy by parameters
to force_rtpproxy() or something.
As far as I can tell this is only a problem if the sip-ua is
changing local port.. I thought maby calling unforce_rtp_proxy() before forcing
rtp_proxy again would help, but don’t work. Probably because of some
internal working of nathelper…
Anyone got an idea how to solve this? I would really appreciate
any input on this..
-
Thomas