There are some existing SIP server implementations that support REFER/ Replaces in the situation that James describes. It only works, though, if you *know* that there is exactly one dialog involved in the call -- i.e. if you *know* that no forking has occurred.

Sending REFER/Replaces to complete a transfer before the transfer target has answered the call is understandably seen as desirable, because it allows the transferor to entirely remove itself from the call at the time of the transfer. But for the reasons John and Dale have noted, it's not as simple as that. The safe, RFC 3892-compliant way to handle this transfer is for the transferor to continue managing the two dialogs (transferee and transfer target) until the transfer target dialog has become confirmed, at which time the REFER is performed. The transferor UA can do this "in the background" -- the device is immediately available to the user for initiating or receiving a new call, even though the UA is waiting for the transfer target to answer.

I've had to explain this a number of times to people who don't recognize how forking makes SIP different from traditional switched telephone signaling. They tend to build things without recognizing the possibility of forking.

On Jul 20, 2007, at 4:49 AM, Elwell, John wrote:

In addition to what Dale has said, consider the case where call2 has
been forked to several destinations, 2a, 2b, 2c... To populate the
Replaces header field and the Refer-To URI, the sender of the REFER
request would need to pick one of these arbitrarily, say 2b. So suppose
the REFER request were sent and dereferenced, resulting in an INVITE
request with Replaces header field arriving at 2b. What if call2 is then answered by 2a (or has already been answered by 2a while this signalling
is taking place)? I don't think the intended operation of attended
transfer would then be realised. So basically, I don't think the authors of RFC 3891 saw any solutions to problems of this nature, and hence the
restriction.

John

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: 19 July 2007 18:47
To: [email protected]
Subject: Re: [Sip] RFC3891 (Replaces header) discrepancies


   From: "Jackson, James" <[EMAIL PROTECTED]>

   Consider an attended transfer in which call1 is
established between a
   transferee and a transferor. The transferor creates a new
call2 towards
   transfer target. While this call is still alerting (early
dialog), it
   sends a REFER on call1 with a Replaces header that
references call2. In
   this case, the Replaces header attempts to replace an
early dialog which
   was "terminated" by the target.

That is not allowed by RFC 3891. But suppose it was allowed. Further suppose that the transfer target rings for another 90 seconds (sending an additional 180) and then the proxy that manages the transfer target
cancels the call, causing the transfer target to send a 487.  Who
receives the 180 and 487?

Dale


_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip



_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip



_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip

Reply via email to