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

Paul Kyzivat <pkyzivat@cisco.com> Mon, 02 May 2011 19:54 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 366BCE06B2 for <splices@ietfa.amsl.com>; Mon, 2 May 2011 12:54:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.493
X-Spam-Level:
X-Spam-Status: No, score=-110.493 tagged_above=-999 required=5 tests=[AWL=0.106, BAYES_00=-2.599, 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 cbGkmVYDJ6Xv for <splices@ietfa.amsl.com>; Mon, 2 May 2011 12:54:05 -0700 (PDT)
Received: from sj-iport-5.cisco.com (sj-iport-5.cisco.com [171.68.10.87]) by ietfa.amsl.com (Postfix) with ESMTP id 31FD0E0693 for <splices@ietf.org>; Mon, 2 May 2011 12:54:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=pkyzivat@cisco.com; l=8873; q=dns/txt; s=iport; t=1304366045; x=1305575645; h=message-id:date:from:mime-version:to:subject:references: in-reply-to:content-transfer-encoding; bh=AR2Uvt9wosHl9+USdDEY0F92cUOE1gheknvaaVQHXWg=; b=CPfdGtzy3pI21nAjE0Mo4oswwgAWmknSIBswYjvDlWAIOdoekX5AZO+5 FZ8Z6PlU0Kd1kXduwshOZTPKUPKx7hpT4H2zxAr9vncEJD+GzmD+3C9l7 +qO4L2bGAKUlNj/YUJDzsouAqBWHANq4rGCAFQqbsABxuyERDfjzKhzzw o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAHULv02tJXHA/2dsb2JhbACmDXeIcZxbnCqGAASOeYQZiiU
X-IronPort-AV: E=Sophos;i="4.64,304,1301875200"; d="scan'208";a="355294151"
Received: from rcdn-core2-5.cisco.com ([173.37.113.192]) by sj-iport-5.cisco.com with ESMTP; 02 May 2011 19:54:04 +0000
Received: from [161.44.174.124] (dhcp-161-44-174-124.cisco.com [161.44.174.124]) by rcdn-core2-5.cisco.com (8.14.3/8.14.3) with ESMTP id p42Js3ng001205 for <splices@ietf.org>; Mon, 2 May 2011 19:54:04 GMT
Message-ID: <4DBF0BDB.6080308@cisco.com>
Date: Mon, 02 May 2011 15:54:03 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10
MIME-Version: 1.0
To: splices@ietf.org
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> <BFB07BED-2EAC-4FAE-A213-841DB4261A87@magorcorp.com> <4DBEBC15.5050600@ericsson.com>
In-Reply-To: <4DBEBC15.5050600@ericsson.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
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: Mon, 02 May 2011 19:54:06 -0000

On 5/2/2011 10:13 AM, Salvatore Loreto wrote:
> I think it is a good step forward,
>
> the only comment I have
> it is that in order to call it a "loosely coupled" scenario we have
> still to define what happens
> if "Alice Desk phone" can not remain in the session for the entire
> session duration...
>
> as the charter defines:
>
> The objective of this working group is to develop a framework for
> disaggregated media in "loosely-coupled" scenarios, where no single
> device needs to remain in the session for its entire duration and no
> single device needs to act as a master.

Well, one obvious thing to do is, when Alice's desk phone needs to 
leave, it can do a transfer to get out, leaving Bob talking to the PC. 
(This may not be very satisfactory unless the PC can take over the 
audio.) And of course it isn't sufficient if the phone departs unexpectedly.

Another possibility is for one of Alice's devices to *attempt* to set up 
a "conference" with Bob's phone as the focus. That of course requires 
Alice to depend upon Bob's device to have the necessary capabilities. 
IMO a solution that *depends* on that is a bad solution. But it could be 
an optional alternative.

So, for instance, perhaps we start with a call flow such as has been 
presented, that doesn't depend on Bob to do anything special. Once that 
is up and running, if Alice's devices are concerned about their 
stability and want to delegate the coordination to Bob, one of them can 
initiate a call flow to transfer the focus responsibility to Bob. (It 
may take an interesting negotiation to decide which device is best 
suited to this.)

	Thanks,
	Paul

> /Sal
>
> On 5/2/11 3:45 PM, Peter Musgrave wrote:
>> Hi Rifaat,
>>
>> I think this works well. Thanks for re-stating this clearly.
>>
>> I see a couple of next steps here:
>> - how is in incoming call which has an initial A+V answered?
>> - how is an outgoing call which has an initial A+V audio created?
>> - if both ends are "loosely coupled" are there any optimizations or
>> shortcuts that seem worthwhile?
>>
>> I don't think there is anything too tricky about these - but they will
>> need to be worked through. I agree with Simon that it seems time to
>> start to capture this work in a draft.
>>
>> Regards,
>>
>> Peter Musgrave
>>
>> On 2011-05-01, at 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.
>>> | | | |
>>> | | 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==============================>|
>>> | | | |
>>> | | | |
>>> | | | |
>>>
>>>
>>>
>>> _______________________________________________
>>> splices mailing list
>>> splices@ietf.org
>>> https://www.ietf.org/mailman/listinfo/splices
>> _______________________________________________
>> splices mailing list
>> splices@ietf.org
>> https://www.ietf.org/mailman/listinfo/splices
> _______________________________________________
> splices mailing list
> splices@ietf.org
> https://www.ietf.org/mailman/listinfo/splices
>