Hello!
I used to use ser+nathelper+rtpproxy and it worked well. Unfortunately I found some buggy routers which have some SIP support but what they have is buggy (e.g. Draytek Vigor 2104 v2.3.6). They rewrite the IP in SIP message (in this version REGISTER message is not rewritten, but INVITE). While I have www/proxy_authorize and ser sends back auth. request, the phone (GS BT101) does not respond. I guess this is because it remembers for internal IP and receives public IP in message - because router rewrote it. For this I think there are 2 solutions: 1. Upgrade firmware which is many times not an option while the user may not have the knowledge to make it and this can be a real pain. 2. Use STUN, so this rewriting of router won't make any effect.
While not every router is buggy, I would like to leave nathelper as is and somehow detect if the UA is behind NAT or not. Andrei suggested to use force_rport() in the main section (not just inside the NAT section), but I guess, this will mean, that every call's every RTP will pass through rtpproxy - which is not desirable.
As I was looking for messages, the Call-Id also has the private IP portion, e.g.: Call-ID: 1400999426@192.168.24.37
My question would be: how to filter this part of sip message in ser configuration? I'm far-far not an expert to be able to do that :(
I'm using 0.8.14.
Thanks in advance, Tamas