Subject: [SIP] What am I doing wrong ?

From: Sekhar Banerjee <[email-masked]>
Date: Tue, 14 Nov 2000 14:09:03 -0800

Hi SIP Experts,
	Here is a question that I have about a certain call flow that I am
trying to implement. Please look at the call flows and let me know what is
wrong in this picture.

     A			Proxy			B			C

     INVITE------------> 
				INVITE---------->
					<--------- 100 Trying
				      <--------- 180 Ringing
	<----------------- 180 Ringing	
				CANCEL ---------->
					<----------- 200 OK
					<----------- 487
				
				INVITE ----------------------------->
					<------------------------------ 100
Trying
					<------------------------------ 180
Ringing
	<----------------- 180 Ringing
					<------------------------------ 200
OK
	<----------------- 200 OK

	What I have noticed with the devices that I am testing this call
flow is that somehow they dont like the 180/200 OK that come in from C. Is
there a reason  for this ? I would love to know this.

Thanks a lot 

Sekhar Banerjee			  

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

---

From: Vijay Gurbani <[email-masked]>
Date: Tue, 14 Nov 2000 16:30:37 -0600

>         <----------------- 180 Ringing

There is no reason why A should reject a 180/200 OK from C; since it never
got a final response from B, a call leg has not yet been established at A.
On getting a 200 OK from C, a call leg should be established at A.

However, I do see a bug in your call flow; note your call flow:

A         Proxy      B              C
INV-------->
           INV------>
           <--------100
           <--------180
<---------180
           CANCEL----->
           <-----------200 OK
           <-----------487

           INV--------------------->

In your call flow, your proxy starts a second INVITE to C; it never sends an
ACK to B; it should.  Logically, B's INVITE is still pending and it will
continue re-transmitting 487 until ACK'ed or maximum response retransmission
limit has reached (which is 7 for an INVITE, if I am not mistaken). 

I also assume that the 200 OK from B->Proxy is for Cancel (you do not indicate 
this in your call flow).  If this is not a correct assumption and the 200 OK is 
for the INVITE, and since you want to CANCEL the transaction, you should ACK 
the 200 OK and then send a BYE.

- vijay
--
Vijay K. Gurbani  vkg@{lucent.com,research.bell-labs.com,acm.org}
Internet Software and eServices Group 
Lucent Technologies/Bell Labs Innovations 263 Shuman Blvd., Rm 1A-413
Naperville, Illinois 60566     Voice: +1 630 224 0216   Fax: +1 630 713 0184