On Jul 15, 2004 at 13:12, Ezequiel Colombo ecolombo@arcotel.net wrote:
I are testing the last (v3.1.1) version of SIP firmware for Cisco ATA186 and see some bug or misimplementation of loose routing logic. I want known if my interpretation of the loose routing are correct.
The test scenario is:
U1(ATA186) -- callto -- U2(X-Lite)
U1 = 200.80.35.6:25263 SER= 200.80.35.17:5060 U2 = 200.80.35.6:26198
After the answer (200 OK) from X-Lite the Cisco ATA 186 send a different ACK message with version 3.1.0 and 3.1.0 firmware. The ACK sent by version 3.1.1 never reack X-Lite causing it to re-send the 200 OK message.
In version v3.1.0 the ACK to a 200OK is sent by ATA with URI equal to the proxy address as indicated by Record-Route in the previously received 200OK, and with a Route: header equal to the URI of the remote party (U2). With this SER perform loose-routing, take the URI in the Route: hf and sent the message to U2.
This is actually strict routing.
In version v3.1.1 the ACK to a 200OK is sent by ATA with URI equal to the U2 address (without port information) and a Route: header indicating the URI of the proxy. So is expected that SER perform loose-routing taking the URI in the Route: header and send the message to itself in this case (Route contain address of proxy instead of U2) but not, the loose-routing is not performed for unknown reason (may be ftag or lr ?) and the message is sent to the original uri (U2 ip without port) and never arrive because the U2 endpoint are listen in other port (26198 instead of 5060).
This is "normal" loose routing (you don't touch the uri, but you send the message to the route address). It seems they use loose routing in this version. However you are right about the port bug. The uri must contain the same uri as in the 200 Ok Contact, including the port.
Andrei