Hello,
I'm trying to understand this sample cfg:
http://voip-info.org/wiki/view/OpenSER+And+RTPProxy

This cfg is used as foundation for some of our cfg files here but nobody is sure about exactly how some things work. So I'm trying to clear things up.
In particular, I am clueless about why there is code removing "nat=yes" from the URI and adding it to the Contact header (actually I don't know what is its meaning. I suppose this is a way of a client advertising that it is behind NAT, but I couldn't find which RFC defines this):

subst_uri('/(sip:.*);nat=yes/\1/')

search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');

Is this something that always must be done when dealing with nat or it was a particular situation that the writer of the cfg had to workaround?
I'm rewriting our cfg file (to be used with m4) and I'm trying to remove unnecessary things.

Another thing in the cfg: in case a reinvite is issued, should not unforce_rtp_proxy be called before force_rtp_proxy is called again? Could this lead to having rtpproxy leaking resources?

regards,
mayama