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

Reply via email to