Looking at the combined diff against existing code, I think the condition on sock_flag has to be processed first (higher priority), respectively:
``` if (_m->flags&sock_flag) { ```
Because that is a config admin instructing to take the value from a different place. With this PR, that will never work when advertised address is set.
Moreover, using advertised address (the `useinfo`) should be controlled via a modparam, because from sip routing point of view it is more useful to have local listen socket than the public ip. So it needs a new parameter for having this new feature enabled.