[GnomeMeeting-devel-list] Dbus' future in gnomemeeting
- From: Julien PUYDT <jpuydt free fr>
- To: GnomeMeeting development mailing list <gnomemeeting-devel-list gnome org>
- Subject: [GnomeMeeting-devel-list] Dbus' future in gnomemeeting
- Date: Sat, 08 Oct 2005 18:32:13 +0200
Hi,
======== FOREWORDS ========
this (too) long mail is divided in several parts :
- an account on the dbus interface as already live in gnomemeeting ;
- a discussion of what is good in this interface ;
- a discussion of what is bad in this interface ;
- ideas on improvements ;
- problems to solve.
Hopefully this will make it more readable.
======== CURRENT INTERFACE ========
Here is the current interface of gnomemeeting through dbus (taken
directly from src/dbus_component.h) :
/* Here is the description of DBUS messages understood by this component:
*
* Method calls:
* =============
*
* "ConnectTo"
* in : string (url)
* out : nil
* action: makes gnomemeeting call the given url
*
* "GetState"
* in : nil
* out : string (describes gnomemeeting's state: Standby, Calling, etc)
* action: none
*
* "Disconnect"
* in : string (call token)
* out : nil
* action: gnomemeeting disconnects the given call
*
* "GetCallsList"
* in : nil
* out : list of strings (call tokens, iterate to get them)
*
* "GetCallInfo"
* in : string (call token)
* out : string (name), string (url) and string (application)
* action: none
*
* Signals:
* ========
*
* "StateChanged"
* data: string (state)
* goal: gnomemeeting's state changed
*
* "AddCall"
* data: string (call token)
* goal: gnomemeeting manages a new call
* "DeleteCall"
* data: string (call token)
* goal: gnomemeeting closed a call (ie: the call token isn't
valid anymore!)
*
*/
======== CURRENT GOOD ========
This interface makes it easy to place calls, know how many calls are
active with whom and stop them (see the remote I wrote using this).
It is nice that Disconnect and GetCallInfo take a call token : this type
of construction scales to multi-call.
This simple interface should already have made it easy to place voip
calls from any program with a contact list : right click on a contact
and call...
======== CURRENT BAD ========
Here is why that interface is too simple :
- the ConnectTo method call should return a token, to allow tracking
what happens afterwards ;
- there's no way to get the local address... which makes it difficult to
receive calls ;
- the GetState method and StateChanged signal are about the whole
program's state... which is definitely not going to hold water in
multi-call ;
- it can only disconnect a token, which is restrictive.
======== IMPROVEMENT IDEAS ========
- call tokens should become the norm, and the interface should be about
using and knowing about them ;
- call tokens should have a broader range of states : calling,
established, transferred, paused, stopping or stopped come to mind ;
- a single CallInfo signal could be enough ; such a signal would always
come with a call token and its new state, but could also come with more
information ;
- AddCall and DeleteCall disappear : a call is created when a CallInfo
about it being somehow live comes, and dies when its new state is
"stopped" ;
- it should probably be possible to create/stop/pause/whatever media
streams within a call (useful for integration with an IM client for
example...) ;
- send the state as an integer.
======== PROBLEMS TO SOLVE ========
Most of the discussed improvement ideas can already be done quite easily
given gnomemeeting's current state ; but I'm not sure how easy it will
be to get direct access to calls internals...
======== LAST WORDS ========
Any insight on this ?
Snark
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]