Subject: [Sip] About Non-Invite Server Transaction

From: "Anil Bollineni" <[email-masked]>
Date: Wed, 18 May 2005 15:34:02 -0700

Hello,

            Assume a gateway sends two INVITE's say to two different
UAS's with the same Via branch parameter to two different users at the
same time. Here in this case the gateway adds one Via with its own
address in sent-by field of Via. 

Assume INVITE 1, is retransmitted, in this case the matching of requests
at UAS, can result to the server transaction of INVITE 2. (Via branch,
sent-by field, Request method, per 17.2.3 is same). How I should solve
this scenario., branch parameter can be same by chance. 

Another question is, for non-INVITE server transaction, the server
transaction is timeout until J timer fires. What is the purpose behind
that. I understand for retransmitted non-INVITE requests it MUST result
sending same response by UAS, or it is like that to reduce processing
retransmitted request AGAIN by UAS. I have a doubt on two call flows
with non-INVITE server transactions.

a.       Assume 200 response to BYE sent by server transaction, and 200
response is lost before it reaches UAC. If it send BYE again, does UAS
has to retransmit 200         response?

b.       During transfer if a REFER is sent to UAS and say server
transaction say transmit 503 (Declined), due to some temporary failures
(e.g. user can't accept more calls), and assume this 503 is delayed.
Aftr this failure cleared out, and REFER is retransmitted, and in this
case the server transaction sends same error message, even though the
user is not busy. First of all, am I mentioning the correct scenario.?
If yes, what could be solution.

Thanks very much, 

Anil

_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: "Dale Worley" <[email-masked]>
Date: Thu, 19 May 2005 11:44:24 -0400

> From: Anil Bollineni [[email-masked]]
>
> Assume a gateway sends two INVITE’s say to two different UAS’s with the
same
> Via branch parameter to two different users at the same time.

It must not do that.  See section 8.1.1.7 of RFC 3261:  "The branch
parameter value MUST be unique across space and time for all requests sent
by the UA."

> I understand for retransmitted non-INVITE requests it MUST result sending
same
> response by UAS

> Assume 200 response to BYE sent by server transaction, and 200 response is
lost
> before it reaches UAC. If it send BYE again, does UAS has to retransmit
200
> response?

If the second BYE is a retransmission of the first BYE, as you have noted,
the UAS is required to send the same 200 response.

> During transfer if a REFER is sent to UAS and say server transaction say
> transmit 503 (Declined), due to some temporary failures (e.g. user can’t
accept
> more calls), and assume this 503 is delayed. Aftr this failure cleared
out, and
> REFER is retransmitted, and in this case the server transaction sends same
error
> message, even though the user is not busy. First of all, am I mentioning
the
> correct scenario.? If yes, what could be solution.

If the second REFER is a retransmission of the first REFER, as you have
noted, the UAS is required to send the same 503 response.  If the second
REFER is a *new* request (which can be determined by the increased CSeq
number and the different Via branch parameter), the UAS may examine its
situation and return a different response if it chooses.

Dale

---

From: "Anil Bollineni" <[email-masked]>
Date: Thu, 19 May 2005 10:45:14 -0700

Please see my answers below.

Thanks,
Anil
-----Original Message-----
From: [email-masked]
[mailto:[email-masked]] On Behalf Of Dale
Worley
Sent: Thursday, May 19, 2005 8:44 AM
To: [email-masked]; [email-masked]
Subject: [Sip-implementors] Re: [Sip] About Non-Invite Server
Transaction

> Assume a gateway sends two INVITE's say to two different UAS's with
the
same

It must not do that.  See section 8.1.1.7 of RFC 3261:  "The branch
parameter value MUST be unique across space and time for all requests
sent
by the UA." 
      "The sent-by value is used as part of the matching process because
      there could be accidental or malicious duplication of branch
      parameters from different clients."
I want to talk about NAT firewall. If two UA's behind NAT firewall
generate same branch, and NAT ALG will change the VIA sent-by field to
same value. In this case it could result matching same transaction.

same
> response by UAS

What is the purpose behind that. 
	i. I understand for retransmitted non-INVITE requests it MUST
result sending same response 	by UAS.
	ii. It is like that to reduce processing retransmitted request
AGAIN by UAS. I have a doubt on 	two call   flows with non-INVITE
server transactions. 

I want to clear on this.  Which one is true on the above for putting 'J'
timers. Why can't retransmitted request non-INVITE request should be
processed by UAS.. 

lost
200
> response?

If the second BYE is a retransmission of the first BYE, as you have
noted,
the UAS is required to send the same 200 response.

> transmit 503 (Declined), due to some temporary failures (e.g. user
can't
accept
out, and
error
the

Dale

_______________________________________________
Sip-implementors mailing list
[email-masked]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: "Dale Worley" <[email-masked]>
Date: Thu, 19 May 2005 13:59:22 -0400

> I want to talk about NAT firewall. If two UA's behind NAT firewall
generate same
> branch, and NAT ALG will change the VIA sent-by field to same value. In
this
> case it could result matching same transaction.

True.  Which is why UAs should generate branch parameters that are unique
over all space and time, that is, include some identifier of the UA itself
to ensure that no other UA will generate the same branch parameter.

same

> What is the purpose behind that. 

It is to ensure that the retransmission of the request provokes a "pure
retransmission" of the response.  In particular (1) the UAC does not attempt
to re-execute the request if it receives it twice (which might cause
erroneous operation), and (2) if the response to the first request is only
delayed, and the UAC receives both the first response and the second
response, both responses are identical (otherwise, how would you process
them both?).

Dale