Subject: Re: [SIP] Possible REFER problem?

From: William Marshall <[email-masked]>
Date: Mon, 4 Dec 2000 11:06:32 -0500 (EST)

in some nasty cases the UAC/UAS may supply an invalid Contact: header
in order to confuse/corrupt the 3-way call.  You might want to consider
using the Remote-Party-ID value instead, as it is verified by the
provider of the service and contains an authenticated identity of the
remote endpoint.  See draft-ietf-sip-privacy-00.

If there is no intervening service provider, or no Remote-Party-ID
header, Contact is probably the best that can be done.

Bill Marshall
[email-masked]

-----original message-----
Billy Biggs <[email-masked]> wrote:

  Our situation is as follows:

             A
            / \
           B   C

  A is in a 3-way call with B and C and wishes to be excused.  If C
called A, then A has no 'well-known URI' for C.  The best address is the
Contact.  The From is not useful because it may be an unknown URI
scheme, or C might be a 3pcc server, or the URI may be stale (or
fork)...

  In our implementation, we use the Contact exclusively.  I expect other
implementations will also generalize transfer with consultation by
instead implementing call handoff, and act similarily.  If we REFER B to
C and it fails, maybe we'll instead REFER C to B.  If some server really
needs to be in the signalling path, it should do 3pcc, or mangle the
Contact, or act as a transparent SIP proxy...

  Jonathan discussed why using the Contact is dangerous:

> The answer is that URIs most definitely have a context; a place from
> which they can be usefully used. In a perfect world with no NATs,
> firewalls, or devices that want to know whats going on within the
> network, it would work dandy. But thats not reality. The classic
> example is an ACD application, where [email-masked] can be routed
> to a variety of agents ([email-masked]). Sophisticated
> software tracks the call status of the various agents, how much volume
> they get, etc. Incoming calls MUST come in through this helpdesk proxy
> to work. The proxy always record routes.  In fact, to enforce this,
> the proxy has access to a hosts file with the host32.helpdesk.com
> address mapped to an IP address. Outside of this proxy, that hostname
> is unroutable. So, if A called B, and then A called C, and C was one
> of these operators, the URI returned by C
> ([email-masked]) will definitely not be useful for B to
> use directly.

  With an ACD application, in order to enforce all calls through the
server, the server must perform 3pcc and only SIPly expose itself, or
have all of the clients collude with the server and redirect all
incoming direct-dialed calls.  I don't think a Record-Route'ing proxy
with some unroutable client addresses is clean, and I think it is
reasonable to have attended transfer fail in these scenarios.

  If the Contact address is not generally routable (firewalls and NATs),
then it should be mangled if the user wishes attended transfer to work,
or have calls go through some helper 3pcc box.  I see this as the only
reasonable solution.

> Perhaps these cases are so extreme its not worth worrying about. I
> wouldn't be surprised if they don't work in the PSTN either. 

  The PSTN has no concept of a REFER, which is where all this breaks
down.  Again, the 3-way call:

             A
            / \
           B   C

  A cannot excuse itself from the call in the PSTN.  It can only keep
the bridge active.  This is acceptable because A is a PBX or similar
server.  There is no concept of signalling a transfer over the PSTN
where the transferred party makes a new call.

> So, despite its complexity, I feel compelled to recommend that
> Robert's hybrid approach be described in the REFER specification as
> the preferred way to do transfer out of consultation, along with a
> nice long explanation of why it needs to be so. I'm not sure about the
> order though. I suspect that (2) will work in far more cases than (1)
> will. I welcome better ideas if anyone has any...

  It might be better to remove transfer out of consultation from the
REFER draft, and maybe do a new draft on attended transfer, discussing
these options and also introducing the replaces header from
draft-biggs-sip-replaces-00.

  I really want to be able to have A silently excuse itself from the
conference.  This will help with many services, including moving
transparently to a conference bridge, call park with server, ...

-- 
Billy Biggs, 3Com               Email: [email-masked]
http://www.div8.net/billy/      Phone: [email-masked]

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip