Re: [Sip-implementors] Handling of message cross over between 200OK(INVITE) and 200OK(PRACK)
Dinoopwrites: >UAC B2BUA UaB > | 1:INVITE(SDP) || > +--->|| > | 2:100[INV] || > |<---+| > || 3:INVITE(SDP) | > |+--->| > || 4:D1.183[INV](SDP) | > ||<---+ > | 5:D1.183[INV](SDP) || > |<---+| > | 6:D1.PRACK || > +--->|| > || 7:D1.PRACK | > |+--->| > || 8:D1.200[INV](SDP) | > ||<---+ > || 9:D1.200[PRA] | > ||<---+ > > > Where the 200[INVITE] has reached B2BUA before 200[PRACK]. What should be > the behavior of B2BUA as Ua-Client on right side. Or in general what > handling should be done at Ua-client side when this occurs?. Is there any > standard defined to handle this message crossing? It seems that the key to this is in section 3 of RFC 3262: The UAS MAY [...] unless the final response is 2xx and any of the unacknowledged reliable provisional responses contained a session description. In that case, it MUST NOT send a final response until those provisional responses are acknowledged. UaB follows this rule, because message 4 is acknowledged (UaB receives message 7) before UaB sends the 200 (message 9). Similarly, at the end of this sequence, B2BUA can send a 200 for message 1, having received message 6. Reading this section, it doesn't seem that there is any constraint regarding when a UAS has to send 200 for PRACK compared to any other messages. Dale ___ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
Re: [Sip-implementors] Handling of message cross over between 200OK(INVITE) and 200OK(PRACK)
Thanks Worley and Paul, My scenario is, UAC B2BUA UaB | 1:INVITE(SDP) || +--->|| | 2:100[INV] || |<---+| || 3:INVITE(SDP) | |+--->| || 4:D1.183[INV](SDP) | ||<---+ | 5:D1.183[INV](SDP) || |<---+| | 6:D1.PRACK || +--->|| || 7:D1.PRACK | |+--->| || 8:D1.200[INV](SDP) | ||<---+ || 9:D1.200[PRA] | ||<---+ Where the 200[INVITE] has reached B2BUA before 200[PRACK]. What should be the behavior of B2BUA as Ua-Client on right side. Or in general what handling should be done at Ua-client side when this occurs?. Is there any standard defined to handle this message crossing? On 25 May 2017 at 23:43, Dale R. Worleywrote: > Dinoop writes: > > How can a B2BUA handle message crossing of 200OK(invite) over > 200OK(PRACK)? > > Is it a correct approach for the implementation to reject the > > 200OK(INVITE) until it receives PRACK response? > > > > I have gone through the RFC 6337, unfortunately nothing is mentioned > about > > this scenario. > > As Paul says, the B2BUA has to behave correctly "on each side". In your > situation, we would need to see a detailed diagram of the message flow > you are contemplating before we would know exactly what the situation is > and what possible strategies the B2BUA could use. > -- Thanks & Regards Dinoop p ___ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
Re: [Sip-implementors] Handling of message cross over between 200OK(INVITE) and 200OK(PRACK)
Dinoop, On 5/26/17 4:50 AM, Dinoop wrote: Thanks Worley and Paul, My scenario is, UAC B2BUA UaB | 1:INVITE(SDP) || +--->|| | 2:100[INV] || |<---+| || 3:INVITE(SDP) | |+--->| || 4:D1.183[INV](SDP) | | |<---+ | 5:D1.183[INV](SDP) || |<---+| | 6:D1.PRACK || +--->|| || 7:D1.PRACK | | +--->| || 8:D1.200[INV](SDP) | | |<---+ || 9:D1.200[PRA] | | |<---+ Where the 200[INVITE] has reached B2BUA before 200[PRACK]. What should be the behavior of B2BUA as Ua-Client on right side. Or in general what handling should be done at Ua-client side when this occurs?. Is there any standard defined to handle this message crossing? I don't see any particular issue here. The response to the PRACK is required to complete its transaction, but the 200 to the INVITE is evidence that the PRACK had been received and that its 200 will be forthcoming. You can simply forward the 200 (INV) and the 200 (PRA) as they are received, or you could synthesize and send a 200 for the PRACK before forwarding the 200 (INV). Or you *could* hold the 200 (INV) until you get the 200 (PRA) and reorder them if you wish, though in some extreme cases that might lead to timing issues. Thanks, Paul On 25 May 2017 at 23:43, Dale R. Worley> wrote: Dinoop > writes: > How can a B2BUA handle message crossing of 200OK(invite) over 200OK(PRACK)? > Is it a correct approach for the implementation to reject the > 200OK(INVITE) until it receives PRACK response? > > I have gone through the RFC 6337, unfortunately nothing is mentioned about > this scenario. As Paul says, the B2BUA has to behave correctly "on each side". In your situation, we would need to see a detailed diagram of the message flow you are contemplating before we would know exactly what the situation is and what possible strategies the B2BUA could use. -- Thanks & Regards Dinoop p ___ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
Re: [Sip-implementors] Handling of message cross over between 200OK(INVITE) and 200OK(PRACK)
Dinoopwrites: > How can a B2BUA handle message crossing of 200OK(invite) over 200OK(PRACK)? > Is it a correct approach for the implementation to reject the > 200OK(INVITE) until it receives PRACK response? > > I have gone through the RFC 6337, unfortunately nothing is mentioned about > this scenario. As Paul says, the B2BUA has to behave correctly "on each side". In your situation, we would need to see a detailed diagram of the message flow you are contemplating before we would know exactly what the situation is and what possible strategies the B2BUA could use. ___ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
Re: [Sip-implementors] Handling of message cross over between 200OK(INVITE) and 200OK(PRACK)
On 5/24/17 2:53 AM, Dinoop wrote: Hi, How can a B2BUA handle message crossing of 200OK(invite) over 200OK(PRACK)? Is it a correct approach for the implementation to reject the 200OK(INVITE) until it receives PRACK response? I have gone through the RFC 6337, unfortunately nothing is mentioned about this scenario. The fundamental rule to keep in mind for B2BUAs is that each "leg" must obey the UA rules. The logic you use to bridge the two legs is up to you. Thanks, Paul ___ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
[Sip-implementors] Handling of message cross over between 200OK(INVITE) and 200OK(PRACK)
Hi, How can a B2BUA handle message crossing of 200OK(invite) over 200OK(PRACK)? Is it a correct approach for the implementation to reject the 200OK(INVITE) until it receives PRACK response? I have gone through the RFC 6337, unfortunately nothing is mentioned about this scenario. -- Thanks & Regards Dinoop p ___ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors