[Telepathy] some questions for telepathy spec

Simon McVittie simon.mcvittie at collabora.co.uk
Thu Aug 23 01:28:49 PDT 2007


On Thu, 23 Aug 2007 at 11:39:48 +0800, Liangjing Zhao wrote:
> Another question:
> If I want to register a new account in a service, which dbus interface &
> methods should I invoked?

If it's even possible: you check that the allowed connection manager parameters
include a boolean called "register", call RequestConnection() with
register=TRUE in the parameters, then call Connect() on that connection.
Registration won't be attempted until you call Connect.

However, note that:

* on most protocols (currently all except XMPP, I think) it's not possible to
  register an account in-band, so the "register" parameter is not
  allowed (you can tell whether it's allowed using GetParameters())

* on XMPP, setting register to TRUE won't work for all servers (notably,
  it doesn't work on Google Talk). If it works, some time after Connect is
  called you will receive the signal StatusChanged with status CONNECTED.
  If it fails, you'll receive StatusChanged with status DISCONNECTED
  and reason AUTHENTICATION_FAILED (I think that's the right error,
  anyway).

If register=TRUE isn't supported or doesn't work, then you can't
register an account via Telepathy and will have to tell the user to use
some other way to get an account (via a web page, usually).
Unfortunately, XMPP provides no way for the server to tell us "I support
in-band registration" or "I don't support in-band registration", so we
can't tell you in advance whether it will work.

RequestConnection and GetParameters are methods in the ConnectionManager
interface of the connection manager object. Connect is a method in the
Connection interface, and StatusChanged is a signal from that interface.

	Simon


More information about the Telepathy mailing list