# Gabble-specific extensions to the Telepathy interfaces

Copyright (C) 2007 Collabora Limited

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

## Interfaces

- `org.freedesktop.Telepathy.Connection.Interface.Addressing1`
- `org.laptop.Telepathy.BuddyInfo`
- `org.laptop.Telepathy.ActivityProperties`
- `org.freedesktop.Telepathy.Channel.Type.FileTransfer.FUTURE`
- `org.freedesktop.Telepathy.Connection.Interface.Gabble.Decloak`
- `org.freedesktop.Telepathy.Connection.FUTURE`
- `org.freedesktop.Telepathy.Gabble.Plugin.Console`
- `org.freedesktop.Telepathy.Gabble.Plugin.Gateways`
- `org.freedesktop.Telepathy.Gabble.Plugin.Test`

# org.freedesktop.Telepathy.Connection.Interface.Addressing1

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:

- `org.freedesktop.Telepathy.Connection`
- `org.freedesktop.Telepathy.Connection.Interface.Contacts`

This interface deals with the multiple address types that can refer to the same contact, such as vCard fields and URIs.

It can be used to retrieve contacts with a specific addresses through GetContactsByVCardField and GetContactsByURI, as well as defining the various addressing methods for a given contact through this interface's contact attributes.

Added in version 0.19.12. (as draft)

## Methods:

### GetContactsByVCardField ( s: Field, as: Addresses, as: Interfaces ) → a{su}, a{ua{sv}}

Request contacts and retrieve their attributes using a given field in their vCards.

The connection manager should record that these handles are in use by the client who invokes this method, and must not deallocate the handles until the client disconnects from the bus or calls the Connection.ReleaseHandles method.

#### Parameters

`Field` − `s`

  The vCard field of the addresses we are requesting. The field name SHOULD be in lower case. Supported fields can be found in AddressableVCardFields.

  The `url` vCard field MUST NOT appear here; see GetContactsByURI instead.

  In practice, protocols have a limited set of URI schemes that make sense to resolve as a contact.

`Addresses` − `as`
  The addresses to get contact handles for. The address types should match the given vCard field.
`Interfaces` − `as` (DBus_Interface[])

  A list of strings indicating which D-Bus interfaces the calling process is interested in. All supported attributes from these interfaces, whose values can be obtained without additional network activity, will be in the reply.

  Attributes from this interface and from org.freedesktop.Telepathy.Connection are always returned, and need not be requested explicitly.

  The behavior of this parameter is similar to the same parameter in Contacts.GetContactAttributes.

#### Returns

`Requested` − `a{su}` (Addressing_Normalization_Map)

  A mapping from requested vCard addresses to the corresponding contact handles.

  Requested addresses that are not valid or understood for this protocol MUST be omitted from the mapping.

`Attributes` − `a{ua{sv}}` (Contact_Attributes_Map)

  A dictionary mapping the contact handles to contact attributes. If any of the requested addresses are in fact invalid, they are simply omitted from this mapping. If contact attributes are not immediately known, the behaviour is defined by the interface; the attribute should either be omitted from the result or replaced with a default value.

  Requested addresses that are not valid or understood for this protocol MUST be omitted from the mapping.

  Each contact's attributes will always include at least the identifier that would be obtained by inspecting the handle (`org.freedesktop.Telepathy.Connection/contact-id`).

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)

### GetContactsByURI ( as: URIs, as: Interfaces ) → a{su}, a{ua{sv}}

Request contacts and retrieve their attributes using URI addresses.

The connection manager should record that these handles are in use by the client who invokes this method, and must not deallocate the handles until the client disconnects from the bus or calls the Connection.ReleaseHandles method.

#### Parameters

`URIs` − `as`
  The URI addresses to get contact handles for. Supported schemes can be found in AddressableURISchemes.
`Interfaces` − `as` (DBus_Interface[])

  A list of strings indicating which D-Bus interfaces the calling process is interested in. All supported attributes from these interfaces, whose values can be obtained without additional network activity, will be in the reply.

  Attributes from this interface and from org.freedesktop.Telepathy.Connection are always returned, and need not be requested explicitly.

  The behavior of this parameter is similar to the same parameter in Contacts.GetContactAttributes.

#### Returns

`Requested` − `a{su}` (Addressing_Normalization_Map)

  A mapping of requested URIs to the corresponding contact handles.

  Requested URIs that are not valid or understood for this protocol MUST be omitted from the mapping.

`Attributes` − `a{ua{sv}}` (Contact_Attributes_Map)

  A dictionary mapping the contact handles to contact attributes. If any of the requested addresses are in fact invalid, they are simply omitted from this mapping. If contact attributes are not immediately known, the behaviour is defined by the interface; the attribute should either be omitted from the result or replaced with a default value.

  Requested URIs that are not valid or understood for this protocol MUST be omitted from the mapping.

  Each contact's attributes will always include at least the identifier that would be obtained by inspecting the handle (`org.freedesktop.Telepathy.Connection/contact-id`).

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)

Interface has no signals.

Interface has no Telepathy properties.

Interface has no D-Bus core properties.

## Mapping types

### VCard_Field_Address_Map − a{ s: VCard_Field → s: Address }

A mapping of vCard fields and addresses that repreent the given contact.

#### Members

`VCard_Field` − `s`
  (undocumented)
`Address` − `s`
  (undocumented)

### Addressing_Normalization_Map − a{ s: Requested_String → u: Handle }

A map from URIs/vCard addresses to the corresponding handle.

#### Members

`Requested_String` − `s`
  The URI or vCard address that has been requested by GetContactsByVCardField or GetContactsByURI.
`Handle` − `u` (Contact_Handle)
  A nonzero handle.

# org.laptop.Telepathy.BuddyInfo

Implementations of this interface must also implement:

- `org.freedesktop.Telepathy.Connection`

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):

s:color
  The color name of the buddy. Format used is #RRGGBB,#RRGGBB (stroke,fill).
ay:key
  The public key of the buddy.
s:jid
  For link-local connections, the JID of the buddy's server account.

Activities are represented by a struct containing:

- the identifier of the activity
- the handle of the activity channel

## Methods:

### SetProperties ( a{sv}: properties ) → nothing

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).

#### Parameters

`properties` − `a{sv}`
  A dictionary mapping information names to the desired values. This replaces any existing buddy properties completely: any keys which were previously present, but are not present in this dictionary, are deleted.

#### Possible errors

`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

### GetProperties ( u: contact ) → a{sv}

Get the properties of a particular contact.

#### Parameters

`contact` − `u`
  An integer handle for the contact to request his properties for

#### Returns

`properties` − `a{sv}`
  A dictionary mapping information names to their values

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

### SetActivities ( a(su): activities ) → nothing

Set the activities of the local user for this connection.

#### Parameters

`activities` − `a(su)` (Activity[])
  An array of structs containing:
  - the identifier of the activity
  - the room handle of the activity channel

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

### AddActivity ( s: id, u: handle ) → nothing

Advertise an activity associated to a muc room
Once an activity shares itself, needs to be advertised if it's not private. SetActivities could be used for this but it would mean that the activity would need to call GetActivities then add itself.

#### Parameters

`id` − `s`
  An activity id
`handle` − `u`
  A room handle

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

### GetActivities ( u: contact ) → a(su)

Get the activities of a particular contact.

#### Parameters

`contact` − `u`
  An integer handle for the contact whose activities are to be returned

#### Returns

`activities` − `a(su)` (Activity[])
  An array of structs containing:
  - the identifier of the activity
  - the room handle of the activity channel

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

### SetCurrentActivity ( s: activity, u: channel ) → nothing

Set the current activity of the local user for this connection.

#### Parameters

`activity` − `s`
  The identifier of the activity, or the empty string if there is no current activity
`channel` − `u`
  The room handle of the activity channel, or 0 if there is no current activity

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

### GetCurrentActivity ( u: contact ) → s, u

Get the current activity of a particular contact.

#### Parameters

`contact` − `u`
  An integer handle for the contact whose current activity is to be returned

#### Returns

`activity` − `s`
  The identifier of the activity, or "" if there is no current activity
`channel` − `u`
  The room handle of the activity, or 0 if there is no current activity

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

## Signals:

### PropertiesChanged ( u: contact, a{sv}: properties )

Signal emitted when the properties of a contact from your 'subscribe' contact list are changed.

#### Parameters

`contact` − `u`
  An integer handle representing the contact
`properties` − `a{sv}`
  A dictionary mapping property names to their new values. All properties are included, not just those that have changed.

### ActivitiesChanged ( u: contact, a(su): activities )

Signal emitted when the activities of a contact from your 'subscribe' contact list are changed.

#### Parameters

`contact` − `u`
  An integer handle representing the contact
`activities` − `a(su)` (Activity[])
  An array of structs containing:
  - the identifier of the activity
  - the handle of the activity channel

### CurrentActivityChanged ( u: contact, s: activity, u: channel )

Signal emitted when the current activity of a contact from your 'subscribe' contact list is changed.

#### Parameters

`contact` − `u`
  An integer handle representing the contact
`activity` − `s`
  The identifier of the activity, or "" if there is no current activity
`channel` − `u`
  The room handle of the activity channel, or 0 if there is no current activity

Interface has no Telepathy properties.

Interface has no D-Bus core properties.

## Structure types

### Activity − ( s: id, u: room )

A struct containing: the identifier of the activity the room handle of the activity channel

In bindings that need a separate name, arrays of Activity should be called Activity_List.

#### Members

`id` − `s`
  (undocumented)
`room` − `u` (Room_Handle)
  (undocumented)

# org.laptop.Telepathy.ActivityProperties

Implementations of this interface must also implement:

- `org.freedesktop.Telepathy.Connection`

An interface on connections to associate OLPC activity properties with rooms.

The following types and names are used to request and set properties:

s:color
  The color of the activity. Format used is #RRGGBB,#RRGGBB (stroke,fill).
s:name
  The name of the activity.
s:type
  The type of the activity.

## Methods:

### SetProperties ( u: room, a{sv}: properties ) → nothing

Set the properties of the activity associated to the given room for this connection. You have to be the owner of this activity.

#### Parameters

`room` − `u`
  An integer handle representing the room of the activity
`properties` − `a{sv}`
  A dictionary mapping properties names to the desired values

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.PermissionDenied`
  (Undocumented.)

### GetProperties ( u: room ) → a{sv}

Get the properties of a particular activity.

#### Parameters

`room` − `u`
  An integer handle for the activity's room to request his properties for

#### Returns

`properties` − `a{sv}`
  A dictionary mapping properties names to their values

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

### GetActivity ( s: activity_id ) → u

Returns the handle of the room associated with this activity
When an activity starts up, it knows its activity_id but doesn't know yet if it's shared or not, much less the room.

#### Parameters

`activity_id` − `s`
  An activity id

#### Returns

`room` − `u`
  A room handle

#### Possible errors

`org.freedesktop.Telepathy.Error.Disconnected`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.InvalidArgument`
  (Undocumented.)

## Signals:

### ActivityPropertiesChanged ( u: room, a{sv}: properties )

Signal emitted when the properties of an activity are changed.

#### Parameters

`room` − `u`
  An integer handle representing the room of the activity
`properties` − `a{sv}`
  A dictionary mapping properties names to their new values

Interface has no Telepathy properties.

Interface has no D-Bus core properties.

# org.freedesktop.Telepathy.Channel.Type.FileTransfer.FUTURE

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.

## D-Bus core Properties:

Accessed using the org.freedesktop.DBus.Properties interface.

`FileCollection` − `s`, read-only

  The 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)

# org.freedesktop.Telepathy.Connection.Interface.Gabble.Decloak

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:

- `org.freedesktop.Telepathy.Connection`

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)

## Methods:

### SendDirectedPresence ( u: Contact, b: Full ) → nothing

Send directed presence to a contact. This MAY be called at any time, but will typically be used as a response to DecloakRequested

#### Parameters

`Contact` − `u` (Contact_Handle)
  The contact to send directed presence to.
`Full` − `b`
  If true, full presence (status, message, avatar hash etc.) will be directed to the specified contact. If false, only capabilities and the fact that the user is online at all will be directed to the specified contact (the local user will appear to that contact as being in 'available' status).

## Signals:

### DecloakRequested ( u: Contact, s: Reason, b: Decloaked )

Emitted when a remote contact asks for the local user's capabilities and basic presence to be disclosed.

#### Parameters

`Contact` − `u` (Contact_Handle)
  The contact asking for presence disclosure
`Reason` − `s`
  A code indicating the reason that decloaking is requested, or the empty string if no reason code was given. As per the proto-XEP, well-known values are 'media' (remote contact wants to call local user), 'text' (remote contact wants to establish a text messaging session, perhaps end-to-end encrypted), and 'file' (remote contact wants to send the local user a file).
`Decloaked` − `b`
  If true, the connection manager automatically disclosed the local user's capabilities and basic presence in response to the request, and this signal is merely for information. If false, presence was not automatically disclosed; a user interface MAY respond by calling SendDirectedPresence.

Interface has no Telepathy properties.

## D-Bus core Properties:

Accessed using the org.freedesktop.DBus.Properties interface.

`DecloakAutomatically` − `b`, read/write

  If 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.

# org.freedesktop.Telepathy.Connection.FUTURE

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:

- `org.freedesktop.Telepathy.Connection`

## Methods:

### EnsureSidecar ( s: Main_Interface ) → o, a{sv}

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.

#### Parameters

`Main_Interface` − `s` (DBus_Interface)
  The "primary" interface implemented by an object attached to a connection. For example, a Gabble plugin implementing fine-grained control of XEP-0016 privacy lists might expose an object implementing com.example.PrivacyLists.

#### Returns

`Path` − `o`
  The object path of the sidecar, exported by the same bus name as the Connection to which it is attached.
`Properties` − `a{sv}` (Qualified_Property_Value_Map)
  Immutable properties of the sidecar.

Interface has no signals.

Interface has no Telepathy properties.

Interface has no D-Bus core properties.

# org.freedesktop.Telepathy.Gabble.Plugin.Console

A sidecar interface providing an XMPP console.

## Methods:

### SendIQ ( s: Type, s: To, s: Body ) → s, s

Hai.

#### Parameters

`Type` − `s`
  The type of IQ request to send; either `"get"` or `"set"`.
`To` − `s`
  The recipient for the IQ; or the empty string to send an IQ to the server (with no recipient specified).
`Body` − `s`
  An XML fragment for the body of the IQ, which MUST have exactly one top-level element.

#### Returns

`Reply_Type` − `s`
  The type of IQ reply; either `"result"` or `"error"`.
`Body` − `s`
  An XML fragment for the body of the response, which MUST have between zero and two top-level elements (the query element, an error element, both, or neither).

### SendStanza ( s: Stanza ) → nothing

Sends a stanza, yo.

#### Parameters

`Stanza` − `s`
  A complete stanza.

## Signals:

### StanzaSent ( s: Stanza )

Emitted whenever a stanza is sent and SpewStanzas is `True`.

#### Parameters

`Stanza` − `s`
  The stanza, in glorious XML.

### StanzaReceived ( s: Stanza )

Emitted whenever a stanza is received and SpewStanzas is `True`.

#### Parameters

`Stanza` − `s`
  The stanza, in glorious XML.

Interface has no Telepathy properties.

## D-Bus core Properties:

Accessed using the org.freedesktop.DBus.Properties interface.

`SpewStanzas` − `b`, read/write
  If `True`, StanzaReceived and StanzaSent will be emitted, drowning your session bus in a sea of XML.

# org.freedesktop.Telepathy.Gabble.Plugin.Gateways

A sidecar interface to register with XEP-0100 gateways.

## Methods:

### Register ( s: Gateway, s: Username, s: Password ) → nothing

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.

#### Parameters

`Gateway` − `s`

  The gateway (XMPP component) with which to register, e.g. "sip-transport.example.com".

`Username` − `s`

  The 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` − `s`

  The password with which to register.

#### Possible errors

`org.freedesktop.Telepathy.Error.NetworkError`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.NotAvailable`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.NotImplemented`
  (Undocumented.)
`org.freedesktop.Telepathy.Error.PermissionDenied`
  (Undocumented.)

Interface has no signals.

Interface has no Telepathy properties.

Interface has no D-Bus core properties.

# org.freedesktop.Telepathy.Gabble.Plugin.Test

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.

# Generic types

## Types defined elsewhere

Room_Handle − u
  Defined by: Telepathy specification
Handle_Type − u
  Defined by: Telepathy specification
Contact_Handle − u
  Defined by: Telepathy specification
DBus_Unique_Name − s
  Defined by: Telepathy specification

# Generic types

## Simple types

### Handle − u

An unsigned 32-bit integer representing a handle

## Enumerated types:

### Media_Stream_Type

`Media_Stream_Type_Audio = 0`
  An audio stream
`Media_Stream_Type_Video = 1`
  A video stream

### Media_Stream_State

`Media_Stream_State_Disconnected = 0`
  The stream is disconnected.
`Media_Stream_State_Connecting = 1`
  The stream is trying to connect.
`Media_Stream_State_Connected = 2`
  The stream is connected.

## Structure types

### Socket_Address_IP − ( s: Address, q: Port )

An IP address and port.

In bindings that need a separate name, arrays of Socket_Address_IP should be called Socket_Address_IP_List.

#### Members

`Address` − `s`
  Either a dotted-quad IPv4 address literal as for Socket_Address_IPv4, or an RFC2373 IPv6 address as for Socket_Address_IPv6.
`Port` − `q`
  The TCP or UDP port number.

### Socket_Address_IPv4 − ( s: Address, q: Port )

An IPv4 address and port.

Arrays of Socket_Address_IPv4 don't generally make sense.

#### Members

`Address` − `s`
  A dotted-quad IPv4 address literal: four ASCII decimal numbers, each between 0 and 255 inclusive, e.g. "192.168.0.1".
`Port` − `q`
  The TCP or UDP port number.

### Socket_Address_IPv6 − ( s: Address, q: Port )

An IPv6 address and port.

Arrays of Socket_Address_IPv6 don't generally make sense.

#### Members

`Address` − `s`
  An IPv6 address literal as specified by RFC2373 section 2.2, e.g. "2001:DB8::8:800:200C:4171".
`Port` − `q`
  The TCP or UDP port number.

## Types defined elsewhere

Contact_Handle − u
  Defined by: Telepathy specification
DBus_Interface − s
  Defined by: Telepathy specification
DBus_Qualified_Member − s
  Defined by: Telepathy specification
Qualified_Property_Value_Map − a{sv}
  Defined by: Telepathy specification
DBus_Error_Name − s
  Defined by: Telepathy specification
DBus_Well_Known_Name − s
  Defined by: Telepathy specification
Handler_Capability_Token − s
  Defined by: Telepathy specification
VCard_Field − s
  Defined by: Telepathy specification
VCard_Type_Parameter − s
  Defined by: Telepathy specification
Contact_Info_Field − (sasas)
  Defined by: Telepathy specification
Rich_Presence_Access_Control_Type − u
  Defined by: Telepathy specification
Rich_Presence_Access_Control − (uv)
  Defined by: Telepathy specification
Unix_Timestamp64 − x
  Defined by: Telepathy specification
Unix_Timestamp − u
  Defined by: Telepathy specification
String_String_Map − a{ss}
  Defined by: Telepathy specification
String_Variant_Map − a{sv}
  Defined by: Telepathy specification
Contact_Attributes_Map − a{ua{sv}}
  Defined by: Telepathy specification
Channel_Class − a{sv}
  Defined by: Telepathy specification
Socket_Address_Type − u
  Defined by: Telepathy specification
Socket_Access_Control − u
  Defined by: Telepathy specification
Supported_Socket_Map − a{uau}
  Defined by: Telepathy specification
DBus_Tube_Member − (us)
  Defined by: Telepathy specification
Requestable_Channel_Class − (a{sv}as)
  Defined by: Telepathy specification
Connection_Status − u
  Defined by: Telepathy specification

# Index

## Index of interfaces

- `org.freedesktop.Telepathy.Connection.Interface.Addressing1`
- `org.laptop.Telepathy.BuddyInfo`
- `org.laptop.Telepathy.ActivityProperties`
- `org.freedesktop.Telepathy.Channel.Type.FileTransfer.FUTURE`
- `org.freedesktop.Telepathy.Connection.Interface.Gabble.Decloak`
- `org.freedesktop.Telepathy.Connection.FUTURE`
- `org.freedesktop.Telepathy.Gabble.Plugin.Console`
- `org.freedesktop.Telepathy.Gabble.Plugin.Gateways`
- `org.freedesktop.Telepathy.Gabble.Plugin.Test`

## Index of types

- `Activity` − ( s, u )
- `Addressing_Normalization_Map` − a{ s → u }
- `Channel_Class` − a{sv}
- `Connection_Status` − u
- `Contact_Attributes_Map` − a{ua{sv}}
- `Contact_Handle` − u
- `Contact_Handle` − u
- `Contact_Info_Field` − (sasas)
- `DBus_Error_Name` − s
- `DBus_Interface` − s
- `DBus_Qualified_Member` − s
- `DBus_Tube_Member` − (us)
- `DBus_Unique_Name` − s
- `DBus_Well_Known_Name` − s
- `Handle` − u
- `Handle_Type` − u
- `Handler_Capability_Token` − s
- `Media_Stream_State` − u
- `Media_Stream_Type` − u
- `Qualified_Property_Value_Map` − a{sv}
- `Requestable_Channel_Class` − (a{sv}as)
- `Rich_Presence_Access_Control` − (uv)
- `Rich_Presence_Access_Control_Type` − u
- `Room_Handle` − u
- `Socket_Access_Control` − u
- `Socket_Address_IP` − ( s, q )
- `Socket_Address_IPv4` − ( s, q )
- `Socket_Address_IPv6` − ( s, q )
- `Socket_Address_Type` − u
- `String_String_Map` − a{ss}
- `String_Variant_Map` − a{sv}
- `Supported_Socket_Map` − a{uau}
- `Unix_Timestamp` − u
- `Unix_Timestamp64` − x
- `VCard_Field` − s
- `VCard_Field_Address_Map` − a{ s → s }
- `VCard_Type_Parameter` − s