Hi, we are having a problem with a network change use case. It goes on something like this:

1. Kamailio receives INVITE from caller.
2. Kamailio sends INVITE to callee MUA.
3. MUA response with 100, then 183.
4. MUA then loses network connectivity and re-establishes access with another IP address.
5. MUA sends 200 OK from the new IP address, but with `Contact` still set as the old address (which I think it should, because you aren't allowed to change contact in the middle of dialog?)
6. Kamailio forwards 200 OK to caller and receives ACK.
7. Kamailio sends ACK to old IP address of MUA.

The last step is obviously a problem as the MUA will not be able to see the ACK.

I'm trying to see how to resolve this issue. I can capture the "$si" and "$sp" of the new address in the reply route (I also tried to get the MUA to send OPTIONS immediately after reestablishing connectivity, and capture "$si"/"$sp" there, which also works), but I can't figure out how to update the destination of the ACK. I've tried running `fix_nated_contact()` as well as trying to write into various pseudo variables - in either the OPTIONS request handler or the 200 reply handler - which either errors or does nothing.

Any suggestions?
--
Oded Arbel