The masking/unmasking cannot be done using the last one corresponding to Topoh-Server, because it has to be done in the way that the intermediary nodes see the same Record-Route as for the INVITE.
Lets take the example:
UA1 <=> P1 <=> P2(TH) <=> P3 <=> P4 <=> P3 <=> P2(TH) <=> P1 <=> UA2
When INVITE goes to UA2, the Record-Route headers leaving a proxy are:
The P is clear address, X is encoded address, Y is double encoded address.
When the response goes the opposite direction, it has to be:
Using the last route matching the TH-Server is not correct, I assume that you set mask ip to be P2, so all the X and Y record-routes have P2 address. If the mask ip is different that P2 (it can be any address, say 127.0.0.2), then it should work as it is now. If mask ip is P2 address, then when response comes first to it, it has to encode the record-routes towards UA2 via P1 and decode those towards UA1 via P3. When it comes second time, it has to encode those towards UA2 via P3 and decode those via UA1 via P1.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.