On Mon, 2009-07-20 at 11:59 +0800, JC wrote:
> My scenario is as follows, one SIP client sends one fresh SUBSCRIBE to 
> SIP server via TCP, and SIP server sends 200OK back immediately. 
> Unfortunately, SIP client does incorrect thing to retransmit SUBSCRIBE 
> once before it gets final response.

Or it is possible that the 200 is lost by the network, and the UAC must
retransmit the SUBSCRIBE.

>  In this error case, when SIP server 
> sends 200OK, associated transaction releases immediately. So for 
> retransmitted SUBSCRIBE, transaction layer will regard it as a new msg, 
> not retransmitted one, and will create a new transation. And dialog 
> layer cann't find one matched dialog for retranmited msg because TO tag 
> not match, so maybe will create a new dialog.

There is a known bug/deficiency in the description -- the lower levels
of the SIP stack in the UAS retain a record of the received SUBSCRIBE
and the 2xx response to it for the maximum retransmission time (3
minutes, IIRC).  So when the UAS receives the retransmitted SUBSCRIBE
(which it can determine by the repeated branch value), the lower levels
of the stack retransmit the 2xx response without notifying the
"application" layers of the arrived SUBSCRIBE.

Dale


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

Reply via email to