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

From: "Worley, Dale R (Dale)" <[email-masked]>
Date: Tue, 7 Jun 2011 11:56:06 -0400

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

---

From: "Shekh-Yusef, Rifaat (Rifaat)" <[email-masked]>
Date: Fri, 10 Jun 2011 09:52:46 -0400

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); [email-masked]
> 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

---

From: "Worley, Dale R (Dale)" <[email-masked]>
Date: Fri, 17 Jun 2011 16:34:49 -0400

I like the general idea of this, but I'm not fond of the details.

urn:invoke:call:initiate;media=video;target=bob@whatever
seems to mean, "Initiate a call to bob@whatever, adding me as a 3rd-party origin for video".

But I don't see the need for the "media=video" part of the URN, as the controller
will have the opportunity to edit my SDP when it receives it before passing it on.

But the URN urn:invoke:call:initiate;target=bob@whatever would seem to tell
the UAS to initiate a call to bob@whatever, without including the UAC as a 3pcc participant.

urn:invoke:call:initiate;media=video
seems to mean, "Initiate a call to me, offering me your video resources."

But again, there seems to be no reason to specify which media are desired, as the UAC
can reject any offered streams that it doesn't like.

I think we want to avoid having to specify media types in the URNs whenever possible, as they
will be multiplying over time.  How would one specify, "Offer me your audio and text resources?"

Dale

---

From: "Shekh-Yusef, Rifaat (Rifaat)" <[email-masked]>
Date: Sat, 18 Jun 2011 09:44:07 -0400

Hi Dale,

Good point.
I am fine with your proposal of not specifying the media type in a URN.

Regards,
 Rifaat

________________________________________
From: Worley, Dale R (Dale)
Sent: Friday, June 17, 2011 4:34 PM
To: Shekh-Yusef, Rifaat (Rifaat); [email-masked]
Subject: RE: [splices] Initiate an A/V Call Using Two Separate Devices proposal

Dale

---

From: Salvatore Loreto <[email-masked]>
Date: Sun, 19 Jun 2011 16:12:44 +0300

while I agree with Dale that for the specific URN (i.e.: 
urn:invoke:call:initiate;)
used in the example does not make sense specifying the media type,
I am not so sure that not specifying the media type in a URN is the 
right thing to do in general

cheers
/Sal

On 6/18/11 4:44 PM, Shekh-Yusef, Rifaat (Rifaat) wrote:
> _______________________________________________
> splices mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/splices