Hi Ajit,
I'm not quite certain about your comments on this
thread. Are we saying that in the scenario:
(brackets indicate Cseqs)
UAC UAS
| |
|---- INVITE (1)-->|
|<---- 200 OK -----|
|------ ACK ------>|
| |
|-- re-INVITE(2)-->|
|-- re-INVITE(3)-->|
|<---- 500 (3)-----|
is correct, but in the scenario:
UAC UAS
| |
|---- INVITE (1)-->|
|-- re-INVITE(2)-->|
|<---- 481 (2)-----|
is the right thing to do? I do not agree because
the text that Raja had cited was very much for receiving
a higher Cseq INVITE when the lower CSeq INVITE is
pending.
Again from section 14.2 of RFC 3261:
"A UAS that receives a second INVITE before it sends
the final response to a first INVITE with a lower CSeq
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sequence number on the same dialog MUST return a 500
(Server Internal Error) response to the second INVITE
and MUST include a Retry-After header field with a
randomly chosen value of between 0 and 10 seconds."
If we send a 481 response in the first scenario, won't
the UAC drop the call all together, whereas what we want
him to do is to drop this second INVITE transaction alone?
Others can please comment. Please clarify both the
scenarios as drawn above if you disagree with this
interpretation. As far as I can see from the cited text,
both scenarios are equivalent and sending 500 is just to
kill the offending second re-INVITE and not the whole call.
Cheers,
Siddharth.
------------------
Siddharth Toshniwal @ Hughes Software Systems
Bangalore, India.
http://www.hssworld.com
Ajit Kalele <[EMAIL PROTECTED]> on 07/31/2002 11:11:59 AM
To: "Sp.Raja" <[EMAIL PROTECTED]>
cc: Medhavi Bhatia <[EMAIL PROTECTED]>, Sip-Implementors
<[EMAIL PROTECTED]> (bcc: Siddharth J
Toshniwal/HSSBLR)
Subject: Re: [Sip-implementors] re-invite
comments inline ..
> In your case UAS should send 500 to the second INVITE and continue with
the
> first one as usual. Sec 14.2 says
>
> A UAS that receives a second INVITE before it sends the final
> response to a first INVITE with a lower CSeq sequence number on the
> same dialog MUST return a 500 (Server Internal Error) response to the
> second INVITE and MUST include a Retry-After header field with a
> randomly chosen value of between 0 and 10 seconds.
>
> Am I missing any thing ?
No 500 response should not be sent in this case.
The case you have explained is for a request with lower CSeq no. while
what
Medhavi has asked is for a proper re-INVITE request (higher CSeq etc.) to a
UAS
which hasn't answered the previous INVITE.
> In section 14.2 of rfc 3261, the spec doesnt seem to talk about
> the following scenario:
>
> A UAS hasnt responded yet to an INVITE or a re-INVITE on the dialog
> (or early dialog), and it receives a new re-INVITE, which is different
> from what was pending (ie., higher CSeq no). The spec forbids the UAC
> (dialog peer)
> from sending a new INVITE before the UAS has responded to the old one,
but
> in cases of a misbehaving UAC, what response
> should be sent to the second INVITE ?
481 Call leg / Transaction does not exist.
Here is the text from RFC3261
12.2.2 UAS Behavior
If the UAS wishes to reject the request because it does not wish to
recreate the dialog, it MUST respond to the request with a 481
(Call/Transaction Does Not Exist) status code and pass that to the
server transaction.
Regards
Ajit
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors