On 10/12/16 8:16 AM, Gagandeep Singh wrote:
Considering below scenario. (Please view in fixed-width font)
UAC B2BUA1 B2BUA2 UAS
|------INVITE----->| | |
| |------INVITE----->| |
| | |------INVITE----->|
| | | |
| | |<-------180-------|
| |<-------180-------| |
|<-------180-------| | |
| | | |
|<---183(100rel)---| | |
| | | |
|------PRACK------>| | |
| |(-----PRACK?---->)| |
| | | |
(1) Route set due to 180: <B2BUA1>, <B2BUA2>
(2) Route set due to 183: <B2BUA1>
Since these are B2BUAs, there are *three* different early dialogs here:
- UAC:B2BUA1
- B2BUA1:B2BUA2
- B2BUA2:UAS
All the rules regarding route sets, etc. apply separately to each.
B2BUA1 has not received a reliable provisional from B2BUA2, so it cannot
send a PRACK.
People like to think that there is a single dialog between UAC and UAS,
but that can't be with B2BUAs. They can try to maintain the illusion by
carefully correlating the messages on each side. But as soon as you
depart from proxy behavior you are going to encounter cases where that
strategy breaks down. As a B2BUA developer it is your responsibility to
follow all the rules on each side of your B2BUA.
Thanks,
Paul
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors