Methods
NormalizeVCardAddress | (s: VCard_Field, s: VCard_Address) | → | s: Normalized_VCard_Address | |
NormalizeURI | (s: URI) | → | s: Normalized_URI |
Properties
AddressableVCardFields | as | Read only | |
AddressableURISchemes | as | Read only |
Description
An interface for protocols that support multiple forms of addressing contacts, for example through vCard addresses and URIs.
If the ConnectionManager has a .manager file, and it supports this interface, the interface's immutable properties must be represented in the file; the representation is described as part of the documentation for each property.
For instance, a SIP connection manager might have the following lines in it's .manager file.
[Protocol sip] AddressableVCardFields=tel;x-sip; AddressableURISchemes=tel;sip;
Methods
NormalizeVCardAddress (s: VCard_Field, s: VCard_Address) → s: Normalized_VCard_Address
Parameters
- VCard_Field — s
- VCard_Address — s
Returns
- Normalized_VCard_Address — s
Attempt to normalize the given vCard address. Where possible, this
SHOULD return an address that would appear in the
org.freedesktop.Telepathy.Connection.Interface.Addressing.DRAFT/addresses
attribute for a contact on a connected
Connection.
If full normalization requires network activity or is otherwise impossible to do without a Connection, this method SHOULD perform a best-effort normalization.
An example would be a vCard TEL field with a formatted
number in the form of +1 (206) 555 1234
, this would be
normalized to +12065551234
.
This method MAY simply raise NotImplemented on some protocols, if it has no use.
Possible Errors
- Not Implemented
- Invalid Argument
NormalizeURI (s: URI) → s: Normalized_URI
Parameters
- URI — s
Returns
- Normalized_URI — s
Attempt to normalize the given contact URI. Where possible, this
SHOULD return an address that would appear in the
org.freedesktop.Telepathy.Connection.Interface.Addressing.DRAFT/uris
attribute for a contact on a connected
Connection.
If full normalization requires network activity or is otherwise impossible to do without a Connection, this method SHOULD perform a best-effort normalization.
Example: xmpp:eitan@EXAMPLE.COM
would be normalized to
xmpp:eitan@example.com
.
This method MAY simply raise NotImplemented on some protocols, if it has no use.
Possible Errors
- Not Implemented
- Invalid Argument
Properties
AddressableVCardFields — as
The vCard fields that can be used to request a contact with
normalized to lower case. If the URL
vCard
field is addressable, a colon, followed by the supported URI
schemes will be concatenated.
For example: ["tel", "x-sip"]
.
The url
vCard field MUST NOT appear here; see
AddressableURISchemes instead.
Rationale:
In practice, protocols have a limited set of URI schemes that make sense to resolve as a contact.
This property should only be used when the connection is offline. When it is connected the addressable fields should be retrieved from the Requests.RequestableChannelClasses's TargetVCardField fixed-property instead.
Connection managers with a .manager
file
MUST cache this property in the protocol's section of the
.manager
file if it is non-empty, using the key
AddressableVCardFields
. The corresponding value
is a list of strings, each followed with a semicolon and in the
syntax of the "localestring" type from the Desktop Entry
Specification.
AddressableURISchemes — as
The URI schemes that are supported by this protocol.
For example: ["tel", "sip"]
.
This property should only be used when the connection is offline. When it is connected the addressable URI schemes should be retrieved from the Requests.RequestableChannelClasses's TargetURIScheme fixed-property instead.
Connection managers with a .manager
file
MUST cache this property in the protocol's section of the
.manager
file if it is non-empty, using the key
AddressableURISchemes
. The corresponding value
is a list of strings, each followed with a semicolon and in the
syntax of the "localestring" type from the Desktop Entry
Specification.