This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
org.freedesktop.Telepathy.ChannelBundle.DRAFTorg.freedesktop.Telepathy.Channel.FUTUREorg.laptop.Telepathy.BuddyInfoorg.laptop.Telepathy.ActivityPropertiesorg.freedesktop.Telepathy.Channel.Type.FileTransfer.FUTUREorg.freedesktop.Telepathy.Connection.Interface.Gabble.Decloakorg.freedesktop.Telepathy.Connection.Interface.MailNotification.DRAFTorg.freedesktop.Telepathy.Connection.FUTUREorg.freedesktop.Telepathy.Gabble.Plugin.Gatewaysorg.freedesktop.Telepathy.Gabble.Plugin.Testorg.freedesktop.Telepathy.Call.Content.DRAFTorg.freedesktop.Telepathy.Call.Content.CodecOffer.DRAFTorg.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFTorg.freedesktop.Telepathy.Call.Stream.DRAFTorg.freedesktop.Telepathy.Call.Stream.Endpoint.DRAFTorg.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFTorg.freedesktop.Telepathy.Channel.Type.Call.DRAFTorg.freedesktop.Telepathy.Channel.Type.ServerAuthentication.DRAFTorg.freedesktop.Telepathy.Channel.Interface.SaslAuthentication.DRAFTThis interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
A group of related channels, which should all be dispatched to the same handler if possible.
Bundles currently have no functionality of their own, so clients SHOULD NOT examine this interface, but should instead treat the bundle object-path as an opaque identifier. If more functionality is added to bundles in future, this interface will be used for capability discovery.
The lifetime of a bundle is defined by its component channels - as long as one or more channels whose Bundle property is B exist, the bundle B will also exist.
Interface has no methods.
Interface has no signals.
Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
Interfaces − as (DBus_Interface[]), read-onlyThis interface is a staging area for future Channel functionality and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
This interface contains functionality which we intend to incorporate into the Channel interface in future. It should be considered to be conceptually part of the core Channel interface, but without API or ABI guarantees.
If we add new functionality to the Channel interface, libraries that use generated code (notably telepathy-glib) will have it as part of their ABI forever, meaning we can't make incompatible changes. By using this interface as a staging area for future Channel functionality, we can try out new properties, signals and methods as application-specific extensions, then merge them into the core Channel interface when we have enough implementation experience to declare them to be stable.
The name is by analogy to Python's __future__
pseudo-module.
Interface has no methods.
Interface has no signals.
Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
Bundle − o, read-onlyThe ChannelBundle to which this channel belongs.
A channel's Bundle property can never change.
Older connection managers might not have this property. Clients (particularly the channel dispatcher) SHOULD recover by considering each channel to be in a bundle containing only that channel, distinct from all other bundles, which has no additional interfaces.
Added in version 0.17.9. (in Channel.FUTURE pseudo-interface)
Implementations of this interface must also implement:
An interface on connections to associate OLPC buddy information with contacts, providing methods for the user to set their own information and retrieve information of contacts. The user is automatically notified when information of contacts that are in his 'subscribe' contact list change.
The following types and names are used to request and set information (except for activities):
Activities are represented by a struct containing:
Set the information of the local user for this connection.
This method may be called before Connect(), in which case the given properties will be advertised as soon as possible after connection (possibly immediately).
properties −
a{sv}org.freedesktop.Telepathy.Error.InvalidArgumentcontact −
uproperties −
a{sv}org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentactivities −
a(su) (Activity[])org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentid −
shandle −
uorg.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentcontact −
uactivities −
a(su) (Activity[])org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentactivity −
schannel −
uorg.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentcontact −
uactivity −
schannel −
uorg.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentcontact −
uproperties −
a{sv}contact −
uactivities −
a(su) (Activity[])contact −
uactivity −
schannel −
uInterface has no Telepathy properties.
Interface has no D-Bus core properties.
In bindings that need a separate name, arrays of Activity should be called Activity_List.
id −
sroom −
u (Room_Handle)Implementations of this interface must also implement:
An interface on connections to associate OLPC activity properties with rooms.
The following types and names are used to request and set properties:
room −
uproperties −
a{sv}org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentorg.freedesktop.Telepathy.Error.PermissionDeniedroom −
uproperties −
a{sv}org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentactivity_id −
sroom −
uorg.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.InvalidArgumentroom −
uproperties −
a{sv}Interface has no Telepathy properties.
Interface has no D-Bus core properties.
This interface is a staging area for future File Transfer Channel functionality and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
This interface contains functionality which we intend to incorporate into the File Transfer Channel interface in future. It should be considered to be conceptually part of the core File Transfer Channel interface, but without API or ABI guarantees.
If we add new functionality to the Channel interface, libraries that use generated code (notably telepathy-glib) will have it as part of their ABI forever, meaning we can't make incompatible changes. By using this interface as a staging area for future Channel functionality, we can try out new properties, signals and methods as application-specific extensions, then merge them into the core Channel interface when we have enough implementation experience to declare them to be stable.
The name is by analogy to Python's __future__
pseudo-module.
Interface has no methods.
Interface has no signals.
Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
FileCollection − s, read-onlyThe FileCollection to which this channel belongs.
A channel's FileCollection property can never change.
At least on GTalk and apparently also on iChat the user can send a set of files to a contact and that contact can then pick and choose which files to actually receive. The CM should emit all new FT channels belonging to one collection at the same time, UIs supporting this feature can then bundle all these channels together in some way and show a nice UI. UIs not supporting it will treat them as seperate transfers, which is not great but a reasonable fallback
Added in version 0.19.2. (in Channel.Type.FileTransfer.FUTURE pseudo-interface)
This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
A simple D-Bus API for XEP-0276 Temporary Presence Sharing. See the XEP for more details.Added in version Gabble 0.9.4. (Gabble-specific)
Contact −
u (Contact_Handle)Full −
bContact −
u (Contact_Handle)Reason −
sDecloaked −
bInterface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
DecloakAutomatically − b, read/writeIf true, the connection manager will automatically disclose the local user's capabilities (and hence the fact that they are online, but no further presence information) on request from any remote XMPP user.
This is necessary to allow incoming calls from arbitrary users.
This property SHOULD also be available as a connection manager parameter, with the DBus_Property flag. The default SHOULD be false since this constitutes a deliberate presence leak.
This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
An interface to support receiving notifications about a e-mail account associated with this connection.
In protocols where this is possible, this interface also allows the connection manager to provide the necessary information for clients to open a web-based mail client without having to re-authenticate.
To use this interface, a client MUST first subscribe using the Subscribe method. The subscription mechanic aims at reducing network traffic and memory footprint in the situation where nobody is currently interesting in provided information. When done with this interface, clients SHOULD call Unsubscribe to release resources in the CM.
Protocols have various different levels of Mail Notification support. To describe the level of support, the interface provides a property called MailNotificationFlags. Not all combinations are valid; protocols can be divided into four categories as follows.
Connections to the most capable protocols, such as Google's XMPP Mail Notification extension, have the Supports_Unread_Mails flag (this implies that they must also have Supports_Unread_Mail_Count, but not Emits_Mails_Received). On these connections, clients requiring change notification MUST monitor the UnreadMailsChanged signal, and either recover the initial state from the UnreadMails property (if they require details other than the number of mails) or the UnreadMailCount property (if they are only interested in the number of unread mails). The MailsReceived signal is never emitted on these connections, so clients that will display a short-term notification for each new mail MUST do so in response to emission of the UnreadMailsChanged signal.
The most common situation, seen in protocols like MSN and Yahoo, is that the number of unread mails is provided and kept up-to-date, and a separate notification is emitted with some details of each new mail. This is a combination of the following two features, and clients SHOULD implement one or both as appropriate for their requirements.
On protocols that have the Emits_Mails_Received flag (which implies that they do not have Supports_Unread_Mails), the CM does not keep track of any mails; it simply emits a notification whenever new mail arrives. Those events may be used for short term display (like a notification popup) to inform the user. No protocol is known to support only this feature, but it is useful for integration with libraries that that do not implement tracking of the number of mails. Clients requiring these notifications MUST monitor the MailsReceived signal on any connections with this flag.
On protocols that have the Supports_Unread_Mail_Count flag but not the Supports_Unread_Mails flag, clients cannot display complete details of unread email, but can display an up-to-date count of the number of unread mails. To do this, they must monitor the UnreadMailsChanged signal, and retrieve the initial state from the UnreadMailCount property.
Orthogonal features described by the MailNotificationFlags property include the RequestSomethingURL methods, which are used to obtain URLs allowing clients to open a webmail client. Connections SHOULD support as many of these methods as possible.
Added in version 0.19.1. (as draft 1)
org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.NotImplementedorg.freedesktop.Telepathy.Error.NotAvailableorg.freedesktop.Telepathy.Error.NotImplementedURL −
(sua(ss)) (Mail_URL)org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.NetworkErrororg.freedesktop.Telepathy.Error.NotImplementedURL −
(sua(ss)) (Mail_URL)org.freedesktop.Telepathy.Error.Disconnectedorg.freedesktop.Telepathy.Error.NetworkErrororg.freedesktop.Telepathy.Error.NotImplementedorg.freedesktop.Telepathy.Error.InvalidArgumentEmitted when UnreadMails or UnreadMailCount have changed. It MUST NOT be emited if Supports_Unread_Mail_Count flag is not set in MailNotificationFlags.
Mails_Added and Mails_Removed MUST be empty if the Supports_Unread_Mails flag is not set.
Count −
uMails_Added −
aa{sv} (Mail[])A list of Mail that are being added or updated in UnreadMails.
Mails may be updated when the URL information (URL and POST data) have changed, or senders were added or removed from an e-mail thread.
If the Supports_Unread_Mails flag is not set, this list MUST be empty, even if Count has increased.
Mails_Removed −
asInterface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
MailNotificationFlags − u (Mail_Notification_Flags), read-onlyUnreadMailCount − u, read-onlyThe number of unread messages in the Inbox. Change notification is via UnreadMailsChanged.
This property is only useful if Supports_Unread_Mail_Count is set in the MailNotificationFlags; otherwise, it MUST be zero.
If Thread_Based appears in the MailNotificationFlags, this property counts the number of threads, not the number of mails.
Note that this count MAY be bigger than the number of items in UnreadMails. See UnreadMails for more details.
UnreadMails − aa{sv} (Mail[]), read-onlyMailAddress − s, read-onlyHTTP_Method_Get = 0HTTP_Method_Post = 1Mail_Notification_Flag_Supports_Unread_Mail_Count = 1Mail_Notification_Flag_Supports_Unread_Mails = 2Mail_Notification_Flag_Emits_Mails_Received = 4Mail_Notification_Flag_Supports_Request_Inbox_URL = 8Mail_Notification_Flag_Supports_Request_Mail_URL = 16This Connection can provide a URL (with optional POST data) to open a specific mail in a web-based client, via the RequestMailURL method. This feature is not useful unless either Emits_Mails_Received or Supports_Unread_Mails is set.
If this flag is not set, clients SHOULD fall back to using RequestInboxURL if available.
Mail_Notification_Flag_Thread_Based = 32Each Mail represents a thread of e-mails, which MAY have more than one sender.
Google Talk notifies users about new mail in terms of unread threads, rather than unread e-mails.
A pair (key, value) representing POST data compatible with the application/x-www-form-urlencoded MIME type. The strings MUST be valid UTF-8 strings, and the characters used in the key MUST obey the requirements of the HTML CDATA type. The value MUST NOT be encoded with HTML entities.
For example, if the POST data should contain a key "less-than" with value "<", and a key "percent" with value "%", this should be represented as two HTTP_Post_Data structures, ("less-than", "<") and ("percent", "%"), resulting in a POST request whose request body is "less-than=<&percent=%25". If a client passes this to a browser by writing it into an HTML form, it could do so by representing it as:
<input type="hidden" name="less-than"><</input>
<input type="hidden" name="percent">%</input>
This data can be used to generate a HTML file that will automatically load the URL with appropriate POST data, in which case the client MUST convert any characters that are special within HTML into HTML entities. Alternatively, it can be used in an API that will instruct the browser how to load the URL (like the Netscape Plug-in API), in which case the client MUST escape characters that are reserved in URLs, if appropriate for that API.
An array of pairs is used instead of a map from keys to values, because it's valid to repeat keys in both HTML and x-www-form-urlencoded data.
In bindings that need a separate name, arrays of HTTP_Post_Data should be called HTTP_Post_Data_List.
Key −
sValue −
sIn bindings that need a separate name, arrays of Mail_Address should be called Mail_Address_List.
Name −
sAddress −
sA structure containing the required information to open a web-based e-mail UI, without needing re-authentication (if possible).
Because the URL and POST data frequently contain short-lived credential tokens, a new URL should be requested (by calling one of the methods that returns a Mail_URL) for each visit to the web-based UI, and the URL should be visited soon after it is returned.
Arrays of Mail_URL don't generally make sense.
URL −
sMethod −
u (HTTP_Method)Post_Data −
a(ss) (HTTP_Post_Data[])In bindings that need a separate name, arrays of Mail should be called Mail_List.
Key −
sValue −
vThis interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
Request an object with a particular interface providing additional connection-specific functionality, together with its immutable properties. These will often be implemented by plug-ins to the connection managers; for example, support for an XMPP XEP for which no generic Telepathy interface exists might be implemented by a Gabble plugin exposing a sidecar with a particular interface.
This method may be called at any point during the lifetime of a connection, even before its Connection_Status changes to Connected. It MAY take a long time to return—perhaps it needs to wait for a connection to be established and for all the services supported by the server to be discovered before determining whether necessary server-side support is available—so callers SHOULD override the default method timeout (25 seconds) with a much higher value (perhaps even MAX_INT32, meaning “no timeout” in recent versions of libdbus).
There is an implicit assumption that any connection manager plugin will only want to export one “primary” object per feature it implements, since there is a one-to-one mapping between interface and object. This is reasonable since Sidecars are (intended to be) analogous to extra interfaces on the connection, providing once-per-connection shared functionality; it also makes client code straightforward (look up the interface you care about in a dictionary, build a proxy object from the value). More “plural” plugins are likely to want to implement new types of Channel instead.
Added in version 0.19.UNRELEASED.
Main_Interface −
s (DBus_Interface)Path −
oProperties −
a{sv} (Qualified_Property_Value_Map)Interface has no signals.
Interface has no Telepathy properties.
Interface has no D-Bus core properties.
A sidecar interface to register with XEP-0100 gateways.
Register with a gateway, as per XEP-0100 §4.1. This method does not allow for all the parameters that gateways can potentially have, and indeed doesn't even allow the required or allowed parameters to be discovered, but it should work in practice for nearly all gateways to other IM protocols.
Username and password are enough information to sign in to many IM protocols, and this method has a high "return on investment" in terms of being easy to implement and easy to write UI for.
Gateway −
sThe gateway (XMPP component) with which to register, e.g. "sip-transport.example.com".
Username −
sThe username with which to register, in whatever format is required by the specified gateway; for instance, this might be a number, the username part of a SIP URI, a complete SIP URI, etc.
Password −
sThe password with which to register.
org.freedesktop.Telepathy.Error.NetworkErrororg.freedesktop.Telepathy.Error.NotAvailableorg.freedesktop.Telepathy.Error.NotImplementedorg.freedesktop.Telepathy.Error.PermissionDeniedInterface has no signals.
Interface has no Telepathy properties.
Interface has no D-Bus core properties.
A sidecar interface implemented by a plugin used by the test suite.
Interface has no methods.
Interface has no signals.
Interface has no Telepathy properties.
Interface has no D-Bus core properties.
This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
This object represents one Content inside a Call. For example in an audio/video call there would be one audio and one video content. Each content has one or more Stream.DRAFT objects which represent the actual transport to one or more contacts.Added in version 0.19.0. (draft 1)
Interface has no methods.
Emitted when a stream is added to a call
Stream −
oEmitted when a stream is added to a call
Stream −
oInterface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
Name − s, read-onlyThe name of the content. [FIXME: rationale?]
Type − u (Media_Stream_Type), read-onlyThe media type of this content
Creator − u (Contact_Handle), read-onlyThe creator of this content
Disposition − u (Call_Content_Disposition), read-onlyStreams − ao, read-onlyThe list of Stream.DRAFT objects that exist in this content.
In a conference call multiple parties can share one media content (say, audio), but the streaming of that media can either be shared or separate. For example, in a multicast conference all contacts would share one stream, while in a Muji conference there would be a stream for each participant.
Change notification is via StreamAdded and StreamRemoved.
Call_Content_Disposition_None = 0Call_Content_Disposition_Early_Media = 1Call_Content_Disposition_Initial = 2The content was initially part of the call. When Accept is called on the channel, all streams of this content where the self-handle's sending state in Senders is Sending_State_Pending_Send will be moved to Sending_State_Sending as if SetSending(TRUE) had been called.
This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
This object represents an offer of a Codec payload mapping. FIXME add Accept and Reject signals ?Added in version 0.19.0. (draft 1)
Codecs −
a(usuua{ss}) (Codec[])Interface has no signals.
Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
RemoteContactCodecMap − a{ua(usuua{ss})} (Contact_Codec_Map), read-onlyThis interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
Interface to use by a software implementation of media streaming. FIXME: How should the streaming implementation know when it is its turn to set the codecs.Added in version 0.19.0. (draft 1)
Codecs −
a(usuua{ss}) (Codec[])Emitted when the codecs in use change.
As well as acting as change notification for the
ContactCodecMap, emission of this
signal implies that the CodecOffer
property has changed to ('/', {}).
Updated_Codecs −
a{ua(usuua{ss})} (Contact_Codec_Map)Removed_Contacts −
au (Contact_Handle[])Emitted when a new CodecOffer.DRAFT appears. The streaming implementation MUST respond by calling the Accept or Reject method on the codec offer object.
Emission of this signal indicates that the
CodecOffer property has changed to
(Offer, Codecs).
Offer −
oCodecs −
a{ua(usuua{ss})} (Contact_Codec_Map)The CodecOffer.DRAFT.RemoteContactCodecMap property of the codec offer.
Having the RemoteContactCodecMap property here saves a D-Bus round-trip - it shouldn't be necessary to get the property from the CodecOffer object, in practice.
Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
ContactCodecMap − a{ua(usuua{ss})} (Contact_Codec_Map), read-onlyCodecOffer − (oa{ua(usuua{ss})}) (Codec_Offering), read-onlyThe object path to the current CodecOffer.DRAFT object, and its CodecOffer.DRAFT.RemoteContactCodecMap property. If the object path is "/" then there isn't an outstanding codec offer, and the mapping MUST be empty.
Having the RemoteContactCodecMap property here saves a D-Bus round-trip - it shouldn't be necessary to get the property from the CodecOffer object, in practice.
Change notification is via NewCodecOffer (which replaces the value of this property with a new codec offer), and CodecsChanged (which implies that there is no longer any active codec offer).
In bindings that need a separate name, arrays of Codec should be called Codec_List.
Identifier −
uName −
sClockrate −
uChannels −
uParameters −
a{ss}Arrays of Codec_Offering don't generally make sense.
Codec_Offer −
oRemote_Contact_Codec_Map −
a{ua(usuua{ss})} (Contact_Codec_Map)Handle −
u (Contact_Handle)Codecs −
a(usuua{ss}) (Codec[])This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
One stream inside a content FIXME, direction should be a mapping of contact -> (bool)sending ?Added in version 0.19.0. (draft 1)
Send −
bIf true, the local user's sending state should change to Sending, if it isn't already.
If false, the local user's sending state should change to None, if it isn't already.
org.freedesktop.Telepathy.Error.NotImplementedContact −
u (Contact_Handle)Contact from which sending is requested
Receive −
bIf true, request that the given contact starts to send media. If false, request that the given contact stops sending media.
org.freedesktop.Telepathy.Error.NotImplementedUpdates −
a{uu} (Contact_Sending_State_Map)Removed −
au (Contact_Handle[])Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
Senders − a{uu} (Contact_Sending_State_Map), read-onlyA map from contacts to their sending state.
The local user's handle in this map (the Group.SelfHandle if the channel implements Group, or the Connection.SelfHandle otherwise) indicates whether the local user is sending media. Media sent on this stream should be assumed to be received, directly or indirectly, by every other contact in the Senders mapping. Sending_State_Pending_Send indicates that another contact has asked the local user to send media.
Other contacts' handles in this map indicate whether they are sending media to the contacts in this stream. Sending_State_Pending_Send indicates contacts who are not sending but have been asked to do so.
Sending_State_None = 0Sending_State_Pending_Send = 1Sending_State_Sending = 2Contact −
u (Contact_Handle)Sending −
u (Sending_State)This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
This object represents a set of candidates of one end-point.Added in version 0.19.0. (draft 1)
Candidate −
(usqa{sv}) (Candidate)State −
u (Media_Stream_State)Username −
sPassword −
sCandidates −
a(usqa{sv}) (Candidate[])Candidate −
(usqa{sv}) (Candidate)state −
u (Media_Stream_State)Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
RemoteCredentials − (ss) (Stream_Credentials), read-onlyRemoteCandidates − a(usqa{sv}) (Candidate[]), read-onlySelectedCandidate − (usqa{sv}) (Candidate), read-onlyStreamState − u (Media_Stream_State), read-onlyTransport − u (Stream_Transport_Type), read-onlyThis interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
[FIXME]Added in version 0.19.0. (draft 1)
candidates −
a(usqa{sv}) (Candidate[])Candidates −
a(usqa{sv}) (Candidate[])Username −
sPassword −
sSignals that the initial information about STUN and Relay servers has been retrieved, i.e. the RetrievedServerInfo property is now true.
EndpointsAdded −
aoEndpointsRemoved −
aoInterface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
Transport − u (Stream_Transport_Type), read-onlyLocalCandidates − a(usqa{sv}) (Candidate[]), read-onlyLocalCredentials − (ss) (Stream_Credentials), read-onlySTUNServers − a(sq) (Socket_Address_IP[]), read-onlyRelayInfo − aa{sv} (String_Variant_Map[]), read-onlyA list of mappings describing TURN or Google relay servers available for the client to use in its candidate gathering, as determined from the protocol. Map keys are:
ip - stype - sEither udp for UDP (UDP MUST be assumed if this
key is omitted), tcp for TCP, or
tls.
The precise meaning of this key depends on the
Transport property: if
Transport is ICE, tls means
TLS over TCP as referenced by ICE draft 19, and if
Transport is GTalk_P2P, tls means
a fake SSL session over TCP as implemented by libjingle.
port - qusername - spassword - scomponent - uAn equivalent of the gtalk-p2p-relay-token property on MediaSignalling channels is not included here. The connection manager should be responsible for making the necessary HTTP requests to turn the token into a username and password.
The type of relay server that this represents depends on the value of the Transport property. If Transport is ICE, this is a TURN server; if Transport is GTalk_P2P, this is a Google relay server; otherwise, the meaning of RelayInfo is undefined.
If relaying is not possible for this stream, the list is empty.
RetrievedServerInfo − b, read-onlyTrue if the initial information about STUN servers and Relay servers has been retrieved. Change notification is via the ServerInfoRetrieved signal.
Streaming implementations that can't cope with STUN and relay servers being added later SHOULD wait for this property to become true before proceeding.
Endpoints − ao, read-onlyStream_Transport_Type_Raw_UDP = 0Stream_Transport_Type_ICE = 1Stream_Transport_Type_GTalk_P2P = 2Stream_Transport_Type_WLM_8_5 = 3Stream_Transport_Type_WLM_2009 = 4In bindings that need a separate name, arrays of Candidate should be called Candidate_List.
Component −
uIP −
sPort −
qInfo −
a{sv} (Candidate_Info)Arrays of Stream_Credentials don't generally make sense.
Username −
sPassword −
sKey −
sValue −
vThis interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
A channel type for making audio and video calls.
A Call channel can have one or more Content.DRAFT objects, which represent the actual Media that forms the Call (e.g. an audio content and a video content).
Added in version 0.19.0. (draft 1)
Indicate that the local user has been alerted about the incoming call.
This method is only useful if the channel's Requested property is false, and the CallState is Call_State_Pending_Initiator. While this is the case, this method SHOULD change the CallFlags to include Call_Flag_Ringing, and notify the remote contact that the local user has been alerted (if the protocol implements this); repeated calls to this method SHOULD succeed, but have no further effect.
In all other states, this method SHOULD fail with the error NotAvailable.
org.freedesktop.Telepathy.Error.InvalidArgumentorg.freedesktop.Telepathy.Error.NotAvailableFor incoming calls in state Call_State_Pending_Receiver, accept the incoming call; this changes the CallState to Call_State_Accepted.
For outgoing calls in state Call_State_Pending_Initiator, actually call the remote contact; this changes the CallState to Call_State_Pending_Receiver.
Otherwise, this method SHOULD fail with the error NotAvailable.
This method should be called exactly once per Call, by whatever client (user interface) is handling the channel.
When this method is called, for each Content.DRAFT whose Disposition is Call_Content_Disposition_Initial, any streams where the self-handle's sending state in Senders is Sending_State_Pending_Send will be moved to Sending_State_Sending as if SetSending(TRUE) had been called.
org.freedesktop.Telepathy.Error.NotAvailableReason −
u (Call_State_Change_Reason)Detailed_Hangup_Reason −
s (DBus_Error_Name)Message −
sorg.freedesktop.Telepathy.Error.NotAvailableContent_Name −
sContent_Type −
u (Media_Stream_Type)Content −
oorg.freedesktop.Telepathy.Error.InvalidArgumentorg.freedesktop.Telepathy.Error.NotImplementedEmitted when a new Content.DRAFT is added to the call.
Content −
oContent_Type −
u (Media_Stream_Type)Emitted when a Content.DRAFT is removed from the call.
Content −
oEmitted when the state of the call as a whole changes.
This signal is emitted for any change in the properties corresponding to its arguments, even if the other properties referenced remain unchanged.
Call_State −
u (Call_State)Call_Flags −
u (Call_Flags)Call_State_Reason −
(uus)Call_State_Details −
a{sv}Flags_Changed −
a{uu} (Call_Member_Map)Removed −
au (Contact_Handle[])Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
Contents − ao, read-onlyThe list of Content.DRAFT objects that are part of this call. Change notification is via the ContentAdded and ContentRemoved signals.
CallStateDetails − a{sv}, read-onlyA map used to provide optional extensible details for the CallState, CallFlags and/or CallStateReason.
Well-known keys and their corresponding value types include:
CallState − u (Call_State), read-onlyThe current high-level state of this call. The CallFlags provide additional information, and the CallStateReason and CallStateDetails explain the reason for the current values for those properties.
Clients MAY consider unknown values in this property to be an error.
CallFlags − u (Call_Flags), read-onlyFlags representing the status of the call as a whole, providing more specific information than the CallState.
Clients are expected to ignore unknown flags in this property, without error.
CallStateReason − (uus) (Call_State_Reason), read-onlyThe reason for the last change to the CallState and/or CallFlags. The CallStateDetails MAY provide additional information.
HardwareStreaming − b, read-onlyIf this property is TRUE, all of the media streaming is done by some mechanism outside the scope of Telepathy.
A connection manager might be intended for a specialized hardware device, which will take care of the audio streaming (e.g. telepathy-yafono, which uses GSM hardware which does the actual audio streaming for the call).
If this is FALSE, the handler is responsible for doing the actual media streaming for at least some contents itself. Those contents will have the Media.DRAFT interface, to communicate the necessary information to a streaming implementation. Connection managers SHOULD operate like this, if possible.
Many connection managers (such as telepathy-gabble) only do the call signalling, and expect the client to do the actual streaming using something like Farsight, to improve latency and allow better UI integration.
CallMembers − a{uu} (Call_Member_Map), read-onlyInitialTransport − s, read-onlyIf set on a requested channel this indicates the transport that should be used for this call.
InitialAudio − b, read-onlyIf set to true in a channel request that will create a new channel, the connection manager should immediately attempt to establish an audio stream to the remote contact, making it unnecessary for the client to call AddContent.
If this property, or InitialVideo, is passed to EnsureChannel (as opposed to CreateChannel), the connection manager SHOULD ignore these properties when checking whether it can return an existing channel as suitable; these properties only become significant when the connection manager has decided to create a new channel.
If true on a requested channel, this indicates that the audio stream has already been requested and the client does not need to call RequestStreams, although it MAY still do so.
If true on an unrequested (incoming) channel, this indicates that the remote contact initially requested an audio stream; this does not imply that that audio stream is still active (as indicated by Contents).
This property is immutable (cannot change), and therefore SHOULD appear wherever immutable properties are reported, e.g. NewChannels signals.
This reduces D-Bus round trips.
Connection managers capable of signalling audio calls to contacts SHOULD include a channel class in RequestableChannelClasses with ChannelType Call.DRAFT and TargetHandleType = Contact in the fixed properties dictionary, and InitialAudio (and also InitialVideo, if applicable) in the allowed properties list. Clients wishing to discover whether a connection manager can signal audio and/or video calls SHOULD use this information.
Not all protocols support signalling video calls, and it would be possible (although unlikely) to have a protocol where only video, and not audio, could be signalled.
Connection managers that support the ContactCapabilities interface SHOULD represent the capabilities of receiving audio and/or video calls by including a channel class in a contact's capabilities with ChannelType = Call in the fixed properties dictionary, and InitialAudio and/or InitialVideo in the allowed properties list. Clients wishing to discover whether a particular contact is likely to be able to receive audio and/or video calls SHOULD use this information.
Not all clients support video calls, and it would also be possible (although unlikely) to have a client which could only stream video, not audio.
Clients that are willing to receive audio and/or video calls SHOULD include the following among their channel classes if calling UpdateCapabilities (clients of a ChannelDispatcher SHOULD instead arrange for the ChannelDispatcher to do this, by including the filters in their HandlerChannelFilter properties):
Connection managers for protocols with capability discovery, like XMPP, need this information to advertise the appropriate capabilities for their protocol.
InitialVideo − b, read-onlyThe same as InitialAudio, but for a video stream. This property is immutable (cannot change).
In particular, note that if this property is false, this does not imply that an active video stream has not been added, only that no video stream was active at the time the channel appeared.
This property is the correct way to discover whether connection managers, contacts etc. support video calls; it appears in capabilities structures in the same way as InitialAudio.
MutableContents − b, read-onlyIf True, a stream of a different content type can be added after the Channel has been requested
If this property is missing, clients SHOULD assume that it is false, and thus that the channel's streams cannot be changed once the call has started.
If this property isn't present in the "allowed" set in any of the Call entries contact capabilities, then user interfaces MAY choose to show a separate "call" option for each class of call.
For example, once an audio-only Google Talk call has started, it is not possible to add a video stream; both audio and video must be requested at the start of the call if video is desired. User interfaces may use this pseudo-capability as a hint to display separate "Audio call" and "Video call" buttons, rather than a single "Call" button with the option to add and remove video once the call has started for contacts without this flag.
This property is immutable, and therefore SHOULD be announced in NewChannels, etc.
The state of a call, as a whole.
The allowed transitions are:
Clients MAY consider unknown values from this enum to be an error - additional values will not be defined after the Call specification is declared to be stable.
Call_State_Unknown = 0Call_State_Pending_Initiator = 1Call_State_Pending_Receiver = 2Call_State_Accepted = 3Call_State_Ended = 4Call_State_Change_Reason_Unknown = 0Call_State_Change_Reason_User_Requested = 1The change was requested by the contact indicated by the Actor member of a Call_State_Reason struct.
If the Actor is the local user, the DBus_Reason SHOULD be the empty string.
If the Actor is a remote user, the DBus_Reason SHOULD be the empty string if the call was terminated normally, but MAY be a non-empty error name to indicate error-like call termination reasons (call rejected as busy, kicked from a conference by a moderator, etc.).
Call_Flag_Locally_Ringing = 1Call_Flag_Queued = 2Call_Flag_Locally_Held = 4Call_Flag_Forwarded = 8Call_Flag_In_Progress = 16Call_Flag_Clearing = 32A set of flags representing the status of a remote contact in a call.
It is protocol- and client-specific whether a particular contact will ever have a particular flag set on them, and Telepathy clients SHOULD NOT assume that a flag will ever be set.
180 Ringing in SIP, and its equivalent in XMPP, are optional informational messages, and implementations are not required to send them. The same applies to the messages used to indicate hold state.
Call_Member_Flag_Ringing = 1The remote contact's client has told us that the contact has been alerted about the call but has not responded.
This is a flag per member, not a flag for the call as a whole, because in Muji conference calls, you could invite someone and have their state be "ringing" for a while.
Call_Member_Flag_Held = 2The call member has put this call on hold.
This is a flag per member, not a flag for the call as a whole, because in conference calls, any member could put the conference on hold.
Arrays of Call_State_Reason don't generally make sense.
Actor −
u (Contact_Handle)Reason −
u (Call_State_Change_Reason)DBus_Reason −
s (DBus_Error_Name)A specific reason for the change, which may be a D-Bus error in the Telepathy namespace, a D-Bus error in any other namespace (for implementation-specific errors), or the empty string to indicate that the state change was not an error.
This SHOULD be an empty string for changes to any state other than Ended.
The errors Cancelled and Terminated SHOULD NOT be used here; an empty string SHOULD be used instead.
Those error names are used to indicate normal call termination by the local user or another user, respectively, in contexts where a D-Bus error name must appear.
In bindings that need a separate name, arrays of Call_Member_Map should be called Call_Member_Map_List.
key −
u (Handle)Flag −
u (Call_Member_Flags)This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
An interface for SASL authentication.Interface has no methods.
Interface has no signals.
Interface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
AuthenticationInformation − a{sv}, read-onlyAuthenticationMethod − u (Authentication_Type), read-onlyAuthentication_Type_Sasl = 0Authentication_Type_Captcha = 1In bindings that need a separate name, arrays of AuthDetails should be called AuthDetails_List.
Key −
sWell-known keys:
Value −
vThis interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Don't include it in libraries that care about compatibility.
Implementations of this interface must also implement:
A channel interface for SASL authentication.Mechanism −
sInitialData −
ayResponse_Data −
ayReason −
u (Abort_Reason)Debug_Message −
sStatus −
u (Sasl_Status)Reason −
s (DBus_Error_Name)DebugMessage −
sChallengeData −
ayInterface has no Telepathy properties.
Accessed using the org.freedesktop.DBus.Properties interface.
AvailableMechanisms − as, read-onlySecure − b, read-onlyCurrentChallenge − ay, read-onlyCurrentState − (uss) (Sasl_State), read-onlyAbort_Reason_Invalid_Challenge = 0Abort_Reason_User_Abort = 1Sasl_Status_Not_Started = 0Sasl_Status_In_Progress = 1Sasl_Status_Server_Succeeded = 2Sasl_Status_Client_Accepted = 3Sasl_Status_Succeeded = 4Sasl_Status_Server_Failed = 5Sasl_Status_Client_Failed = 6Arrays of Sasl_State don't generally make sense.
Status −
u (Sasl_Status)Reason −
s (DBus_Error_Name)DebugMessage −
sMedia_Stream_Type_Audio = 0Media_Stream_Type_Video = 1Media_Stream_State_Disconnected = 0Media_Stream_State_Connecting = 1Media_Stream_State_Connected = 2In bindings that need a separate name, arrays of Socket_Address_IP should be called Socket_Address_IP_List.
Address −
sPort −
qArrays of Socket_Address_IPv4 don't generally make sense.
Address −
sPort −
qArrays of Socket_Address_IPv6 don't generally make sense.
Address −
sPort −
qorg.freedesktop.Telepathy.ChannelBundle.DRAFTorg.freedesktop.Telepathy.Channel.FUTUREorg.laptop.Telepathy.BuddyInfoorg.laptop.Telepathy.ActivityPropertiesorg.freedesktop.Telepathy.Channel.Type.FileTransfer.FUTUREorg.freedesktop.Telepathy.Connection.Interface.Gabble.Decloakorg.freedesktop.Telepathy.Connection.Interface.MailNotification.DRAFTorg.freedesktop.Telepathy.Connection.FUTUREorg.freedesktop.Telepathy.Gabble.Plugin.Gatewaysorg.freedesktop.Telepathy.Gabble.Plugin.Testorg.freedesktop.Telepathy.Call.Content.DRAFTorg.freedesktop.Telepathy.Call.Content.CodecOffer.DRAFTorg.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFTorg.freedesktop.Telepathy.Call.Stream.DRAFTorg.freedesktop.Telepathy.Call.Stream.Endpoint.DRAFTorg.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFTorg.freedesktop.Telepathy.Channel.Type.Call.DRAFTorg.freedesktop.Telepathy.Channel.Type.ServerAuthentication.DRAFTorg.freedesktop.Telepathy.Channel.Interface.SaslAuthentication.DRAFTAbort_Reason
− uActivity
− ( s, u )
AuthDetails
− a{ s → v }
Authentication_Type
− uCall_Content_Disposition
− uCall_Flags
− uCall_Member_Flags
− uCall_Member_Map
− a{ u → u }
Call_State
− uCall_State_Change_Reason
− uCall_State_Reason
− ( u, u, s )
Candidate
− ( u, s, q, a{sv} )
Candidate_Info
− a{ s → v }
Channel_Class
− a{sv}Codec
− ( u, s, u, u, a{ss} )
Codec_Offering
− ( o, a{ua(usuua{ss})} )
Connection_Status
− uContact_Codec_Map
− a{ u → a(usuua{ss}) }
Contact_Handle
− uContact_Handle
− uContact_Info_Field
− (sasas)Contact_Sending_State_Map
− a{ u → u }
DBus_Error_Name
− sDBus_Interface
− sDBus_Qualified_Member
− sDBus_Tube_Member
− (us)DBus_Unique_Name
− sDBus_Well_Known_Name
− sHTTP_Method
− uHTTP_Post_Data
− ( s, s )
Handle
− uHandle_Type
− uHandler_Capability_Token
− sMail
− a{ s → v }
Mail_Address
− ( s, s )
Mail_Notification_Flags
− uMail_URL
− ( s, u, a(ss) )
Media_Stream_State
− uMedia_Stream_Type
− uQualified_Property_Value_Map
− a{sv}Requestable_Channel_Class
− (a{sv}as)Rich_Presence_Access_Control
− (uv)Rich_Presence_Access_Control_Type
− uRoom_Handle
− uSasl_State
− ( u, s, s )
Sasl_Status
− uSending_State
− uSocket_Access_Control
− uSocket_Address_IP
− ( s, q )
Socket_Address_IPv4
− ( s, q )
Socket_Address_IPv6
− ( s, q )
Socket_Address_Type
− uStream_Credentials
− ( s, s )
Stream_Transport_Type
− uString_String_Map
− a{ss}String_Variant_Map
− a{sv}Supported_Socket_Map
− a{uau}Unix_Timestamp
− uUnix_Timestamp64
− tVCard_Field
− sVCard_Type_Parameter
− s