Re: [splices] Initiate an A/V Call Using Two Separate Devices proposal

"Shekh-Yusef, Rifaat (Rifaat)" <rifatyu@avaya.com> Fri, 10 June 2011 13:53 UTC

Return-Path: <rifatyu@avaya.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 3432A11E8135 for <splices@ietfa.amsl.com>; Fri, 10 Jun 2011 06:53:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.799
X-Spam-Level:
X-Spam-Status: No, score=-2.799 tagged_above=-999 required=5 tests=[AWL=-0.200, BAYES_00=-2.599]
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 28g3eu6yUOmY for <splices@ietfa.amsl.com>; Fri, 10 Jun 2011 06:53:10 -0700 (PDT)
Received: from p-us1-iereast-outbound.us1.avaya.com (p-us1-iereast-outbound.us1.avaya.com [135.11.29.13]) by ietfa.amsl.com (Postfix) with ESMTP id 0D99B11E817F for <splices@ietf.org>; Fri, 10 Jun 2011 06:53:09 -0700 (PDT)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AiwBACkh8k2HCzI1/2dsb2JhbABSl1GOdHeqNQKbQYYjBJYWiwg
X-IronPort-AV: E=Sophos;i="4.65,347,1304308800"; d="scan'208";a="192814480"
Received: from unknown (HELO p-us1-erheast.us1.avaya.com) ([135.11.50.53]) by p-us1-iereast-outbound.us1.avaya.com with ESMTP; 10 Jun 2011 09:53:06 -0400
X-IronPort-AV: E=Sophos;i="4.65,347,1304308800"; d="scan'208";a="661705958"
Received: from unknown (HELO DC-US1HCEX4.global.avaya.com) ([135.11.52.35]) by p-us1-erheast-out.us1.avaya.com with ESMTP; 10 Jun 2011 09:53:05 -0400
Received: from DC-US1MBEX4.global.avaya.com ([169.254.1.192]) by DC-US1HCEX4.global.avaya.com ([135.11.52.35]) with mapi; Fri, 10 Jun 2011 09:53:05 -0400
From: "Shekh-Yusef, Rifaat (Rifaat)" <rifatyu@avaya.com>
To: "Worley, Dale R (Dale)" <dworley@avaya.com>, "splices@ietf.org" <splices@ietf.org>
Date: Fri, 10 Jun 2011 09:52:46 -0400
Thread-Topic: [splices] Initiate an A/V Call Using Two Separate Devices proposal
Thread-Index: AcwcA9ICWlHJ0iFSQrC3DgLgYMzGCQJJsIlIAJJeOSA=
Message-ID: <6369CB70BFD88942B9705AC1E639A33822CD81336C@DC-US1MBEX4.global.avaya.com>
References: <6369CB70BFD88942B9705AC1E639A33822CCE270ED@DC-US1MBEX4.global.avaya.com> <CD5674C3CD99574EBA7432465FC13C1B222907E9AD@DC-US1MBEX4.global.avaya.com>
In-Reply-To: <CD5674C3CD99574EBA7432465FC13C1B222907E9AD@DC-US1MBEX4.global.avaya.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [splices] Initiate an A/V 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: Fri, 10 Jun 2011 13:53:11 -0000

Dale,

Can you provide an example use case for these new actions you mentioned below?
Are these to replace or in addition to the ones we have been using so far?

For the second part of you comment below, take a look at the following flows.
The INVOKE method approach is flexible enough to allow any party to take the role of the Controller.

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              |                     |                     |
    |-------------------->|                     |                     |
    |                     |                     |                     |
    |                     |                     |                     |





Alice wants to use her PC to initiate an A/V call to Bob.
The PC instructs the phone to initiate an audio call, but does not provide a target, 
which indicates to the phone to send it to the PC.
When the PC gets the audio offer from the phone it sends an A/V offer to the remote 
party and when it gets the A/V answer it sends an audio answer to the phone.
    |                     |                     |                     |
    |                     |                     |                     |
    | INVOKE Action: urn:invoke:call:initiate;media=audio
    |-------------------->|                     |                     |
    | 200 OK              |                     |                     |
    |<--------------------|                     |                     |
    |                     |                     |                     |
    | INVITE [Audio]      |                     |                     |
    |<--------------------|                     |                     |
    |                     |                     |                     |
    | INVITE [A/V]        |                     |                     |
    |------------------------------------------>|                     |
    |                     |                     | INVITE [A/V]        |
    |                     |                     |-------------------->|
    |                     |                     | 180                 |
    | 180                 |                     |<--------------------|
    |<------------------------------------------|                     |
    | 180                 |                     |                     |
    |-------------------->|                     |                     |
    |                     |                     | 200 OK [A/V]        |
    | 200 OK [A/V]        |                     |<--------------------|
    |<------------------------------------------|                     |
    |                     |                     |                     |
    | 200 OK [Audio]      |                     |                     |
    |-------------------->|                     |                     |
    |                     |                     |                     |
    |                     |                     |                     |
    |<-------------------------dialog1------------------------------->|
    |<----dialog2-------->|                     |                     |
    |                     |                     |                     |
    |                     |<======audio==============================>|
    |<============================video==============================>|
    |                     |                     |                     |





Alice wants to use her phone to initiate an A/V call to Bob.
The phone knows it cannot handle video, but it know that the PC can. 


The phone sends an INVOKE request to instruct the PC to initiate a vidoe call. 
Because the Action does not have a target parameter, this indicates to the PC to send the INVITE to the phone.
    |                     |                     |                     |
    | INVOKE Action: urn:invoke:call:initiate;media=video
    |<--------------------|                     |                     |
    | 200 OK              |                     |                     |
    |-------------------->|                     |                     |
    |                     |                     |                     |
    | INVITE [Video]      |                     |                     |
    |-------------------->|                     |                     |
    | 100                 |                     |                     |
    |<--------------------|                     |                     |
    |                     | INVITE [A/V]        |                     |
    |                     |-------------------->|                     |
    |                     |                     | INVITE [A/V]        |
    |                     |                     |-------------------->|
    |                     |                     | 180                 |
    |                     | 180                 |<--------------------|
    |                     |<--------------------|                     |
    | 180                 |                     |                     |
    |<--------------------|                     | 200 OK [A/V]        |
    |                     | 200 OK [A/V]        |<--------------------|
    |                     |<--------------------|                     |
    | ACK [Video]         |                     |                     |
    |<--------------------|                     |                     |
    |                     | ACK                 |                     |
    |                     |-------------------->|                     |
    |                     |                     | ACK                 |
    |                     |                     |-------------------->|
    |                     |                     |                     |
    |<----dialog2-------->|<---dialog1------------------------------->|
    |                     |                     |                     |
    |                     |<======audio==============================>|
    |<============================video==============================>|
    |                     |                     |                     |



> -----Original Message-----
> From: Worley, Dale R (Dale)
> Sent: Tuesday, June 07, 2011 11:56 AM
> To: Shekh-Yusef, Rifaat (Rifaat); splices@ietf.org
> Subject: RE: [splices] Initiate an A/V Call Using Two Separate Devices
> proposal
> 
> These are interesting call flows, and seem to be based on the idea of having a
> 3PCC-style aggregation controller in the call.
> 
> I think that the INVOKE URNs could be made simpler and more systematic.  The
> problem with the ones shown is that they depend on particular media types
> implicitly triggering the desired behavior; I envision an ever-expanding list
> of URNs for specific circumstances.  Instead, how about constructing one URN
> whose purpose is to tell the target to initiate a call, but to specify one or
> more other UAs as "aggregation slaves":
> <urn:invoke:call:initiate;aggregate=[my URI];target=sip:bob@whatever>.  Or we
> may want to add a parameter meaning "only accept a particular media type from
> this aggregation slave":  <urn:invoke:call:initiate;aggregate=[my
> URI];media=video;target=sip:bob@whatever>.
> 
> Both of the given examples seem to have the same pattern:  The device from
> which the user is initiating the call isn't the one that is the aggregation
> controller.  Shouldn't there be one example where it is and one where it
> isn't?
> 
> Dale