Subject: [SIP] message retransmission - a need clarification

From: "Piotr S. Kossowski" <[email-masked]>
Date: Thu, 26 Oct 2000 15:25:44 +0200

Hi All,

I need some clarification on support of message retransission on UAS side,
because it isn't explicite wrote in the spec, i think.

First of all:

10.1.1 of the rfc 2543bis-02:

"Servers discard ISOMORPHIC requests, but first retransmit the appropriate
response. (SIP requests are said to be idempotent, i.e., receiving more
than one copy of a request does not change the server state.)"

For me it means that if UAS gets a message what it have already got
the last time it sends a response that it sent the last time,
independable of its current state. I think, for yet, it's clear.

According to 1.3:

"Two requests or responses are defined to be ISOMORPHIC for the purposes
of this document if they have the same values for the Call-ID, To, From
and CSeq header fields. In addition, isomorphic requests have to have 
the same Request-URI and the same second branch parameter in their 
top-most Via header."

So, by definition, retransmission generates always Isomorphic request.
On the other hand, if, for example, UAC sends retransmitted message,
but it adds e.g. Subject header, what means that it is not 
retransmission (it's not allowed without changing of CSeq, of course), 
for UAS this message is still ISOMORPHIC and must (should?) be 
treated as a retransmission. Is it true ?

Next:

Let's assume that after INVITE from UAC, UAS sent final 603 (Decline)
response (without Retry-After), without eariler provisional response.
It probably means that UAS' user will not accept any call from the UAC
in the nearest future. Let's assume that this 603 message lost.
Thus, UAC retransmit the INVITE. It causes that UAS' user will be 
bothered by incoming call again (it's of course implemmentation matter).
Anyway, we don't want UAS to take up decission again (accept, reject,
redirect). So, UAS should keep information about no longer existed
calls in case of need of retransmission of response. And that's my 
questions: 
1. Is it true ?
2. If yes, how long (as I noticed, the spec says only about proxies
   - 32 seconds. The only one such kind of timeout for UAS is on figure 
   12) ?

The last:

10.1.1 (again):

"If the request is accepted and matches an existing call leg, the server
compares the CSeq header field value. If LESS than or equal to the current
sequence number, the request is a retransmission.
"

It's said: LESS or equal. In case of equal - this message is ISOMORPHIC
with last received message befor this one, and UAS sends again response.
in case of LESS - ???. Should it retransmit something ? If yes,
what is ISOMORPHIC with what and how many messages must 'remember" UAS ?

Thank You,
Piotr

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip