Re: [splices] Answering a Call Using Two Separate Devices proposal

Paul Kyzivat <pkyzivat@cisco.com> Sun, 01 May 2011 22:09 UTC

Return-Path: <pkyzivat@cisco.com>
X-Original-To: splices@ietfa.amsl.com
Delivered-To: splices@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ADF07E06D3 for <splices@ietfa.amsl.com>; Sun, 1 May 2011 15:09:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.299
X-Spam-Level:
X-Spam-Status: No, score=-110.299 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_18=0.6, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7Ah1a0UJlAg6 for <splices@ietfa.amsl.com>; Sun, 1 May 2011 15:09:45 -0700 (PDT)
Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by ietfa.amsl.com (Postfix) with ESMTP id 92368E06CC for <splices@ietf.org>; Sun, 1 May 2011 15:09:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=pkyzivat@cisco.com; l=13701; q=dns/txt; s=iport; t=1304287785; x=1305497385; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=SrEHOwnQ4Xg+h/IoW3DpqDdYs6bx4dmXOo+N5hY51a8=; b=POKi1VKr+UsVlL2O0dUjDjUD45xu5tGlyEIwmGBTrKv1fT9FbVRwT/Cr VFmU0VQQmTfpQUKZ6NIRQGfHYREgPnCTqG47eGyhgKZppx/gQhgiQMOy/ pE6GnH3gCGOJmw7BaI7fmocaaW1VcQfMwS3bbQIowR+kKB5V1CgQIsNpD A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAJbZvU2tJV2Y/2dsb2JhbACmHXelWZsshgAEjnmEGYol
X-IronPort-AV: E=Sophos;i="4.64,299,1301875200"; d="scan'208";a="690135450"
Received: from rcdn-core-1.cisco.com ([173.37.93.152]) by sj-iport-6.cisco.com with ESMTP; 01 May 2011 22:09:44 +0000
Received: from [10.86.253.168] ([10.86.253.168]) by rcdn-core-1.cisco.com (8.14.3/8.14.3) with ESMTP id p41M9hiO004237; Sun, 1 May 2011 22:09:44 GMT
Message-ID: <4DBDDA27.5060804@cisco.com>
Date: Sun, 01 May 2011 18:09:43 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9
MIME-Version: 1.0
To: "Shekh-Yusef, Rifaat (Rifaat)" <rifatyu@avaya.com>
References: <OF72946BD9.9432A2C6-ON4825787D.001619F0-4825787D.001882DE@zte.com.cn> <4DB56C9C.1080004@cisco.com> <6369CB70BFD88942B9705AC1E639A33822CB26E13D@DC-US1MBEX4.global.avaya.com> <4DB853B0.5060506@cisco.com> <6369CB70BFD88942B9705AC1E639A33822CB33B18C@DC-US1MBEX4.global.avaya.com>
In-Reply-To: <6369CB70BFD88942B9705AC1E639A33822CB33B18C@DC-US1MBEX4.global.avaya.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: "splices@ietf.org" <splices@ietf.org>
Subject: Re: [splices] Answering a Call Using Two Separate Devices proposal
X-BeenThere: splices@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Loosely-coupled SIP Devices \(splices\) working group discussion list" <splices.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/splices>, <mailto:splices-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/splices>
List-Post: <mailto:splices@ietf.org>
List-Help: <mailto:splices-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/splices>, <mailto:splices-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 May 2011 22:09:47 -0000

Yes, this seems reasonable to me. The specific refer actions are a 
little speculative and can be debated, but for now they're just 
examples, and I think we could work them out.

I've included one suggested wording revision inline below.

	Thanks,
	Paul

P.S. While we don't necessarily need to deal with it here and now, ISTM 
it would be useful to work out some best practices for how to manage 
multiple media in order to get the best user experience. E.g.:

- when/how do devices with multiple media capabilities announce those
   capabilities? (This scenario has suggested doing so in registrations.
   Are the same capabilities announced as contact params on INVITEs,
   etc.?)

