[Serusers] Strange Looping Problem with ACK's and BYE's in Certain Scenarios

reticent tavis.lists at galaxytelecom.net
Thu Apr 14 22:45:24 CEST 2005


I'm running SER and Asterisk both on the same machine and i'm
encountering some strangeness in regards to certain UAC's attempts at
ACK'ing a successfull session to the Asterisk VM server as well as the BYE.

Its kind of an ugly problem, a little history first:

Section 12.1.2 of RFC3261 states:
--

The route set MUST be set to the list of URIs in the Record-Route
   header field from the response, taken in reverse order and preserving
   all URI parameters.  If no Record-Route header field is present in
   the response, the route set MUST be set to the empty set.  This route
   set, even if empty, overrides any pre-existing route set for future
   requests in this dialog.  The remote target MUST be set to the URI
   from the Contact header field of the response.

--
Which I interprit as: The RURI of the ACK MUST be equal to the Contact:
in the "200 OK" and a "Route:" field(s) must be added which contains all
the information inside the "Record-Route" header (if present) of the
"200 OK" message.

I actually have one device that does just this, and it works perfectly.

I have two other devices, 1 Cisco 7960 and 1 generic korean UAC that do
NOT do this.
They respond to the "200 OK" with an "ACK" that contains an RURI with
the data that was in the "Record-Route" header of the "200 OK" and a
"Route:" header with the data that was in the "Contact:" of the "200 OK".



Now, the problem:
When the "ACK" hits SER, SER forwards the message to itself (loops)
untill the "Max-Forwards" reaches zero.
The Asterisk server never gets the "ACK" and so resends the "200 OK"
several times which creates another storm of loopback traffic once the
UAC responds with another ACK.


An Observation:
When i move the asterisk server to another machine, the "ACK" is
forwarded properly and the session is established sucessfully , however
when the BYE messages gets to SER it is looped just like the ACK message
was when Asterisk was running on the local machine.


I don't want to post configs or traces just yet as i'm still digging
into it.

I'm just curious if anyone out there with a SIP brain (read RFC3261
knowledgable) could tell me if the above exchange is indeed compliant.
For reference i'm running Voice Software 7.3 on the Cisco 7960

I hope this problem peaks someones interest because i could really use
some help =P







More information about the sr-users mailing list