[Gossip-dev] Use cases for media streaming

Jimen Ching jching at flex.com
Sat Sep 30 12:22:32 CEST 2006


Hi all,

I would like to start a discussion on the support of media streaming in 
Gossip.  My proposal for a Gossip API hit a road block because it wasn't 
clear what the use cases were for media streaming features.  I hope this 
email helps us better understand what our goals are.

Before the use cases are enumerated, I think we need to define some 
assumptions.  These assumptions will help us better understand the 
environment in which these use cases will reside.

1.  Gossip will detect audio sources, audio sinks, and video sources
that are available on the system for the user.  A video sink is assumed to 
always be available.
2.  Gossip will perform the above detection automatically.
3.  Gossip will dynamically update the UI with the results of the 
detection as they are made available.
4.  Gossip will determine the capability of the IM protocol to support 
media streaming.
5.  Gossip will only expose those capabilities that are available on the 
specific IM network.

In the following descriptions, the term 'user' will refer to the Gossip 
end-user (i.e. not the developer).

I.  Place a voice-only call (bi-directional).
 	a.  User selects a contact.
 	b.  Gossip presents a menu item to place a call.
 	c.  User selects menu item.
 	d.  Gossip presents a progress dialog with cancel/abort
 	    button.  An audible noise may be generated.
 	e1. The call is established and an indicator on the
 	    contact is shown.  The dialog is removed.
 	e2. User clicks cancel and Gossip shuts down the call.
 	    The dialog is removed.
 	f.  Gossip adds a menu item to terminate the call.
 	g.  User selects 'terminate call' menu item.
 	h.  Gossip terminates call.

II.  Receiving a voice-only call (bi-directional).
 	a.  Gossip notifies the user of an incoming voice call
 	    request.  This notification can use any mechanism.
 	    The mechanism should have options for the user to
 	    accept or reject the call.  The mechanism should
 	    also indicate which IM network and which contact is
 	    making the request.
 	b.  User accepts call request.  Notification mechanism
 	    is removed.
 	b1. Gossip shows an indicator on the contact.
 	b2. Gossip adds a menu item to terminate the call.
 	b3. User selects 'terminate call' menu item.
 	b4. Gossip terminates call.
 	c.  User rejects call request.  Notification mechanism
 	    is removed.

III.  Place a voice and video call (bi-directional).
 	Steps are same as 'Place a voice-only call'.

IV.  Place a receive-only video-only call.
 	Steps are same as 'Place a voice-only call'.

V.  Place a send-only video-only call.
 	a.  User activates this feature.  It is assumed that
 	    this feature allows any number of remote users to
 	    subscribe to this video stream.
 	b.  Gossip presents a selection of IM networks that
 	    support publication of video stream.
 	c.  User selects connected networks.
 	d.  Gossip establishes a video stream to each selected
 	    network.
 	e.  Gossip presents control to terminae video stream.
 	f.  Gossip notifies local user a remote user wants to
 	    subscribe to the video stream.  Options to accept
 	    or reject subscription is presented.
 	g.  User accepts request.
 	g1. Gossip indicates remote user is subscribed to
 	    video stream.
 	g2. User selects subscribed user and terminates its
 	    subscription.
 	h.  User selects 'terminate' control.
 	i.  Gossip ends publication of video stream.

VI.  Mute/Pause media stream.
 	a.  User selects mute/pause of media stream.
 	b.  Gossip mute/pause selected stream and direction.

Issues to consider:

1.  I'm not sure how to add directionality to an outgoing voice-only call. 
For incoming voice-only call, the accept response could include this 
option.

2.  I haven't checked whether V.g2 is possible.  I would assume any IM 
protocol that supports publishing a video stream would add such a feture.

3.  Can 'send-only video-only' calls be limited to specific contacts?  If 
no IM protocol has such a feature, I don't see the point in defining a use 
case for it.

Please comment...

--jc
-- 
Jimen Ching (WH6BRR)      jching at flex.com     wh6brr at uhm.ampr.org


More information about the Gossip-dev mailing list