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@OpenSer SIP/2.0*
Via: SIP/2.0/UDP phone:5060;branch=z9hG4bK-8922-48b022e5-dcaa5757-3884948f*
Contact: <sip:restricted@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@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@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(a)in.ilimit.es