Re: [Sipping] rfc5359 vs. sipping-cc-transfer: Blind/Unattended Transfer Question

Valentin Nechayev <netch@portaone.com> Thu, 12 February 2009 07:48 UTC

Return-Path: <npx@segfault.kiev.ua>
X-Original-To: sipping@core3.amsl.com
Delivered-To: sipping@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 19FBC3A6ACD for <sipping@core3.amsl.com>; Wed, 11 Feb 2009 23:48:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UkTCjhTfkgT8 for <sipping@core3.amsl.com>; Wed, 11 Feb 2009 23:48:50 -0800 (PST)
Received: from segfault.kiev.ua (segfault.kiev.ua [193.193.193.4]) by core3.amsl.com (Postfix) with ESMTP id DC2043A68CC for <sipping@ietf.org>; Wed, 11 Feb 2009 23:48:49 -0800 (PST)
Received: from segfault.kiev.ua (localhost.segfault.kiev.ua [127.0.0.1]) by segfault.kiev.ua (8.14.2/8.14.2/8.Who.Cares) with ESMTP id n1C7mo5m023971; Thu, 12 Feb 2009 09:48:50 +0200 (EET) (envelope-from npx@segfault.kiev.ua)
Received: (from npx@localhost) by segfault.kiev.ua (8.14.2/8.14.2/Submit) id n1C7mo2k023968; Thu, 12 Feb 2009 09:48:50 +0200 (EET) (envelope-from npx)
Date: Thu, 12 Feb 2009 09:48:50 +0200
From: Valentin Nechayev <netch@portaone.com>
To: Luca Scheuring <lscheuring.biz@gmail.com>
Message-ID: <20090212074850.GA23325@portaone.com>
References: <972e86e20902111313n103b79fewfa0cb1909a1a64c4@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <972e86e20902111313n103b79fewfa0cb1909a1a64c4@mail.gmail.com>
X-42: On
Cc: sipping@ietf.org
Subject: Re: [Sipping] rfc5359 vs. sipping-cc-transfer: Blind/Unattended Transfer Question
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: netch@portaone.com
List-Id: "SIPPING Working Group \(applications of SIP\)" <sipping.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipping>
List-Post: <mailto:sipping@ietf.org>
List-Help: <mailto:sipping-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Feb 2009 07:48:51 -0000

>>>>> Luca Scheuring <lscheuring.biz@gmail.com> wrote:

>    could emit a BYE to the Transferee as soon as the REFER transaction
>    completes.  This flow is sometimes known as "unattended transfer" or
>    "blind transfer".
>    [...]

> The last sentence implies that if the transferor _wants_ to
> participate in the remainder of the REFER process (and therefore waits
> with sending the BYE until another NOTIFY with "200 OK" has been
> received) this is called attended transfer. But both rfc5359 and
> draft-ietf-sipping-cc-transfer-11 define "attended transfer" as a
> transfer where the transferor establishes a call with the transfer
> target to alert it to the impending transfer. Can somebody clarify
> this issue?

Paragraph 7.6 says of the same draft says:

"  In any of the consultation hold flows above, the Transferor may
   decide to terminate its attempt to contact the Transfer target before
   that session is established.  Most frequently, that will be the end
   of the scenario, but in some circumstances, the transferor may wish
   to proceed with the transfer action.  For example, the Transferor may
   wish to complete the transfer knowing that the transferee will end up
   eventually talking to the transfer-target's voice-mail service.  Some
   PBX systems support this feature, sometimes called "semi-attended
   transfer", that is effectively a hybrid between a fully attended
   transfer and an unattended transfer."

so we have three transfer kinds:

1) attended - when transferor makes call to transfer target (this
implies their real consultation as "dear Bob, could you please
deal with this client? I have no enough competency...") and then
sends REFER-with-Replaces to recombine legs;

2) semi-attended - sent as REFER-without-Replaces but keeping
supervision on call with intention to restore if failed;

3) blind - sent as REFER-without-Replaces with immediate BYE.

> This question came up when analyzing problems that occur if
> Alice/transferor is an agent that remains in the transfer process
> until NOTIFY with "200 OK" is received (in order to offer the
> possibility to un-hold call to Bob/transferee again in case transfer
> target doesn't reply / declines the call) while Bob/transferee is an
> agent who expects a call flow as described in rfc5359 section 2.4.
> Observed problem: Alice is on a call with Bob and then wants to
> attempt an unattended/blind transfer to Carol. Carol's phone is
> ringing, but no answer yet. Alice thinks Carol won't answer and
> therefore un-holds the call to Bob in order to recover. Alice and Bob
> are in communication again, but Bob is still calling Carol. If Carol
> finally answers, Bob doesn't know how to handle this session. Call
> from Bob to Carol ends up as a "phantom call" at Bob that cannot be
> terminated by Bob.

This seems incorrect - in this scenario Alice (transferor) shall
_not_ have possibility to restore the call to Bob until
notification from Bob.

"Iron" PBX (I've mostly used Nortel Norstar & Meridian) can
implement this scenario that Alice hooks on, but if Carol doesn't
answer, Alice gets ring (of special distinctive type) and her call
to Bob is restored when she hooks off.

-- 
Valentin Nechayev
PortaOne Inc., Software Engineer
mailto:netch@portaone.com