From: Jonathan Rosenberg <[EMAIL PROTECTED]>

   The issue is really targeting/re-forwarding. The question is, if A
   calls B and this is retargeted to C, does it make sense to call
   complete on B or on C? C kind of makes sense; but what if C is busy
   for a while and during that time, the forwarding rules change and
   calls to B no longer forward to C. Now, if A called B back they
   would reach B (who was the person they REALLY wanted to call
   anyway), but a call completion request would in fact go to C. This
   seems wrong to me. One might even argue that call completion and
   forwarding are incompatible. Frankly, if our initial solution
   basically didn't support it (no Call-Info passed back at all when a
   call is forwarded), I think that is arguably a feature. I suspect
   experts on feature interaction have looked at this one; would be
   curious on the best practices around this in the PSTN.


   From: Paul Kyzivat <[EMAIL PROTECTED]>

   Some discretion on the part of B and C could make this work better:

   If the forwarding is due to NA or BS, then it can be treated as forking, 
   so that the CC requests go both places. Then whichever gets it first wins.

   Conversely, C can notice that the call was forwarded from B, and can 
   make a policy decision not to support queuing of calls forwarded from B.


   From: "Elwell, John" <[EMAIL PROTECTED]>

   In PSTN (or at least enterprise equivalents of PSTN) one practice
   is to make it depend on the conditions for call forwarding. If it is
   call forwarding because of busy or no reply, it makes sense for
   CCBS/CCNR to operate on B, rather than C, because there is just as much
   chance of B becoming available as C becoming available. And after all, B
   is really the person A wants to communicate with. For unconditional call
   forwarding (where B is out of the office for a day, say), it might make
   sense for CCBS/CCNR to operate on C. However, I don't think we want to
   impose rigid rules of this nature on our SIP solution. In some respects
   behaviour should be based on the policy of B, but I am not sure how to
   realise that.


   From: "Alexeitsev, D" <[EMAIL PROTECTED]>

   This is the question, that has no ultimative unswer. One view is
   that it is easier to control the correlation if the call completion wit
   call forwarding is done at the B side. And as you said B is the one A
   really wanted. Things get even more complicated bacause of the different
   types of call forwarding. Here is one of the PSTN BCPs: [...]


Yes, the distinction of forwarding vs. retargeting vs. etc. is
important in CC.  Our assumption is that any sophisticated CC monitor
implementation will have designed proper policies and will edit and
adjust the requests and responses according to that policy.

That is, the messages that are important are:  (1) any HERFP responses
to the original INVITE, (2) final failure responses to the original
INVITE, (3) CC SUBSCRIBE requests, and (4) recall INVITE requests.  In
each case, the proxy doing the forwarding knows the relationship
between the incoming URI and the outgoing URI and thus can determine
whether the outgoing URI is responsible for CC activities of the
incoming URI, or whether a different outgoing URI should be
substituted.  Note that CC SUBSCRIBEs and recall INVITEs can be
detected solely through the 'm' parameter on the request-URI, so even
a memoryless proxy can apply a specific policy.

In Jonathan's case, where INVITEs to B are retargeted to C, there are
two cases:  CC requests to B should be handled by C, or CC requests to
B should be handled by some other UAS/monitor D (which may be a
monitor attached to B).

    Message                 CC handled by C         CC handled by D

    1xx HERFP from C        not modified            Call-Info: call-completion
                                                    URI replaced with D

    failure responses       not modified            Call-Info: call-completion
    from C                                          URI replaced with D

    CC SUBSCRIBE to B       proxy to C              proxy to D

    recall INVITE to B      proxy to C              proxy to D

And as Paul notes, other policies are possible, and they can be
implemented on a case-by-case basis by B, C, and/or D.

In the case of an unsophisticated proxy with no specific CC behavior,
all cases are handled as described in "CC handled by C", which is
likely to be acceptable, if not optimal, behavior.

Dale
_______________________________________________
BLISS mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/bliss

Reply via email to