I see that Brett already answered, and I have no argument with is reply.
But here are some thoughts of mine.
On 7/16/12 3:56 AM, Kumar, Puneet (Puneet) wrote:
> Sending again with proper formatting.
> -------
> Hi All,
>
> Let's assume a scenario where B2BUA forks the incoming call for a user
> to two UA's, UA2& UA3.
>
> SIP message flow for this is:
>
> UA1 B2BUA UA2 UA3
> ---------INVITE---------->
> (Call-ID=c1)
> (From tag=f1)
> ----------INVITE-------->
> (Call-ID=c2)
> (From tag=f2)
> ------------------INVITE------------------>
>
> (Call-ID=c3)
> (From tag=f3)
> <-----------------180----------------------
> (Call-ID=c3)
> (From tag=f3)
> (To tag=t3)
> <----------180------------
> (Call-ID=c1)
> (From tag=f1)
> (To tag=t1)
> <---------180------------
> (Call-ID=c2)
> (From tag=f2)
> (To tag=t2)
> (Require=100rel)
> <----------180------------
> (Call-ID=c1)
> (From tag=f1)
> (To tag=t11)
> (Require=100rel)
> <-----------------200----------------------
> (Call-ID=c3)
> (From tag=f3)
> (To tag=t3)
> --------CANCEL--------->
> (Call-ID=c2)
> (From tag=f2)
> (To tag=t2)
> <--------200--------------
>
> As per our internal design after receiving final response from UA3,
> B2BUA will CANCEL the call towards UA2.
> But we can't send 200OK to UA1 as a PRACK is pending on
> dialog(c1+f1+t11).
Why? You have two early dialogs going - f1+c1+t1 and f1+c1+t11. You can
send a 200 on f1+c1+t1.
> Thus I have few queries on it:
> 1) Can B2BUA send a CANCEL to UA2 before PRACK transaction is over?
Yes.
> 2) If answer to above question is "yes" then how can B2BUA send 200OK
> for dialog(c1+f1+t1) to UA1?
Just do it. The two early dialogs are independent of one another.
UA1 still owes a PRACK on f1+c1+t11, but that is a separate issue. The
issues that remain are:
- the B2BUA keeping enough state to handle the PRACK when it arrives.
- the B2BUA sending a PRACK to UA2 for the 180 already received.
- in spite of the CANCEL, UA2 could still send additional 1xx and/or
a 2xx response. The B2BUA must be prepared to deal with these.
The fundamental implementation decision to make here is whether to
continue to couple f1+c1+t11 with f2+c2+t2, or to manage them
independently. You can make either of them work. And either one will
require the B2BUA to keep some state.s
Thanks,
Paul
> Are there any alternate& better way to handle this call flow?
>
> Thanks,
> Puneet
>
>
> _______________________________________________
> Sip-implementors mailing list
> [email protected]
> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors