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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
An interface on connections to support protocols which allows users to subscribe to the client types of their contacts.
One can connect to instant messaging networks on a huge variety of devices, from PCs, to phones to consoles. It can be useful for users to know what kind of device a contact is using so that he or she can decide not to send that big file or start a video chat. This interface exposes exactly this information for clients to display.
The client types are represented in strings, using the values documented by the XMPP registrar with some additional types added for other protocols. A contact can set one or more client types so this interface returns a list of strings to denote client types for a contact. The well-known client types to be used are:
If the empty list is given as the client types, this means that
details about the contact's client types are unknown. If there are
multiple resources of a contact online at one point in time, the
client types of the most available resource will be returned. In
other words, the returned client types are those for the resource whose
presence will be retreived using the
For example, if a contact has two resources:
then the methods in this interface will return an array (with
one element: "phone") as the client types because that is the more
available resource. If at some later time the contact's phone's presence
changes to "away", the
The same mapping that would be returned by