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