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