[Kamailio-Users] Having Problem routing an ACK

Iñaki Baz Castillo ibc at in.ilimit.es
Mon Aug 25 11:04:33 CEST 2008


El Saturday 23 August 2008 16:57:42 Stagg Shelton escribió:
> Thanks again Iñaki.  I am attaching siptrace.txt file.  I can see that
> there appears to be something odd with the ACKs in that they appear to
> be sent from my openser back to my openser in a loop until the max
> forwards is reached.

Hi, just to clarify: is it your nre carrier an Asterisk? It's not the problem 
anyway.

The problem is in your OpenSer ACK handling. Note that:

--------------------
U +0.072541 phone:5060 -> OpenSer:5060
ACK sip:+16783832765 at OpenSer SIP/2.0*
Via: SIP/2.0/UDP phone:5060;branch=z9hG4bK-8922-48b022e5-dcaa5757-3884948f*
Contact: <sip:restricted at phone:5060;transport=udp>*
Route: <sip:OpenSer;lr;did=952.4d684275>*

#
U +0.002367 OpenSer:5060 -> OpenSer:5060
ACK sip:OpenSer;lr;did=952.4d684275 SIP/2.0*
Via: SIP/2.0/UDP OpenSer;branch=z9hG4bKc29c.498b5a5.2*
Via: SIP/2.0/UDP phone:5060;branch=z9hG4bK-8922-48b022e5-dcaa5757-3884948f*
Contact: <sip:restricted at phone:5060;transport=udp>*

#
U +0.000072 OpenSer:5060 -> OpenSer:5060
ACK sip:OpenSer;lr;did=952.4d684275 SIP/2.0*
Via: SIP/2.0/UDP OpenSer;branch=z9hG4bKc29c.498b5a5.2*
Via: SIP/2.0/UDP OpenSer;branch=z9hG4bKc29c.498b5a5.2*
Via: SIP/2.0/UDP phone:5060;branch=z9hG4bK-8922-48b022e5-dcaa5757-3884948f*
Contact: <sip:restricted at phone:5060;transport=udp>*
--------------------

The problem is that your OpenSer receives an ACK (a new request in-dialog 
since it's an ACK for a 200 OK) with a "Route: sip:OpenSer". This is correct 
of course.
So your OpenSer should do loose_route() and detect "OpenSer" IP as an own 
ip/domain so it would remove the Route and route the ACK to the RURI 
(Asterisk IP).
But OpenSer doesn't realiza the OpenSer IP is itself so it doesn't remove the 
Route and routes the ACK according to that Route, this is, doing INFINITE 
loops to itself.

So you must fix it by adding you OpenSer IP as an alias in the top of your 
OpenSer script:

  alias = OpenSer_IP:5060

or maybe it's enough with:

  auto_aliases=yes

Hope you understood me. If not see me.





-- 
Iñaki Baz Castillo
ibc at in.ilimit.es




More information about the sr-users mailing list