[Ipcf] Telepathy Specification v0.10

Robert McQueen robert.mcqueen at collabora.co.uk
Mon Nov 14 02:37:06 EET 2005


In light of feedback recieved so far, I've made some changes to the
specification and released a new version, tagged in darcs and uploaded
to http://telepathy.freedesktop.org/spec.html. Obviously as time goes
on, making changes such as this one becomes inpractical, so I don't want
to make many more non-additive changes after this weel, so if people
could read it over and feed back that'd be cool.

Regards,
Rob

Changes since v0.9:

- temporarily represent some type signatures ('g') as strings ('s')
because of limitations in the D-Bus bindings to glib (sigh... patches
welcome)

- replace all state strings with integer constants, and flags with
integer bitfields, to ease comparison and avoid copying

- changes throughout to replace contact and room name strings with
integer handles (see Connection)

ConnectionManager:
- rework the Connect method so that the account is provided as a
parameter, rather than a string with unspecified magical significance

- replace GetParameters with GetMandatoryParameters,
GetOptionalParameters and GetParameterDefaults, so that .manager files
can be generated by interrogating Connection Manager instances, and
clients have an option of just doing this

- make notes on how Connection objects should be named, to avoid
collisions and provide a means of finding existing Connections on the bus

- add some Connection parameters which SIP uses, such as authentication
name, realm and type

Connection:
- replace the poorly-defined concept of string contact identifiers with
handles which can represent contacts, rooms, or lists on the server.
this solves large issues with client-side equivalence testing, reduces
bus, copying and comparison overhead

- RequestHandle takes a type (contact, room, list) and a string, and
returns an integer handle for that entity

- HoldHandle notifies the connection manager that a handle is stored
within the client and should not be freed, ReleaseHandle undoes this

- InspectHandle returns the type and a string representation of a handle

- added booleans to RequestChannel method and NewChannel signal to
indicate whether or not Mission Control should start a handler

- add a reason number to the Disconnected flag, and use this for
asynchronous error reporting, instead of the AuthenticationFailure or
EncryptionError error returns from Connect()

- clarify ListChannels documentation

- remove GetMatchRules in light of handles

Connection.Interface.Capabilities:
- much improved in light of request channel changes, capabilities are
now expressed only in terms of a channel type and a handle (or zero for
the connection itself)

- added methods for clients/mission control to advertise the available
channel handlers, for advertising capabilities on services

Connection.Interface.StreamedMedia:
- new interface to register the local SDP (available codecs etc) with
the connection manager, so that negotiation can be done for new calls
and such without necessarily blocking on a UI process

Channel.Type.RoomList:
- add keyword to report if a channel is invite-only

Channel.Type.StreamedMedia:
- rethink in light of the fact the local SDP is registered per
connection, so that negotiation is carried out on your behalf, and the
results are reported by signals, and can be inspected with a method call

Channel.Interface.Individual:
- removed, it was a hack for passing names into RequestChannel which is
now served by handles

Channel.Interface.Group:
- moved GetSelf to GetSelfHandle on Channel itself



More information about the Ipcf mailing list