Hm. We do rather a lot of things with the SIP uri, both reformatting the content and changing hosts depending on the number.
However, I thought this was OK since anything that was changed would be "record routed" and handled via the loose route portion.
I see now that that only works if the contact field is a full SIP uri (as our regular Gateway does) because it's never been a problem.
The ACK that is sent from the SNOM gets caught by the looseroute script. Should it?
I'm a bit confused now, can't really see how I'm going to fix this... Our script is rather large and ugly :/
I was just under the impression that loose route meant the packets "knew" where they were going...
- Geir
-----Original Message----- From: Iñaki Baz Castillo [mailto:ibc@aliax.net] Sent: 3. mars 2009 11:41 To: Geir O. Jensen Cc: kamailio Subject: Re: [Kamailio-Users] Problem with sip uri in contact field
2009/3/3 Geir O. Jensen geir.o.jensen@uninett.no:
As far as I can see, OpenSER get's the ACK from the phone, fails to follow the contact field and tries to send the ACK to itself.
U 2009/03/03 11:03:58.968311 192.168.10.10:5060 ->
192.168.10.1:5060
ACK sip:192.168.20.1 SIP/2.0
U 2009/03/03 11:03:58.972547 192.168.10.1:5060 -> 192.168.10.1:5060 ACK sip:domain.net SIP/2.0
This is an ACK for a INVITE 200, so it's a new transaction (a in-dialog request) rather than part of the INVITE transaction (as an ACK for a [3456]XX response would be).
The RURI is modified by Kamailio, this means that your script is doing it. What do you do with your in-dialog requests? what do you do with ACK (INVITE-200)? Are you using "$ru=" or "sethostport"/"writehostport" for them?
-- Iñaki Baz Castillo ibc@aliax.net