I think we all agree that it would be nice if there was an identifier that worked through b2bua, which we could use to identify dialogs.

However, I think the problem is far more complicated than this document talks about. The focus is on making it work through SBC type of boxes which aren't doing a lot of fancy call control, but are rewriting call-id and doing security things. There, I think the problem is easy.

However, there are lots of cases where more complicated dialog manipulation mucks this up in a really horrible way. In particular, enterprise features like transfer, park/pickup, and so on, are often implemented by means of re-INVITEs on dialogs all anchored in the IP-PBX. For example, consider the following transfer implementation:

A calls B. A calls C. Both calls are routed through an IP-PBX, which acts as a b2bua, and so we end up with something which looks like this:

 Please view in a fixed-width font such as Courier.







                    +------------+       S1
               S1   |            | ------------    B
            --------|            |
     A         S2   |   server   |
            --------|            |       S2
                    |            | -------------   C
                    |            |
                    +------------+

Where S1 and S2 are the two session IDs. So far, so good. Now, A transfers the call to B. A sends a REFER on dialog S1. Like it or not, due to frequent REFER/transfer interop issues, this is sometimes implemented as a re-INVITE from the server, connecting B and C's media streams together, and then disconnecting A, so that you end up with:

 Please view in a fixed-width font such
              as Courier.







        +------------+       S1
        |            | ------------    B
        |            |
        |   server   |
        |            |       S2
        |            | -------------   C
        |            |
        +------------+

Now B and C are talking to each other. What is the session ID for this dialog? B and C were both originally the UAS on different dialogs with different session IDs!

The problem happens more generally for any 3pcc operation, and the meta-issue is how to come up with a clear notion of who 'owns' the sessionID creation and destruction in cases where calls are transferred, moved, conferenced, parked and picked up all over the place.

As such, a true comprehensive solution to this problem is much more complicated than just 'tell the SBCs to stop mucking with this header'. It would need to account for a wider range of 3pcc and other dialog manipulations which occur in the wild. Or, we could try to scope this in a more limited way, focusing on the basic A-calls-B case and solve just the SBC problem.

Which is it?

-Jonathan R.

--
Jonathan D. Rosenberg, Ph.D.                   111 Wood Avenue South
Cisco Fellow                                   Iselin, NJ 08830
Cisco, Voice Technology Group
jdro...@cisco.com
http://www.jdrosen.net                         PHONE: (408) 902-3084
http://www.cisco.com
_______________________________________________
Sip mailing list  https://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implement...@cs.columbia.edu for questions on current sip
Use sipp...@ietf.org for new developments on the application of sip

Reply via email to