On 12/21/11 3:09 AM, Saul Ibarra Corretge wrote:
> Hi,
>
> On Dec 21, 2011, at 8:00 AM, William Scott wrote:
>
>> On 21 December 2011 17:10, Alex Balashov<abalas...@evaristesys.com>  wrote:
>>> Is your concern about the two RR headers, or the double lr parameter?
>>
>> The double lr parameter.
>>
>> When my ATA sends the double lr to a VSP using Asterisk the call continues.
>>
>> When it sends it to a VSP using "Sippy" (as seen in User-Agent: and
>> Server:) I fail to receive a ACK for my 200 OK. Multiple 200 OK are
>> sent then finally a BYE message.
>>
>
> As a general rule, the server should be gentle in what it accepts ;-)

+1

The repeated 'lr' is erroneous.

There are no particular rules for what to do when receiving something 
erroneous, especially if its in a response. I don't fully follow exactly 
what happened in the case that failed. But its not ok to deny the ACK 
because of trouble with the 200.

Presumably the bad R-R is being added to the request by some middle box, 
then returned in the response. Anything that detects the R-R as being 
malformed in the request has some alternatives:
- preserve it as-is
- canonicalize it: remove one of the 'lr's
- return an error code - probably 400

Middleboxes that detect the R-R as being malformed in the response have 
fewer options:
- preserve it as-is
- canonizalize it: remove one of the 'lr's

If the malformed R-R makes it back in a 2xx response to the UAC, then 
the UAC can:
- preserve it as-is in the route set
- canonicalize it in the route set
- ACK the response and then kill the call with BYE.
   However, the BYE must follow the route set, so it can't avoid making
   one of the above choices first.

If the UAC preserves the double 'lr' in the route set, then in-dialog 
requests will have double lr in the Route header. That will set off a 
similar set of issues in handling of Route.

The thing that is most likely to work well is to canonicalize by 
removing the extra 'lr'. Some implementations may find that this falls 
out automatically. For others it may be unnatural / difficult.

Ultimately the right thing is to get the ATA fixed.

        Thanks,
        Paul
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to