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 the .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.
Well-known vCard fields:
tel
- The TEL vCard field. Used for phone numbers.
x-sip
- The X-SIP vCard field. Used for SIP addresses.
x-aim
- The X-AIM vCard field. Used for AIM user IDs.
x-icq
- The X-ICQ vCard field. Used for ICQ UINs.
x-skype
- The X-SKYPE vCard field. Used for Skype user names or
telephone numbers. There is also a X-SKYPE-USERNAME field,
but for Telepathy purposes,
x-skype
is preferred x-groupwise
- The X-GROUPWISE vCard field. Used for Groupwise contacts.
x-gadugadu
- The X-GADUGADU vCard field. Used for Gadu-Gadu contacts.
x-jabber
- The X-JABBER vCard field. Used for XMPP JIDs.
x-msn
- The X-MSN vCard field. Used for MSN contacts.
x-yahoo
- The X-YAHOO vCard field. Used for Yahoo! IDs.
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.
Well-known URI schemes:
sip
- SIP protocol.
For example:
sip:julien@example.com
. sips
- Secure (encrypted) SIP protocol.
For example:
sips:julien@example.com
. tel
- Used for telephone numbers.
For example:
tel:+12065551234
. xmpp
- XMPP protocol.
For example:
xmpp:julien@example.com
. msnim
- For the purposes of
Protocol.Interface.Addressing.DRAFT,
Connection.Interface.Addressing.DRAFT,
and
Channel.Interface.Addressing.DRAFT,
the verb part is ignored, and SHOULD be
add
; thecontact
field in the query string is used to identify the contact. For example:msnim:add?contact=julien
. aim
- For the purposes of
Protocol.Interface.Addressing.DRAFT,
Connection.Interface.Addressing.DRAFT,
and
Channel.Interface.Addressing.DRAFT,
the verb part is ignored, and SHOULD be
addbuddy
; thescreenname
field in the query string is used to identify the contact. For example:aim:addbuddy?screenname=julien
. skype
- Skype protocol.
For example:
skype:julien
. ymsgr
- For the purposes of
Protocol.Interface.Addressing.DRAFT,
Connection.Interface.Addressing.DRAFT,
and
Channel.Interface.Addressing.DRAFT,
the verb part is ignored, and SHOULD be
addfriend
; the query string is used to identify the contact. For example:ymsgr:addfriend?julien
. gg
- Gadu-Gadu protocol.
For example:
gg:julien
.