Daniel,

Maybe my question is silly, but in this case the contact should remain intact? (I mean in bridge mode).
I understand the destination UA should read the Record-route Headers and ignore the contents of the Contact Header, but I think this is not what´s happening.

I'm not using force_socket because the gateway already knows how to route the calls and I'm detecting the outgoing interface before calling force_rtp_proxy with flags.

Should I replace the contact using REGEX?

Thanks,
Uriel

On Fri, Apr 30, 2010 at 3:03 PM, Daniel-Constantin Mierla <miconda@gmail.com> wrote:
Hello,

it might not be the solution, because they should route based on Record-Route headers, not on Contact header. Anyhow changing the Contact will break the routing, so you will need to store somehow the original contact.

You can do manual detection in case you do bridging, by checking the receiving interface, $Ri is the local IP where the request was received, therfore you will be sending on the other interface. Are you doing force send socket to select outgoing interface? If yes, then is where you know the local ip for sending.

Cheers,
Daniel



On 4/30/10 6:32 PM, Uriel Rozenbaum wrote:
Guys,

I'm successfully using a Kamailio + RTPproxy setup in bridge mode with most of my Gateways. My setup includes two different interfaces one with a public IP and teh other with the private IP.

Now I'm facing some slight issue. Some providers won't accept my calls (or calls will have some strange behavior) if the Contact header has an IP out of immediate range.

I tried to use fix_nated_contact() function but as per my topology, this function will not change the contact header because the IP is already the one on the interface.

Example:
U 192.168.200.X:5060 -> 192.168.200.Y:5060
INVITE sip:111160911097@192.168.200.Y SIP/2.0.
Via: SIP/2.0/UDP 192.168.200.X:5060;branch=z9hG4bK096baacc;rport.
From: "Uriel Rozenbaum" <sip:60911100@192.168.200.X>;tag=as32794d5e.
To: <sip:111160911097@192.168.200.Y>.
Contact: <sip:60911100@192.168.200.X>.

U 200.A.A.A:5060 -> 200.B.B.B:5060
INVITE sip:898960911097@200.B.B.B SIP/2.0.
Record-Route: <sip:200.A.A.A;r2=on;lr=on;ftag=as32794d5e>.
Record-Route: <sip:192.168.200.Y;r2=on;lr=on;ftag=as32794d5e>.
Via: SIP/2.0/UDP 200.A.A.A;branch=z9hG4bK5222.14fbf4f7.0.
Via: SIP/2.0/UDP 192.168.200.X:5060;received=192.168.200.X;branch=z9hG4bK096baacc;rport=5060.
From: "Uriel Rozenbaum" <sip:60911100@192.168.200.X>;tag=as32794d5e.
To: <sip:111160911097@192.168.200.Y>.
Contact: <sip:60911100@192.168.200.X>.

Is there any way to let know Kamailio the outgoing IP I'll be using and fix the contact accordingly?
I can trigger this change after I know the destination IP.

Thanks!
Uriel

_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
* http://www.asipto.com/
* http://twitter.com/miconda
* http://www.linkedin.com/in/danielconstantinmierla