- Should media capabilities be announced in SDP, even if there is no
   intent to use them at the moment? E.g. using the SDP capneg framework,
   or perhaps by "offering" extra media with port set to zero, or with
   a=inactive?

- when forced to make an offer (by receipt of an INVITE without offer),
   what media should be offered? Should the UAS defer the decision until
   it can alert and get feedback to the alert about which media the
   callee wants to use? Or should UAs be user configurable with the media
   to initially offer, so they can offer *something* quickly.

- in the latter case, should the UAS, while alerting, provide a way
   for the user to influence which media are used in the call?
   (via another o/a before answer).

Not having anything like this opens call flows such as this one up to 
much haggling over what assumptions it makes about behavior of the UAs.



On 5/1/2011 11:41 AM, Shekh-Yusef, Rifaat (Rifaat) wrote:
> Hi,
>
> In the following flow, I have tried to incorporate all the feedback that I received so far.
> The only open issue that I am aware of is the issue of what to present to the user on the PC when the phone initiates a video call to the PC (see (#) below).
>
> Can you please review the flow below and let me know if we have any other open issues?
>
> Regards,
>   Rifaat
>
>
>
>     Alice                 Alice                Proxy                  Bob
>      PC                 Desk Phone
>      |                     |                     |                     |
>      |                     |                     |                     |
> Both Alice's devices subscribe to the reg event package, which allows each device to
> discover the capabilities of the other device based on the feature tags provided by each device.
> The Desk Phone knows that the PC supports Video, while the PC knows that the Desk Phone only supports audio.

In the last sentence above, it might be clearer to say "The Desk Phone 
*learns* that the PC supports Video, while the PC *learns* that the Desk 
Phone only supports Audio."

>      |                     |                     |                     |
>      |                     | SUBSCRIBE reg       |                     |
>      |                     |-------------------->|                     |
>      |                     | 200 OK              |                     |
>      |                     |<--------------------|                     |
>      |                     |                     |                     |
>      | SUBSCRIBE reg       |                     |                     |
>      |------------------------------------------>|                     |
>      | 200 OK              |                     |                     |
>      |<------------------------------------------|                     |
>      |                     |                     |                     |
>      |                     |                     |                     |
> The two devices also subscribe to the dialog of each other.
>      |                     |                     |                     |
>      |                     |                     |                     |
>      | SUBSCRIBE dialog    |                     |                     |
>      |-------------------->|                     |                     |
>      | 200 OK              |                     |                     |
>      |<--------------------|                     |                     |
>      |                     |                     |                     |
>      | SUBSCRIBE dialog    |                     |                     |
>      |<--------------------|                     |                     |
>      | 200 OK              |                     |                     |
>      |-------------------->|                     |                     |
>      |                     |                     |                     |
>      |                     |                     |                     |
> The scenario starts with an audio call from Bob to Alice
>      |                     |                     |                     |
>      |                     |                     | INVITE Alice [Audio]|
>      |                     |                     |<--------------------|
>      |                     | INVITE Alice [Audio]|                     |
>      |                     |<--------------------|                     |
>      | INVITE Alice [Audio]|                     |                     |
>      |<------------------------------------------|                     |
>      |                     |                     |                     |
> Let's assume that Alice used her PC to instruct the phone to answer the call
>      |                     |                     |                     |
>      | REFER Refer-To: urn:sip-action:call:answer;transducer=speaker|headset
>      |-------------------->|                     |                     |
>      | 200 OK              |                     |                     |
>      |<--------------------|                     |                     |
>      |                     |                     |                     |
>      |                     | 200 OK [Audio]      |                     |
>      |                     |-------------------->|                     |
>      |                     |                     | 200 OK [Audio]      |
>      |                     |                     |-------------------->|
>      | CANCEL              |                     |                     |
>      |<------------------------------------------|                     |
>      |                     |                     |                     |
>      |                     |<---dialog1------------------------------->|
>      |                     |                     |                     |
>      |                     |<======audio==============================>|
>      |                     |                     |                     |
>      |                     |                     |                     |
>
> (*)
>
>      |                     |                     |                     |
>      |                     |                     |                     |
>      |                     |                     |                     |
> The following is a re-INVITE from the remote party (Bob) to add video to the existing audio call

>      |                     |                     |                     |
>      |                     |                     | reINVITE Alice [A/V]|
>      |                     |                     |<--------------------|
>      |                     | reINVITE Alice [A/V]|                     |
>      |                     |<--------------------|                     |
>      |                     | 100 Trying          |                     |
>      |                     |-------------------->|                     |
>      |                     |                     | 100 Trying          |
>      |                     |                     |-------------------->|
>      |                     |                     |                     |
> The Desk Phone cannot handle video, but it knows that the PC can handle video,
> so the Desk Phone initiates a new video INVITE to the PC.
> Alert-Info is used to control the alerting level.
>      |                     |                     |                     |
>      |                     |                     |                     |
> (#) | INVITE [Video]      |                     |                     |
>      |        Alert-Info: whatever               |                     |
>      |<--------------------|                     |                     |
>      | 180                 |                     |                     |
>      |-------------------->|                     |                     |
>      |                     |                     |                     |
> The user can answer the video call using his PC, which would result on
> 200 OK with video answer being sent to the phone.
> If the user chose to answer the incoming video call using his Desk Phone,
> the following REFER will be sent to the PC, before the 200 OK with the
> video answer is sent from the PC.
>      |                     |                     |                     |
>      | REFER Refer-To: urn:sip-action:call:answer                      |
>      |<--------------------|                     |                     |
>      | 200 OK              |                     |                     |
>      |-------------------->|                     |                     |
>      |                     |                     |                     |
>      | 200 OK [Video]      |                     |                     |
>      |-------------------->|                     |                     |
>      |                     |                     |                     |
>      |                     | 200 OK [A/V]        |                     |
>      |                     |-------------------->|                     |
>      |                     |                     | 200 OK [A/V]        |
>      |                     |                     |-------------------->|
>      |                     |                     |                     |
>      |<----dialog2-------->|<---dialog1------------------------------->|
>      |                     |                     |                     |
>      |                     |<======audio==============================>|
>      |<============================video==============================>|
>      |                     |                     |                     |
>      |                     |                     |                     |
>
>
>
> Now let's assume that Alice is the side that wants to add video to the
> existing audio call. The scenario continues after the (*) above.
>
> Alice can use her phone to add video to the existing audio call. The phone
> must present a UI to Alice to allow her to do just that. If Alice chooses
> to use her phone, the following REFER will be sent from the phone to the PC,
> which will instruct the PC to immediately send an INVITE with video offer
>
>      | REFER Refer-To: urn:sip-action:call:join;dialog=dialog1;media=video
>      |<--------------------|                     |                     |
>      | 200 OK              |                     |                     |
>      |-------------------->|                     |                     |
>      |                     |                     |                     |
>
> Alice can use her PC to add video to the existing audio call.
> The PC knows that there is an existing dialog between the Desk Phone
> and Bob and present this to Alice for her to choose if she wants to
> add video to the existing audio call or not. In this case Alice chose
> to add video to the existing audio call, so the PC sends the following
> request:
>      |                     |                     |                     |
>      |                     |                     |                     |
>      | INVITE with Join [Video]                  |                     |
>      |-------------------->|                     |                     |
>      | 100                 |                     |                     |
>      |<--------------------|                     |                     |
>      |                     | re-INVITE [A/V]     |                     |
>      |                     |-------------------->|                     |
>      |                     |                     | re-INVITE [A/V]     |
>      |                     |                     |-------------------->|
>      |                     |                     | 200 OK [A/V]        |
>      |                     | 200 OK [A/V]        |<--------------------|
>      |                     |<--------------------|                     |
>      | 200 OK [Video]      |                     |                     |
>      |<--------------------|                     |                     |
>      |                     |                     |                     |
>      |                     |                     |                     |
>      |<----dialog2-------->|<---dialog1------------------------------->|
>      |                     |                     |                     |
>      |                     |<======audio==============================>|
>      |<============================video==============================>|
>      |                     |                     |                     |
>      |                     |                     |                     |
>      |                     |                     |                     |
>
>
>
>