summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2012-02-20 15:09:37 (GMT)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2012-02-20 15:09:37 (GMT)
commit89ebc5c794da4b2312ea299764f58de2bf037343 (patch)
treedfc4a454edb0b05e9b29b4ab001ce51f56b1565f
parent71a38001a7e094f2a55bdc6c49665467b94c0dee (diff)
downloadtelepathy-glib-89ebc5c794da4b2312ea299764f58de2bf037343.tar.gz
telepathy-glib-89ebc5c794da4b2312ea299764f58de2bf037343.tar.xz
Further update spec, to 0.25.2
Code changes: * Generate code for Chan.T.Call1, Conn.I.Addressing1, Chan.I.CaptchaAuthentication1, and document them * Adapt Call1 CM and test for Direction argument to AddContent * Add CaptchaNotSupported error
-rw-r--r--docs/reference/telepathy-glib-docs.sgml3
-rw-r--r--docs/reference/telepathy-glib-sections.txt183
-rw-r--r--examples/future/call-cm/call-channel.c34
-rw-r--r--examples/future/call-cm/call-stream.c28
-rw-r--r--spec/Account.xml31
-rw-r--r--spec/Account_Manager.xml2
-rw-r--r--spec/Call_Content.xml2
-rw-r--r--spec/Call_Content_Interface_Audio_Control.xml2
-rw-r--r--spec/Call_Content_Interface_DTMF.xml2
-rw-r--r--spec/Call_Content_Interface_Media.xml2
-rw-r--r--spec/Call_Content_Interface_Video_Control.xml2
-rw-r--r--spec/Call_Content_Media_Description.xml2
-rw-r--r--spec/Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml2
-rw-r--r--spec/Call_Content_Media_Description_Interface_RTCP_Feedback.xml2
-rw-r--r--spec/Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml2
-rw-r--r--spec/Call_Interface_Mute.xml2
-rw-r--r--spec/Call_Stream.xml2
-rw-r--r--spec/Call_Stream_Endpoint.xml2
-rw-r--r--spec/Call_Stream_Interface_Media.xml26
-rw-r--r--spec/Channel_Interface_Captcha_Authentication.xml505
-rw-r--r--spec/Channel_Interface_DTMF.xml2
-rw-r--r--spec/Channel_Type_Call.xml70
-rw-r--r--spec/Connection_Interface_Addressing.xml27
-rw-r--r--spec/Connection_Interface_Contact_List.xml4
-rw-r--r--spec/Connection_Manager.xml7
-rw-r--r--spec/all.xml5
-rw-r--r--spec/errors.xml10
-rw-r--r--spec/generic-types.xml8
-rw-r--r--telepathy-glib/channel.xml2
-rw-r--r--telepathy-glib/connection.xml1
-rw-r--r--telepathy-glib/errors.c4
-rw-r--r--telepathy-glib/errors.h1
-rw-r--r--telepathy-glib/extra-gtkdoc.h43
-rw-r--r--tests/dbus/call-example.c16
34 files changed, 936 insertions, 100 deletions
diff --git a/docs/reference/telepathy-glib-docs.sgml b/docs/reference/telepathy-glib-docs.sgml
index 50d1a58..3bb74e4 100644
--- a/docs/reference/telepathy-glib-docs.sgml
+++ b/docs/reference/telepathy-glib-docs.sgml
@@ -54,6 +54,7 @@
<xi:include href="xml/connection-cellular.xml"/>
<xi:include href="xml/connection-mail.xml"/>
<xi:include href="xml/connection-powersaving.xml"/>
+ <xi:include href="xml/connection-addressing.xml"/>
<xi:include href="xml/contact-search.xml"/>
<xi:include href="xml/contact-search-result.xml"/>
<xi:include href="xml/channel.xml"/>
@@ -67,6 +68,7 @@
<xi:include href="xml/channel-roomlist.xml"/>
<xi:include href="xml/channel-contactsearch.xml"/>
<xi:include href="xml/channel-auth.xml"/>
+ <xi:include href="xml/channel-cli-call.xml"/>
<xi:include href="xml/cli-anonymity.xml"/>
<xi:include href="xml/cli-service-point.xml"/>
<xi:include href="xml/media-interfaces.xml"/>
@@ -109,6 +111,7 @@
<xi:include href="xml/svc-channel-roomlist.xml"/>
<xi:include href="xml/svc-channel-auth.xml"/>
<xi:include href="xml/svc-channel-securable.xml"/>
+ <xi:include href="xml/svc-channel-call.xml"/>
<xi:include href="xml/svc-debug.xml"/>
<xi:include href="xml/svc-connection.xml"/>
<xi:include href="xml/svc-anonymity.xml"/>
diff --git a/docs/reference/telepathy-glib-sections.txt b/docs/reference/telepathy-glib-sections.txt
index 7985170..1e8d7e5 100644
--- a/docs/reference/telepathy-glib-sections.txt
+++ b/docs/reference/telepathy-glib-sections.txt
@@ -839,6 +839,40 @@ TP_SVC_CHANNEL_INTERFACE_MEDIA_SIGNALLING_GET_CLASS
</SECTION>
<SECTION>
+<FILE>svc-channel-call</FILE>
+<TITLE>svc-channel-call</TITLE>
+<INCLUDE>telepathy-glib/svc-channel.h</INCLUDE>
+TpSvcChannelTypeCall
+TpSvcChannelTypeCallClass
+<SUBSECTION Standard>
+TP_SVC_CHANNEL_TYPE_CALL
+TP_SVC_CHANNEL_TYPE_CALL_GET_CLASS
+TP_IS_SVC_CHANNEL_TYPE_CALL
+TP_TYPE_SVC_CHANNEL_TYPE_CALL
+tp_svc_channel_type_call_get_type
+<SUBSECTION>
+tp_svc_channel_type_call_accept_impl
+tp_svc_channel_type_call_add_content_impl
+tp_svc_channel_type_call_emit_call_members_changed
+tp_svc_channel_type_call_emit_call_state_changed
+tp_svc_channel_type_call_emit_content_added
+tp_svc_channel_type_call_emit_content_removed
+tp_svc_channel_type_call_hangup_impl
+tp_svc_channel_type_call_implement_accept
+tp_svc_channel_type_call_implement_add_content
+tp_svc_channel_type_call_implement_hangup
+tp_svc_channel_type_call_implement_set_queued
+tp_svc_channel_type_call_implement_set_ringing
+tp_svc_channel_type_call_return_from_accept
+tp_svc_channel_type_call_return_from_add_content
+tp_svc_channel_type_call_return_from_hangup
+tp_svc_channel_type_call_return_from_set_queued
+tp_svc_channel_type_call_return_from_set_ringing
+tp_svc_channel_type_call_set_queued_impl
+tp_svc_channel_type_call_set_ringing_impl
+</SECTION>
+
+<SECTION>
<FILE>svc-anonymity</FILE>
<TITLE>svc-anonymity</TITLE>
<INCLUDE>telepathy-glib/svc-channel.h,telepathy-glib/svc-connection.h</INCLUDE>
@@ -1222,6 +1256,9 @@ tp_svc_connection_interface_contact_list_return_from_unpublish
tp_svc_connection_interface_contact_list_return_from_unsubscribe
tp_svc_connection_interface_contact_list_unpublish_impl
tp_svc_connection_interface_contact_list_unsubscribe_impl
+tp_svc_connection_interface_contact_list_download_impl
+tp_svc_connection_interface_contact_list_implement_download
+tp_svc_connection_interface_contact_list_return_from_download
<SUBSECTION Standard>
tp_svc_connection_interface_contact_blocking_get_type
tp_svc_connection_interface_contact_list_get_type
@@ -1294,6 +1331,21 @@ TP_IS_SVC_CONNECTION_INTERFACE_POWER_SAVING
TP_SVC_CONNECTION_INTERFACE_POWER_SAVING
TP_SVC_CONNECTION_INTERFACE_POWER_SAVING_GET_CLASS
TP_TYPE_SVC_CONNECTION_INTERFACE_POWER_SAVING
+<SUBSECTION>
+TpSvcConnectionInterfaceAddressing
+TpSvcConnectionInterfaceAddressingClass
+tp_svc_connection_interface_addressing_get_contacts_by_uri_impl
+tp_svc_connection_interface_addressing_get_contacts_by_vcard_field_impl
+tp_svc_connection_interface_addressing_implement_get_contacts_by_uri
+tp_svc_connection_interface_addressing_implement_get_contacts_by_vcard_field
+tp_svc_connection_interface_addressing_return_from_get_contacts_by_uri
+tp_svc_connection_interface_addressing_return_from_get_contacts_by_vcard_field
+<SUBSECTION Standard>
+TP_IS_SVC_CONNECTION_INTERFACE_ADDRESSING
+TP_SVC_CONNECTION_INTERFACE_ADDRESSING
+TP_SVC_CONNECTION_INTERFACE_ADDRESSING_GET_CLASS
+TP_TYPE_SVC_CONNECTION_INTERFACE_ADDRESSING
+tp_svc_connection_interface_addressing_get_type
</SECTION>
<SECTION>
@@ -1567,12 +1619,14 @@ TP_STRUCT_TYPE_STATUS_SPEC
TP_HASH_TYPE_LOCATION
TP_HASH_TYPE_CONTACT_LOCATIONS
<SUBSECTION>
-# Connection - ContactInfo
+# ContactInfo and Addressing
TP_HASH_TYPE_CONTACT_INFO_MAP
TP_STRUCT_TYPE_CONTACT_INFO_FIELD
TP_ARRAY_TYPE_CONTACT_INFO_FIELD_LIST
TP_STRUCT_TYPE_FIELD_SPEC
TP_ARRAY_TYPE_FIELD_SPECS
+TP_HASH_TYPE_ADDRESSING_NORMALIZATION_MAP
+TP_HASH_TYPE_VCARD_FIELD_ADDRESS_MAP
<SUBSECTION>
# Connection - ContactList, ContactGroups
TP_STRUCT_TYPE_CONTACT_SUBSCRIPTIONS
@@ -1623,6 +1677,11 @@ TP_ARRAY_TYPE_PROPERTY_FLAGS_CHANGE_LIST
TP_STRUCT_TYPE_PROPERTY_VALUE
TP_ARRAY_TYPE_PROPERTY_VALUE_LIST
<SUBSECTION>
+# Channel - Call
+TP_HASH_TYPE_CALL_MEMBER_MAP
+TP_ARRAY_TYPE_CALL_MEMBER_MAP_LIST
+TP_STRUCT_TYPE_CALL_STATE_REASON
+<SUBSECTION>
# Channel - Media-related
TP_ARRAY_TYPE_MEDIA_SESSION_HANDLER_INFO_LIST
TP_STRUCT_TYPE_MEDIA_SESSION_HANDLER_INFO
@@ -1657,6 +1716,11 @@ NUM_TP_CHANNEL_CONTACT_SEARCH_STATES
TP_HASH_TYPE_CONTACT_SEARCH_MAP
TP_HASH_TYPE_CONTACT_SEARCH_RESULT_MAP
<SUBSECTION>
+# Channel - captchas
+TP_ARRAY_TYPE_CAPTCHA_INFO_LIST
+TP_HASH_TYPE_CAPTCHA_ANSWERS
+TP_STRUCT_TYPE_CAPTCHA_INFO
+<SUBSECTION>
# Account and AM
TP_STRUCT_TYPE_AVATAR
<SUBSECTION>
@@ -1774,6 +1838,10 @@ tp_type_dbus_struct_uuusa_7bsv_7du
tp_type_dbus_struct_uuuuus
tp_type_dbus_struct_uuuuuu
tp_type_dbus_struct_uv
+tp_type_dbus_array_of_a_7buu_7d
+tp_type_dbus_array_ussuas
+tp_type_dbus_hash_su
+tp_type_dbus_struct_ussuas
</SECTION>
<SECTION>
@@ -2319,6 +2387,7 @@ TP_ERROR_STR_INSUFFICIENT_BALANCE
TP_ERROR_STR_MEDIA_CODECS_INCOMPATIBLE
TP_ERROR_STR_MEDIA_UNSUPPORTED_TYPE
TP_ERROR_STR_MEDIA_STREAMING_ERROR
+TP_ERROR_STR_CAPTCHA_NOT_SUPPORTED
<SUBSECTION Standard>
tp_error_get_type
tp_errors_quark
@@ -2569,6 +2638,17 @@ TpSASLAbortReason
NUM_TP_SASL_ABORT_REASONS
TpSASLStatus
NUM_TP_SASL_STATUSES
+TpCallFlags
+TpCallMemberFlags
+TpCallState
+NUM_TP_CALL_STATES
+TpCallStateChangeReason
+NUM_TP_CALL_STATE_CHANGE_REASONS
+TpCaptchaStatus
+NUM_TP_CAPTCHA_STATUSES
+TpCaptchaCancelReason
+NUM_TP_CAPTCHA_CANCEL_REASONS
+TpCaptchaFlags
</SECTION>
<SECTION>
@@ -2609,6 +2689,8 @@ TP_IFACE_PROTOCOL_INTERFACE_PRESENCE
TP_IFACE_QUARK_PROTOCOL_INTERFACE_PRESENCE
TP_IFACE_CONNECTION
TP_IFACE_QUARK_CONNECTION
+TP_IFACE_CONNECTION_INTERFACE_ADDRESSING
+TP_IFACE_QUARK_CONNECTION_INTERFACE_ADDRESSING
TP_IFACE_CONNECTION_INTERFACE_ALIASING
TP_IFACE_QUARK_CONNECTION_INTERFACE_ALIASING
TP_IFACE_CONNECTION_INTERFACE_ANONYMITY
@@ -2651,6 +2733,8 @@ TP_IFACE_CONNECTION_INTERFACE_MAIL_NOTIFICATION
TP_IFACE_QUARK_CONNECTION_INTERFACE_MAIL_NOTIFICATION
TP_IFACE_CHANNEL
TP_IFACE_QUARK_CHANNEL
+TP_IFACE_CHANNEL_TYPE_CALL
+TP_IFACE_QUARK_CHANNEL_TYPE_CALL
TP_IFACE_CHANNEL_TYPE_CONTACT_LIST
TP_IFACE_QUARK_CHANNEL_TYPE_CONTACT_LIST
TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH
@@ -2679,6 +2763,8 @@ TP_IFACE_CHANNEL_INTERFACE_ANONYMITY
TP_IFACE_QUARK_CHANNEL_INTERFACE_ANONYMITY
TP_IFACE_CHANNEL_INTERFACE_CALL_STATE
TP_IFACE_QUARK_CHANNEL_INTERFACE_CALL_STATE
+TP_IFACE_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION
+TP_IFACE_QUARK_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION
TP_IFACE_CHANNEL_INTERFACE_CHAT_STATE
TP_IFACE_QUARK_CHANNEL_INTERFACE_CHAT_STATE
TP_IFACE_CHANNEL_INTERFACE_CONFERENCE
@@ -2766,6 +2852,7 @@ TP_PROP_ACCOUNT_NORMALIZED_NAME
TP_PROP_ACCOUNT_PARAMETERS
TP_PROP_ACCOUNT_REQUESTED_PRESENCE
TP_PROP_ACCOUNT_SERVICE
+TP_PROP_ACCOUNT_SUPERSEDES
TP_PROP_ACCOUNT_VALID
TP_PROP_AUTHENTICATION_TLS_CERTIFICATE_CERTIFICATE_CHAIN_DATA
TP_PROP_AUTHENTICATION_TLS_CERTIFICATE_CERTIFICATE_TYPE
@@ -2786,6 +2873,10 @@ TP_PROP_CHANNEL_INTERFACES
TP_PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMITY_MANDATORY
TP_PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMITY_MODES
TP_PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMOUS_ID
+TP_PROP_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION_CAN_RETRY_CAPTCHA
+TP_PROP_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION_CAPTCHA_ERROR
+TP_PROP_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION_CAPTCHA_ERROR_DETAILS
+TP_PROP_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION_CAPTCHA_STATUS
TP_PROP_CHANNEL_INTERFACE_CHAT_STATE_CHAT_STATES
TP_PROP_CHANNEL_INTERFACE_CONFERENCE_CHANNELS
TP_PROP_CHANNEL_INTERFACE_CONFERENCE_INITIAL_CHANNELS
@@ -2863,6 +2954,20 @@ TP_PROP_CHANNEL_REQUEST_USER_ACTION_TIME
TP_PROP_CHANNEL_TARGET_HANDLE
TP_PROP_CHANNEL_TARGET_HANDLE_TYPE
TP_PROP_CHANNEL_TARGET_ID
+TP_PROP_CHANNEL_TYPE_CALL_CALL_FLAGS
+TP_PROP_CHANNEL_TYPE_CALL_CALL_MEMBERS
+TP_PROP_CHANNEL_TYPE_CALL_CALL_STATE
+TP_PROP_CHANNEL_TYPE_CALL_CALL_STATE_DETAILS
+TP_PROP_CHANNEL_TYPE_CALL_CALL_STATE_REASON
+TP_PROP_CHANNEL_TYPE_CALL_CONTENTS
+TP_PROP_CHANNEL_TYPE_CALL_HARDWARE_STREAMING
+TP_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO
+TP_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO_NAME
+TP_PROP_CHANNEL_TYPE_CALL_INITIAL_TRANSPORT
+TP_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO
+TP_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO_NAME
+TP_PROP_CHANNEL_TYPE_CALL_MEMBER_IDENTIFIERS
+TP_PROP_CHANNEL_TYPE_CALL_MUTABLE_CONTENTS
TP_PROP_CHANNEL_TYPE_CONTACT_SEARCH_AVAILABLE_SEARCH_KEYS
TP_PROP_CHANNEL_TYPE_CONTACT_SEARCH_LIMIT
TP_PROP_CHANNEL_TYPE_CONTACT_SEARCH_SEARCH_STATE
@@ -2975,6 +3080,8 @@ TP_PROP_PROTOCOL_PARAMETERS
TP_PROP_PROTOCOL_REQUESTABLE_CHANNEL_CLASSES
TP_PROP_PROTOCOL_VCARD_FIELD
TP_TOKEN_CONNECTION_CONTACT_ID
+TP_TOKEN_CONNECTION_INTERFACE_ADDRESSING_ADDRESSES
+TP_TOKEN_CONNECTION_INTERFACE_ADDRESSING_URIS
TP_TOKEN_CONNECTION_INTERFACE_ALIASING_ALIAS
TP_TOKEN_CONNECTION_INTERFACE_AVATARS_TOKEN
TP_TOKEN_CONNECTION_INTERFACE_CAPABILITIES_CAPS
@@ -2988,6 +3095,12 @@ TP_TOKEN_CONNECTION_INTERFACE_CONTACT_LIST_PUBLISH_REQUEST
TP_TOKEN_CONNECTION_INTERFACE_CONTACT_LIST_SUBSCRIBE
TP_TOKEN_CONNECTION_INTERFACE_SIMPLE_PRESENCE_PRESENCE
TP_TOKEN_CONNECTION_INTERFACE_LOCATION_LOCATION
+TP_TOKEN_CHANNEL_TYPE_CALL_AUDIO
+TP_TOKEN_CHANNEL_TYPE_CALL_GTALK_P2P
+TP_TOKEN_CHANNEL_TYPE_CALL_ICE
+TP_TOKEN_CHANNEL_TYPE_CALL_SHM
+TP_TOKEN_CHANNEL_TYPE_CALL_VIDEO
+TP_TOKEN_CHANNEL_TYPE_CALL_WLM_2009
TP_TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_GTALK_P2P
TP_TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_ICE_UDP
TP_TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_WLM_8_5
@@ -3074,6 +3187,9 @@ tp_iface_quark_channel_interface_anonymity
tp_iface_quark_channel_interface_service_point
tp_iface_quark_connection_interface_anonymity
tp_iface_quark_connection_interface_service_point
+tp_iface_quark_channel_interface_captcha_authentication
+tp_iface_quark_channel_type_call
+tp_iface_quark_connection_interface_addressing
</SECTION>
<SECTION>
@@ -3503,6 +3619,30 @@ tp_cli_channel_interface_dtmf_run_multiple_tones
</SECTION>
<SECTION>
+<FILE>channel-cli-call</FILE>
+<TITLE>channel-cli-call</TITLE>
+<INCLUDE>telepathy-glib/channel.h</INCLUDE>
+tp_cli_channel_type_call_call_accept
+tp_cli_channel_type_call_call_add_content
+tp_cli_channel_type_call_call_hangup
+tp_cli_channel_type_call_call_set_queued
+tp_cli_channel_type_call_call_set_ringing
+tp_cli_channel_type_call_callback_for_accept
+tp_cli_channel_type_call_callback_for_add_content
+tp_cli_channel_type_call_callback_for_hangup
+tp_cli_channel_type_call_callback_for_set_queued
+tp_cli_channel_type_call_callback_for_set_ringing
+tp_cli_channel_type_call_connect_to_call_members_changed
+tp_cli_channel_type_call_connect_to_call_state_changed
+tp_cli_channel_type_call_connect_to_content_added
+tp_cli_channel_type_call_connect_to_content_removed
+tp_cli_channel_type_call_signal_callback_call_members_changed
+tp_cli_channel_type_call_signal_callback_call_state_changed
+tp_cli_channel_type_call_signal_callback_content_added
+tp_cli_channel_type_call_signal_callback_content_removed
+</SECTION>
+
+<SECTION>
<FILE>channel-tubes</FILE>
<TITLE>channel-tubes</TITLE>
<INCLUDE>telepathy-glib/channel.h</INCLUDE>
@@ -4133,6 +4273,16 @@ tp_cli_connection_interface_mail_notification_run_request_mail_url
</SECTION>
<SECTION>
+<FILE>connection-addressing</FILE>
+<TITLE>connection-addressing</TITLE>
+<INCLUDE>telepathy-glib/connection.h</INCLUDE>
+tp_cli_connection_interface_addressing_call_get_contacts_by_uri
+tp_cli_connection_interface_addressing_call_get_contacts_by_vcard_field
+tp_cli_connection_interface_addressing_callback_for_get_contacts_by_uri
+tp_cli_connection_interface_addressing_callback_for_get_contacts_by_vcard_field
+</SECTION>
+
+<SECTION>
<FILE>connection-manager</FILE>
<TITLE>connection-manager</TITLE>
<INCLUDE>telepathy-glib/connection-manager.h</INCLUDE>
@@ -5844,6 +5994,28 @@ TP_IS_SVC_CHANNEL_INTERFACE_SASL_AUTHENTICATION
TP_TYPE_SVC_CHANNEL_INTERFACE_SASL_AUTHENTICATION
tp_svc_channel_interface_sasl_authentication_get_type
TP_SVC_CHANNEL_INTERFACE_SASL_AUTHENTICATION_GET_CLASS
+<SUBSECTION>
+TpSvcChannelInterfaceCaptchaAuthentication
+TpSvcChannelInterfaceCaptchaAuthenticationClass
+<SUBSECTION Standard>
+TP_IS_SVC_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION
+TP_SVC_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION
+TP_SVC_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION_GET_CLASS
+tp_svc_channel_interface_captcha_authentication_get_type
+TP_TYPE_SVC_CHANNEL_INTERFACE_CAPTCHA_AUTHENTICATION
+<SUBSECTION>
+tp_svc_channel_interface_captcha_authentication_answer_captchas_impl
+tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl
+tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl
+tp_svc_channel_interface_captcha_authentication_get_captchas_impl
+tp_svc_channel_interface_captcha_authentication_implement_answer_captchas
+tp_svc_channel_interface_captcha_authentication_implement_cancel_captcha
+tp_svc_channel_interface_captcha_authentication_implement_get_captcha_data
+tp_svc_channel_interface_captcha_authentication_implement_get_captchas
+tp_svc_channel_interface_captcha_authentication_return_from_answer_captchas
+tp_svc_channel_interface_captcha_authentication_return_from_cancel_captcha
+tp_svc_channel_interface_captcha_authentication_return_from_get_captcha_data
+tp_svc_channel_interface_captcha_authentication_return_from_get_captchas
</SECTION>
<SECTION>
@@ -5870,6 +6042,15 @@ tp_cli_channel_interface_sasl_authentication_run_start_mechanism
tp_cli_channel_interface_sasl_authentication_run_start_mechanism_with_data
tp_cli_channel_interface_sasl_authentication_signal_callback_new_challenge
tp_cli_channel_interface_sasl_authentication_signal_callback_sasl_status_changed
+<SUBSECTION>
+tp_cli_channel_interface_captcha_authentication_call_answer_captchas
+tp_cli_channel_interface_captcha_authentication_call_cancel_captcha
+tp_cli_channel_interface_captcha_authentication_call_get_captcha_data
+tp_cli_channel_interface_captcha_authentication_call_get_captchas
+tp_cli_channel_interface_captcha_authentication_callback_for_answer_captchas
+tp_cli_channel_interface_captcha_authentication_callback_for_cancel_captcha
+tp_cli_channel_interface_captcha_authentication_callback_for_get_captcha_data
+tp_cli_channel_interface_captcha_authentication_callback_for_get_captchas
</SECTION>
<SECTION>
diff --git a/examples/future/call-cm/call-channel.c b/examples/future/call-cm/call-channel.c
index 9f953d7..feff632 100644
--- a/examples/future/call-cm/call-channel.c
+++ b/examples/future/call-cm/call-channel.c
@@ -236,7 +236,8 @@ example_call_channel_init (ExampleCallChannel *self)
static ExampleCallContent *example_call_channel_add_content (
ExampleCallChannel *self, TpMediaStreamType media_type,
gboolean locally_requested, gboolean initial,
- const gchar *requested_name, GError **error);
+ const gchar *requested_name, TpMediaStreamDirection direction,
+ GError **error);
static void example_call_channel_initiate_outgoing (ExampleCallChannel *self);
@@ -285,14 +286,16 @@ constructed (GObject *object)
{
g_message ("Channel initially has an audio stream");
example_call_channel_add_content (self,
- TP_MEDIA_STREAM_TYPE_AUDIO, TRUE, TRUE, NULL, NULL);
+ TP_MEDIA_STREAM_TYPE_AUDIO, TRUE, TRUE, NULL,
+ TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL, NULL);
}
if (self->priv->initial_video)
{
g_message ("Channel initially has a video stream");
example_call_channel_add_content (self,
- TP_MEDIA_STREAM_TYPE_VIDEO, TRUE, TRUE, NULL, NULL);
+ TP_MEDIA_STREAM_TYPE_VIDEO, TRUE, TRUE, NULL,
+ TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL, NULL);
}
}
else
@@ -304,14 +307,16 @@ constructed (GObject *object)
{
g_message ("Channel initially has an audio stream");
example_call_channel_add_content (self,
- TP_MEDIA_STREAM_TYPE_AUDIO, FALSE, TRUE, NULL, NULL);
+ TP_MEDIA_STREAM_TYPE_AUDIO, FALSE, TRUE, NULL,
+ TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL, NULL);
}
if (self->priv->initial_video)
{
g_message ("Channel initially has a video stream");
example_call_channel_add_content (self,
- TP_MEDIA_STREAM_TYPE_VIDEO, FALSE, TRUE, NULL, NULL);
+ TP_MEDIA_STREAM_TYPE_VIDEO, FALSE, TRUE, NULL,
+ TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL, NULL);
}
}
}
@@ -1124,6 +1129,7 @@ example_call_channel_add_content (ExampleCallChannel *self,
gboolean locally_requested,
gboolean initial,
const gchar *requested_name,
+ TpMediaStreamDirection direction,
GError **error)
{
ExampleCallContent *content;
@@ -1201,6 +1207,7 @@ example_call_channel_add_content (ExampleCallChannel *self,
"connection", self->priv->conn,
"handle", self->priv->handle,
"locally-requested", locally_requested,
+ "initial-direction", direction,
"object-path", path,
NULL);
@@ -1444,6 +1451,7 @@ static void
call_add_content (FutureSvcChannelTypeCall *iface,
const gchar *content_name,
guint content_type,
+ guint direction,
DBusGMethodInvocation *context)
{
ExampleCallChannel *self = EXAMPLE_CALL_CHANNEL (iface);
@@ -1463,8 +1471,22 @@ call_add_content (FutureSvcChannelTypeCall *iface,
goto error;
}
+ switch (direction)
+ {
+ case TP_MEDIA_STREAM_DIRECTION_NONE:
+ case TP_MEDIA_STREAM_DIRECTION_SEND:
+ case TP_MEDIA_STREAM_DIRECTION_RECEIVE:
+ case TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL:
+ break;
+
+ default:
+ g_set_error (&error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
+ "%u is not a supported Media_Stream_Direction", content_type);
+ goto error;
+ }
+
content = example_call_channel_add_content (self, content_type, TRUE, FALSE,
- content_name, &error);
+ content_name, direction, &error);
if (content == NULL)
goto error;
diff --git a/examples/future/call-cm/call-stream.c b/examples/future/call-cm/call-stream.c
index e9f8e0d..91ac971 100644
--- a/examples/future/call-cm/call-stream.c
+++ b/examples/future/call-cm/call-stream.c
@@ -48,6 +48,7 @@ enum
PROP_LOCAL_SENDING_STATE,
PROP_REMOTE_MEMBERS,
PROP_REMOTE_MEMBER_IDENTIFIERS,
+ PROP_INITIAL_DIRECTION,
N_PROPS
};
@@ -64,6 +65,7 @@ struct _ExampleCallStreamPrivate
gchar *object_path;
TpBaseConnection *conn;
TpHandle handle;
+ TpMediaStreamDirection initial_direction;
FutureSendingState local_sending_state;
FutureSendingState remote_sending_state;
@@ -98,6 +100,8 @@ constructed (GObject *object)
ExampleCallStream *self = EXAMPLE_CALL_STREAM (object);
void (*chain_up) (GObject *) =
((GObjectClass *) example_call_stream_parent_class)->constructed;
+ gboolean local_send = FALSE;
+ gboolean remote_send = FALSE;
if (chain_up != NULL)
chain_up (object);
@@ -106,13 +110,20 @@ constructed (GObject *object)
tp_base_connection_get_dbus_daemon (self->priv->conn),
self->priv->object_path, self);
+ if (self->priv->initial_direction & TP_MEDIA_STREAM_DIRECTION_SEND)
+ local_send = TRUE;
+
+ if (self->priv->initial_direction & TP_MEDIA_STREAM_DIRECTION_RECEIVE)
+ remote_send = TRUE;
+
if (self->priv->locally_requested)
{
- example_call_stream_change_direction (self, TRUE, TRUE);
+ example_call_stream_change_direction (self, local_send, remote_send);
}
else
{
- example_call_stream_receive_direction_request (self, TRUE, TRUE);
+ example_call_stream_receive_direction_request (self, local_send,
+ remote_send);
}
if (self->priv->handle != 0)
@@ -226,6 +237,10 @@ set_property (GObject *object,
self->priv->locally_requested = g_value_get_boolean (value);
break;
+ case PROP_INITIAL_DIRECTION:
+ self->priv->initial_direction = g_value_get_uint (value);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -356,6 +371,15 @@ example_call_stream_class_init (ExampleCallStreamClass *klass)
g_object_class_install_property (object_class, PROP_LOCAL_SENDING_STATE,
param_spec);
+ param_spec = g_param_spec_uint ("initial-direction", "Initial direction",
+ "Direction requested when this stream was created",
+ TP_MEDIA_STREAM_DIRECTION_NONE,
+ TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL,
+ TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (object_class, PROP_INITIAL_DIRECTION,
+ param_spec);
+
signals[SIGNAL_REMOVED] = g_signal_new ("removed",
G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL,
g_cclosure_marshal_VOID__VOID,
diff --git a/spec/Account.xml b/spec/Account.xml
index 13b97f4..fff0232 100644
--- a/spec/Account.xml
+++ b/spec/Account.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
<node name="/Account"
xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
- <tp:copyright>Copyright © 2008-2009 Collabora Ltd.</tp:copyright>
+ <tp:copyright>Copyright © 2008-2012 Collabora Ltd.</tp:copyright>
<tp:copyright>Copyright © 2008-2009 Nokia Corporation</tp:copyright>
<tp:license xmlns="http://www.w3.org/1999/xhtml">
<p>This library is free software; you can redistribute it and/or
@@ -713,6 +713,35 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:docstring>
</property>
+ <property name="Supersedes" tp:name-for-bindings="Supersedes"
+ type="ao" access="readwrite">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A list of the object paths of formerly-used accounts which are
+ superseded by this one.</p>
+
+ <tp:rationale>
+ <p>For instance, if an account is migrated from one connection
+ manager implementation to another, or even from one protocol
+ to another (for instance formerly-proprietary services which
+ can now be accessed via XMPP), log storage services could
+ look for logs under all of the superseded object paths as well
+ as the new object path.</p>
+
+ <p>This is a list because a single user-visible account could be
+ migrated more than once.</p>
+ </tp:rationale>
+
+ <p>If the Account Manager implementation performs an account migration
+ automatically, it SHOULD set this property. If a client performs
+ an account migration, it SHOULD set this property via
+ via the Properties argument of <tp:dbus-ref
+ namespace="ofdT.AccountManager">CreateAccount</tp:dbus-ref>
+ when creating the migrated account. In either case, the value
+ SHOULD include the old account's path, and every path from
+ the old account's Supersedes property.</p>
+ </tp:docstring>
+ </property>
+
</interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Account_Manager.xml b/spec/Account_Manager.xml
index 52cd42a..defa074 100644
--- a/spec/Account_Manager.xml
+++ b/spec/Account_Manager.xml
@@ -145,6 +145,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<tp:dbus-ref
namespace="org.freedesktop.Telepathy.Account">ConnectAutomatically</tp:dbus-ref>,
<tp:dbus-ref
+ namespace="ofdT.Account">Supersedes</tp:dbus-ref>,
+ <tp:dbus-ref
namespace="org.freedesktop.Telepathy.Account">RequestedPresence</tp:dbus-ref>
and
<tp:dbus-ref
diff --git a/spec/Call_Content.xml b/spec/Call_Content.xml
index f738a28..be3376f 100644
--- a/spec/Call_Content.xml
+++ b/spec/Call_Content.xml
@@ -21,7 +21,7 @@
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content">
- <tp:added version="0.19.0">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>This object represents one Content inside a <tp:dbus-ref
diff --git a/spec/Call_Content_Interface_Audio_Control.xml b/spec/Call_Content_Interface_Audio_Control.xml
index e21dae4..0efb488 100644
--- a/spec/Call_Content_Interface_Audio_Control.xml
+++ b/spec/Call_Content_Interface_Audio_Control.xml
@@ -20,7 +20,7 @@
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content.Interface.AudioControl">
- <tp:added version="0.25.1">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Content.Interface.Media"/>
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
diff --git a/spec/Call_Content_Interface_DTMF.xml b/spec/Call_Content_Interface_DTMF.xml
index b7147af..f6e9bda 100644
--- a/spec/Call_Content_Interface_DTMF.xml
+++ b/spec/Call_Content_Interface_DTMF.xml
@@ -19,8 +19,8 @@ License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content.Interface.DTMF">
- <tp:added version="0.UNRELEASED">(draft 1)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Content"/>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
An interface that gives audio Contents the ability to send DTMF events
diff --git a/spec/Call_Content_Interface_Media.xml b/spec/Call_Content_Interface_Media.xml
index fe053e2..3f04df9 100644
--- a/spec/Call_Content_Interface_Media.xml
+++ b/spec/Call_Content_Interface_Media.xml
@@ -22,7 +22,7 @@
<interface
name="org.freedesktop.Telepathy.Call1.Content.Interface.Media">
- <tp:added version="0.23.4">(draft 2)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Content"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
diff --git a/spec/Call_Content_Interface_Video_Control.xml b/spec/Call_Content_Interface_Video_Control.xml
index 992dc23..5a11dcb 100644
--- a/spec/Call_Content_Interface_Video_Control.xml
+++ b/spec/Call_Content_Interface_Video_Control.xml
@@ -20,7 +20,7 @@
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content.Interface.VideoControl">
- <tp:added version="0.21.10">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Content.Interface.Media"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
diff --git a/spec/Call_Content_Media_Description.xml b/spec/Call_Content_Media_Description.xml
index 6ed7d08..88791a2 100644
--- a/spec/Call_Content_Media_Description.xml
+++ b/spec/Call_Content_Media_Description.xml
@@ -21,7 +21,7 @@
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription">
- <tp:added version="0.23.4">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
This object represents a remote Description Offer to which the local
diff --git a/spec/Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml b/spec/Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml
index ec1352e..eb5fbdb 100644
--- a/spec/Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml
+++ b/spec/Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml
@@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription.Interface.RTCPExtendedReports">
- <tp:added version="0.23.4">(draft version, not API-stable)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires
interface="org.freedesktop.Telepathy.Call1.Content.MediaDescription"/>
diff --git a/spec/Call_Content_Media_Description_Interface_RTCP_Feedback.xml b/spec/Call_Content_Media_Description_Interface_RTCP_Feedback.xml
index b3d4736..7a558cc 100644
--- a/spec/Call_Content_Media_Description_Interface_RTCP_Feedback.xml
+++ b/spec/Call_Content_Media_Description_Interface_RTCP_Feedback.xml
@@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription.Interface.RTCPFeedback">
- <tp:added version="0.23.4">(draft version, not API-stable)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Content.MediaDescription"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
diff --git a/spec/Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml b/spec/Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml
index 0f0a5b1..25a77e0 100644
--- a/spec/Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml
+++ b/spec/Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml
@@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription.Interface.RTPHeaderExtensions">
- <tp:added version="0.23.4">(draft version, not API-stable)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Content.MediaDescription"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
diff --git a/spec/Call_Interface_Mute.xml b/spec/Call_Interface_Mute.xml
index 1202383..573efcc 100644
--- a/spec/Call_Interface_Mute.xml
+++ b/spec/Call_Interface_Mute.xml
@@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Interface.Mute" tp:causes-havoc="experimental">
- <tp:added version="0.19.6">(draft version, not API-stable)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:xor-requires>
<tp:requires interface="org.freedesktop.Telepathy.Channel.Type.Call1"/>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Content"/>
diff --git a/spec/Call_Stream.xml b/spec/Call_Stream.xml
index 5f1321e..729dc7e 100644
--- a/spec/Call_Stream.xml
+++ b/spec/Call_Stream.xml
@@ -21,7 +21,7 @@
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Stream">
- <tp:added version="0.19.0">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>One stream inside a <tp:dbus-ref
diff --git a/spec/Call_Stream_Endpoint.xml b/spec/Call_Stream_Endpoint.xml
index b03a154..cf2397b 100644
--- a/spec/Call_Stream_Endpoint.xml
+++ b/spec/Call_Stream_Endpoint.xml
@@ -21,7 +21,7 @@
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Stream.Endpoint">
- <tp:added version="0.19.0">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>This object represents an endpoint for a stream. In a one-to-one
diff --git a/spec/Call_Stream_Interface_Media.xml b/spec/Call_Stream_Interface_Media.xml
index 06c24ff..1356faa 100644
--- a/spec/Call_Stream_Interface_Media.xml
+++ b/spec/Call_Stream_Interface_Media.xml
@@ -21,7 +21,7 @@
</tp:license>
<interface name="org.freedesktop.Telepathy.Call1.Stream.Interface.Media">
- <tp:added version="0.19.0">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Call1.Stream"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
@@ -79,18 +79,6 @@
data, and everything is going swimmingly.
</tp:docstring>
</tp:enumvalue>
- <tp:enumvalue suffix="Pending_Mute" value="4">
- <tp:docstring>
- The streaming implementation has been told to mute sending,
- but it has not yet indicated that it has done so.
- </tp:docstring>
- </tp:enumvalue>
- <tp:enumvalue suffix="Muted" value="5">
- <tp:docstring>
- The streaming implementation has successfully muted sending,
- and the local user's privacy is protected.
- </tp:docstring>
- </tp:enumvalue>
</tp:enum>
<property name="SendingState" tp:name-for-bindings="Sending_State"
@@ -101,7 +89,7 @@
rely on reading this value and listening to
<tp:member-ref>SendingStateChanged</tp:member-ref> to
determine whether it should be sending media or not. It should not
- need to listen to the Mute/Hold interfaces on the Call/Content.
+ need to listen to the Hold interfaces on the Call/Content.
Feedback on success should be given via
<tp:member-ref>CompleteSendingStateChange</tp:member-ref>. Failures
should be reported via <tp:member-ref>ReportSendingFailure</tp:member-ref>.
@@ -418,6 +406,16 @@
and then set the lowest priority candidate as the Raw UDP candidate.
</tp:rationale>
</tp:docstring>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
+ <tp:docstring>
+ The minimal required candidates have not been set. For
+ example, for an RTP protocol, at least one candidate on the
+ component 1 (RTP) must have been set.
+ </tp:docstring>
+ </tp:error>
+ </tp:possible-errors>
</method>
<tp:enum type="u" name="Stream_Transport_Type">
diff --git a/spec/Channel_Interface_Captcha_Authentication.xml b/spec/Channel_Interface_Captcha_Authentication.xml
new file mode 100644
index 0000000..27b1e0c
--- /dev/null
+++ b/spec/Channel_Interface_Captcha_Authentication.xml
@@ -0,0 +1,505 @@
+<?xml version="1.0" ?>
+<node name="/Channel_Interface_Captcha_Authentication"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright> Copyright © 2010-2012 Collabora Limited </tp:copyright>
+ <tp:license xmlns="http://www.w3.org/1999/xhtml">
+ <p>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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+ </tp:license>
+ <interface name="org.freedesktop.Telepathy.Channel.Interface.CaptchaAuthentication1">
+ <tp:added version="0.25.2">(version 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Channel"/>
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal"
+ value="true"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A channel interface for captcha authentication.
+ When this interface appears on a <tp:dbus-ref
+ namespace="ofdT.Channel.Type">ServerAuthentication</tp:dbus-ref>
+ channel, it represents authentication with the server. In future,
+ it could also be used to authenticate with secondary services,
+ or even to authenticate end-to-end connections with contacts. As a result,
+ this interface does not REQUIRE <tp:dbus-ref namespace="ofdT.Channel.Type"
+ >ServerAuthentication</tp:dbus-ref> to allow for a potential future
+ Channel.Type.PeerAuthentication interface.</p>
+
+ <p>In any protocol that requires a captcha, the connection manager can
+ use this channel to let a user interface carry out a simple captcha
+ handshake with it, as a way to test the user is human
+ interactively.</p>
+
+ <p>For channels managed by a
+ <tp:dbus-ref namespace="ofdT">ChannelDispatcher</tp:dbus-ref>,
+ only the channel's <tp:dbus-ref
+ namespace="ofdT.Client">Handler</tp:dbus-ref> may call the
+ methods on this interface. Other clients MAY observe the
+ authentication process by watching its signals and properties.</p>
+
+ <p>The most commonly used form of captcha challenge is OCR (recognition
+ of distorted letters or words in an image), but for accessibility
+ reasons, this interface also allows various other types of challenge,
+ such as plain-text questions or recognition of words in audio. Its
+ structure is modelled on XMPP's
+ <a href="http://xmpp.org/extensions/xep-0158.html">XEP-0158</a>,
+ but can be used with other protocols by mapping their semantics
+ into those used in XMPP.</p>
+
+ <tp:rationale>
+ <p>It is important to support multiple types of captcha
+ challenge to avoid discriminating against certain users; for
+ instance, blind or partially-sighted users cannot be expected
+ to answer an OCR challenge.</p>
+
+ <p>XEP-0158 supports a superset of all other known protocols' captcha
+ interfaces, and is sufficiently elaborate that we expect it will
+ continue to do so.</p>
+
+ <p>There can only be one Handler, which is a good fit for the
+ question/answer model implied by captchas.</p>
+ </tp:rationale>
+ </tp:docstring>
+
+ <tp:struct name="Captcha_Info" array-name="Captcha_Info_List">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A struct containing information regarding a single captcha
+ mechanism.</p>
+ </tp:docstring>
+ <tp:member type="u" name="ID">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The ID with which to reference this captcha method
+ when retrieving its data and answering it.
+ They are unique within this channel instance only.</p>
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="s" name="Type">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The type of challenge
+ <a href="http://xmpp.org/extensions/xep-0158.html#challenge">
+ as defined by XEP-0158</a>. For instance, the commonly-used
+ "type the letters/words you see in this image" challenge is
+ represented by <code>ocr</code></p>
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="s" name="Label">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A human-readable label for the challenge, as defined in
+ XEP-0158.</p>
+
+ <p>If the server does not supply a label for a challenge of type
+ other than <code>qa</code>, connection managers SHOULD set Label
+ to an empty string instead of generating their own text.
+ If the Label is an empty string, the Handler SHOULD replace
+ it with a generic label in the user's locale, such as
+ the strings suggested in XEP-0158 (for instance,
+ <code>Enter the text you see</code> for <code>ocr</code>
+ challenges). The Handler MAY use those generic labels
+ in any case, as per
+ <a href="http://xmpp.org/extensions/xep-0158.html#i18n">the
+ Internationalization Considerations section of XEP-0158</a>.</p>
+
+ <tp:rationale>
+ <p>Connection managers are not usually localized, so text
+ generated by the connection manager would be in English,
+ regardless of the user's locale. The Handler is better-placed
+ to generate a generic Label in the user's locale.</p>
+ </tp:rationale>
+
+ <p>For challenges of type <code>qa</code>, the Label is a plain-text
+ question for the user to answer. The connection manager
+ SHOULD NOT provide an empty Label; if it does, the Handler
+ SHOULD treat that challenge as impossible, and SHOULD NOT
+ attempt to display it.</p>
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="u" name="Flags" tp:type="Captcha_Flags">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>One flag defined: Required. Most captchas will have no flags.</p>
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="as" name="Available_MIME_Types">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A list of MIME types the server is offering to provide
+ for this captcha method.</p>
+ </tp:docstring>
+ </tp:member>
+ </tp:struct>
+
+ <tp:mapping name="Captcha_Answers">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ A mapping of captcha IDs to answer strings.
+ </tp:docstring>
+ <tp:member type="u" name="ID">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ The ID of the captcha to which the associated
+ answer string is answering.
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="s" name="Answer">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ The answer string to answer the captcha referenced
+ by the associated ID.
+ </tp:docstring>
+ </tp:member>
+ </tp:mapping>
+
+ <property name="CanRetryCaptcha"
+ tp:name-for-bindings="Can_Retry_Captcha"
+ type="b" access="read" tp:immutable="yes">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>If true, <tp:member-ref>GetCaptchas</tp:member-ref>
+ can be expected to return new captcha information when
+ in the Local_Pending state. If false,
+ <tp:member-ref>GetCaptchas</tp:member-ref> will return
+ NotAvailable on subsequent calls.</p>
+
+ <tp:rationale>
+ <p>Refreshing the captcha isn't required to work, although
+ some protocols and implementations allow it. This is usually
+ done in case a given captcha is unintelligible.</p>
+ </tp:rationale>
+ </tp:docstring>
+ </property>
+
+ <property type="u" tp:type="Captcha_Status" access="read"
+ name="CaptchaStatus" tp:name-for-bindings="Captcha_Status">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The current status of this channel.</p>
+
+ <p>Because only the Handler should call methods on this interface,
+ the Handler MAY reduce round-trips by not fetching the initial
+ value of this property, and instead assume that is initially
+ Local_Pending.</p>
+
+ <tp:rationale>
+ <p>This assumption normally avoids the need to call GetAll(),
+ since the values of <tp:member-ref>CaptchaError</tp:member-ref>
+ and <tp:member-ref>CaptchaErrorDetails</tp:member-ref>
+ are also implied by this assumption, and the only other
+ property is <tp:member-ref>CanRetryCaptcha</tp:member-ref>,
+ which is immutable.</p>
+ </tp:rationale>
+ </tp:docstring>
+ </property>
+
+ <property type="s" tp:type="DBus_Error_Name" access="read"
+ name="CaptchaError" tp:name-for-bindings="Captcha_Error">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The reason for the <tp:member-ref>CaptchaStatus</tp:member-ref>, or
+ an empty string if the state is neither Try_Again nor Failed.</p>
+
+ <p>Typical values: "", Cancelled, AuthenticationFailed,
+ CaptchaNotSupported</p>
+
+ <p>In particular, an ordinary authentication failure (as would
+ be produced for an incorrect answer) SHOULD be represented by
+ <tp:error-ref>AuthenticationFailed</tp:error-ref>,
+ cancellation by the user's request SHOULD be represented
+ by <tp:error-ref>Cancelled</tp:error-ref>, cancellation due
+ to the inability to display the captcha to the user or otherwise
+ answer it SHOULD be represented by
+ <tp:error-ref>CaptchaNotSupported</tp:error-ref>, and
+ cancellation by a local process due to inconsistent or invalid
+ challenges from the server SHOULD be represented by
+ <tp:error-ref>ServiceConfused</tp:error-ref>.</p>
+
+ <p>If this interface appears on a <tp:dbus-ref
+ namespace="ofdT.Channel.Type">ServerAuthentication</tp:dbus-ref>
+ channel, and connection to the server fails with an authentication
+ failure, this error code SHOULD be copied into the
+ <tp:dbus-ref
+ namespace="ofdT">Connection.ConnectionError</tp:dbus-ref>
+ signal.</p>
+ </tp:docstring>
+ </property>
+
+ <property name="CaptchaErrorDetails"
+ tp:name-for-bindings="Captcha_Error_Details"
+ access="read" type="a{sv}" tp:type="String_Variant_Map">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>If <tp:member-ref>CaptchaError</tp:member-ref> is non-empty,
+ any additional information about the last
+ disconnection; otherwise, the empty map. The keys and values are
+ the same as for the second argument of
+ <tp:dbus-ref
+ namespace="ofdT">Connection.ConnectionError</tp:dbus-ref>.</p>
+
+ <p>If this interface appears on a <tp:dbus-ref
+ namespace="ofdT.Channel.Type">ServerAuthentication</tp:dbus-ref>
+ channel, and connection to the server fails with an authentication
+ failure, these details SHOULD be copied into the
+ <tp:dbus-ref
+ namespace="ofdT">Connection.ConnectionError</tp:dbus-ref>
+ signal.</p>
+ </tp:docstring>
+ </property>
+
+ <method name="GetCaptchas" tp:name-for-bindings="Get_Captchas">
+ <arg direction="out" name="Captcha_Info"
+ type="a(ussuas)" tp:type="Captcha_Info[]">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ Information about each of the available captcha methods.
+ </tp:docstring>
+ </arg>
+ <arg direction="out" name="Number_Required" type="u">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ The number of captcha methods required to be answered
+ in order to successfully complete this captcha challenge
+ (most frequently 1, but XMPP allows servers to demand that
+ more than one captcha is answered).
+ </tp:docstring>
+ </arg>
+ <arg direction="out" name="Language" type="s" tp:type="Language_Tag">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ The language of each Label in Captcha_Info if available,
+ for instance en_US, or "" if unknown.
+ </tp:docstring>
+ </arg>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Gets information regarding each of the captcha methods
+ available and which and how many need to be successfully answered</p>
+
+ <p>To call this method successfully, the state must be Local_Pending
+ or Try_Again. If it is Local_Pending, it remains Local_Pending. If
+ called more than once while in Local_Pending state, or if the state
+ is Try_Again, this method fetches a new set of captcha challenges,
+ if possible, and the state returns to Local_Pending.</p>
+
+ <tp:rationale>
+ <p>For instance, you could call GetCaptchas again from Local_Pending
+ state if the user indicates that they can't understand the
+ initially-offered captcha.</p>
+
+ <p>This is a method, not a property, so that it can be used to
+ fetch more than one set of captcha challenges, and so that
+ change notification is not required. Only the Handler should
+ call this method and calling GetAll would not reduce round-trips,
+ so the usual reasons to prefer a property do not apply here.</p>
+ </tp:rationale>
+ </tp:docstring>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
+ <tp:docstring>
+ Either the state is not Local_Pending or Try_Again, or it has
+ already been called and
+ <tp:member-ref>CanRetryCaptcha</tp:member-ref> is False.
+ </tp:docstring>
+ </tp:error>
+ <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
+ </tp:possible-errors>
+ </method>
+
+ <method name="GetCaptchaData" tp:name-for-bindings="Get_Captcha_Data">
+ <arg direction="in" name="ID" type="u">
+ <tp:docstring>
+ The ID of the captcha of which to retrieve data.
+ </tp:docstring>
+ </arg>
+ <arg direction="in" name="Mime_Type" type="s">
+ <tp:docstring>
+ MIME type picked by the Handler, chosen from the list of MIME
+ types received in <tp:member-ref>GetCaptchas</tp:member-ref>.
+ <tp:rationale>
+ XEP-0158 allows the same captcha to be made available in
+ multiple formats, for instance the same spoken question as
+ audio/x-wav, application/ogg and audio/speex.
+ </tp:rationale>
+ </tp:docstring>
+ </arg>
+ <arg direction="out" name="Captcha_Data" type="ay">
+ <tp:docstring>
+ Captcha data as requested.
+ </tp:docstring>
+ </arg>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Fetch and return the captcha data. In protocols
+ where captchas are downloaded out-of-band (for instance via HTTP),
+ the connection manager is expected to do so.</p>
+ <p>Returns an empty array if the type was "qa"</p>
+ <tp:rationale>
+ <p>If audio-based and image-based captchas are both available,
+ we don't want to waste time downloading the audio until/unless
+ the user asks to hear it. The extra D-Bus round-trips are not
+ a problem, since they are expected to be quick compared with
+ the time taken for the user to solve the captcha.</p>
+ </tp:rationale>
+ </tp:docstring>
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
+ <tp:docstring>
+ The state is not in Local_Pending or
+ <tp:member-ref>GetCaptchas</tp:member-ref> had never been called.
+ </tp:docstring>
+ </tp:error>
+ <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
+ </tp:possible-errors>
+ </method>
+
+ <method name="AnswerCaptchas" tp:name-for-bindings="Answer_Captchas">
+ <arg direction="in" name="Answers"
+ type="a{us}" tp:type="Captcha_Answers">
+ <tp:docstring>
+ The mapping of captcha IDs to answer strings.
+ </tp:docstring>
+ </arg>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Answer as many captchas as desired and/or required.</p>
+ <p>Callable in state Local_Pending only. State changes to
+ Remote_Pending.</p>
+ </tp:docstring>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
+ <tp:docstring>
+ The state is not in Local_Pending.
+ </tp:docstring>
+ </tp:error>
+ <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
+ </tp:possible-errors>
+ </method>
+
+ <method name="CancelCaptcha" tp:name-for-bindings="Cancel_Captcha">
+ <arg direction="in" name="Reason"
+ type="u" tp:type="Captcha_Cancel_Reason">
+ <tp:docstring>
+ Reason for cancelling. This MAY be used to choose an error
+ response to the remote server, and SHOULD also be reflected
+ in the <tp:member-ref>CaptchaError</tp:member-ref>.
+ </tp:docstring>
+ </arg>
+ <arg direction="in" name="Debug_Message" type="s">
+ <tp:docstring>
+ A textual description of the reason for cancelling, supplied
+ by the Handler. This message SHOULD NOT be sent to the remote
+ server, but SHOULD be copied into the 'debug-message' field
+ of the <tp:member-ref>CaptchaErrorDetails</tp:member-ref> and
+ <tp:dbus-ref namespace="ofdT.Connection">ConnectionError</tp:dbus-ref>.
+ </tp:docstring>
+ </arg>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Cancel. State changes to Failed with error NotAvailable or
+ Cancelled if it isn't already Failed. All you can do now is
+ to close the channel.</p>
+ </tp:docstring>
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
+ <tp:docstring>
+ The current state is Failed.
+ </tp:docstring>
+ </tp:error>
+ </tp:possible-errors>
+ </method>
+
+ <tp:flags name="Captcha_Flags" type="u">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Extra flags to include with Captcha information</p>
+ </tp:docstring>
+
+ <tp:flag suffix="Required" value="1">
+ <tp:docstring>
+ This captcha mechanism is required to be successfully
+ answered in order to pass this captcha challenge.
+ </tp:docstring>
+ </tp:flag>
+ </tp:flags>
+
+ <tp:enum name="Captcha_Cancel_Reason" type="u">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A reason why captcha authentication was aborted by the client.</p>
+ </tp:docstring>
+
+ <tp:enumvalue suffix="User_Cancelled" value="0">
+ <tp:docstring>
+ The user aborted the authentication. If this is used, the
+ <tp:member-ref>CaptchaError</tp:member-ref> SHOULD be set to
+ <tp:error-ref>Cancelled</tp:error-ref>
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Not_Supported" value="1">
+ <tp:docstring>
+ The Handler doesn't support the given/required captcha types.
+ If this is used, the <tp:member-ref>CaptchaError</tp:member-ref>
+ SHOULD be set to <tp:error-ref>CaptchaNotSupported</tp:error-ref>.
+ This SHOULD also be used if
+ <tp:dbus-ref namespace="ofdT.Channel">Close</tp:dbus-ref> is called
+ before <tp:member-ref>CancelCaptcha</tp:member-ref>.
+ <tp:rationale>
+ If no Handler supports captcha channels,
+ the ChannelDispatcher will just call
+ <tp:dbus-ref namespace="ofdT.Channel">Close</tp:dbus-ref>,
+ because it has no knowledge of specific channel types.
+ </tp:rationale>
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Service_Confused" value="2">
+ <tp:docstring>
+ The Handler doesn't understand the captcha data received. The
+ challenger may be sending gibberish.
+ If this is used, the <tp:member-ref>CaptchaError</tp:member-ref>
+ SHOULD be set to <tp:error-ref>ServiceConfused</tp:error-ref>.
+ </tp:docstring>
+ </tp:enumvalue>
+ </tp:enum>
+
+ <tp:enum name="Captcha_Status" type="u" plural="Captcha_Statuses">
+ <tp:enumvalue suffix="Local_Pending" value="0">
+ <tp:docstring>
+ The challenge/response exchange is in progress and waiting for
+ a local action. Call <tp:member-ref>AnswerCaptchas</tp:member-ref>
+ to go to the Remote_Pending state, or call
+ <tp:member-ref>CancelCaptcha</tp:member-ref> followed by
+ <tp:dbus-ref namespace="ofdT.Channel">Close</tp:dbus-ref>
+ to give up.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Remote_Pending" value="1">
+ <tp:docstring>
+ The challenge/response exchange is in progress and waiting for
+ a response from the server. Wait for a reply from the server,
+ which will result in the Succeeded, Try_Again, or Failed state,
+ or call <tp:member-ref>CancelCaptcha</tp:member-ref> followed by
+ <tp:dbus-ref namespace="ofdT.Channel">Close</tp:dbus-ref>
+ to give up.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Succeeded" value="2">
+ <tp:docstring>
+ Everyone is happy. Connection to the server will proceed as soon as
+ this state is reached. There is nothing useful to do in this state
+ except to call <tp:dbus-ref
+ namespace="ofdT.Channel">Close</tp:dbus-ref>
+ to close the channel.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Try_Again" value="3">
+ <tp:docstring>
+ The server has indicated an authentication failure.
+ Call <tp:member-ref>GetCaptchas</tp:member-ref> again to get
+ a new captcha, or
+ <tp:member-ref>CancelCaptcha</tp:member-ref> followed by
+ <tp:dbus-ref namespace="ofdT.Channel">Close</tp:dbus-ref>
+ to give up.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Failed" value="4">
+ <tp:docstring>
+ Authentication has failed in some way. There is nothing
+ useful to do in this state except to close the channel with
+ <tp:dbus-ref namespace="ofdT.Channel">Close</tp:dbus-ref>.
+ </tp:docstring>
+ </tp:enumvalue>
+ </tp:enum>
+
+ </interface>
+</node>
+<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Channel_Interface_DTMF.xml b/spec/Channel_Interface_DTMF.xml
index e328d67..00e3a54 100644
--- a/spec/Channel_Interface_DTMF.xml
+++ b/spec/Channel_Interface_DTMF.xml
@@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<tp:requires interface="org.freedesktop.Telepathy.Channel.Type.Call1"/>
</tp:xor-requires>
- <tp:changed version="0.UNRELEASED">The only part of this spec that should
+ <tp:changed version="0.25.2">The only part of this spec that should
be used with a Call1 channel is the "InitialTones" property.
</tp:changed>
diff --git a/spec/Channel_Type_Call.xml b/spec/Channel_Type_Call.xml
index d151988..383db25 100644
--- a/spec/Channel_Type_Call.xml
+++ b/spec/Channel_Type_Call.xml
@@ -18,7 +18,7 @@ License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:license>
<interface name="org.freedesktop.Telepathy.Channel.Type.Call1">
- <tp:added version="0.19.0">(draft 1)</tp:added>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Channel"/>
<tp:requires
@@ -512,6 +512,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
call.
</tp:docstring>
</arg>
+ <arg direction="in" name="InitialDirection" type="u"
+ tp:type="Media_Stream_Direction">
+ <tp:docstring>
+ The requested initial direction of the new content.
+ </tp:docstring>
+ </arg>
<arg direction="out" name="Content" type="o">
<tp:docstring>
Path to the newly-created <tp:dbus-ref
@@ -731,25 +737,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:docstring>
</tp:flag>
- <tp:flag suffix="Locally_Muted" value="2">
- <tp:docstring>
- The call has been muted by the local user, e.g. using the
- <tp:dbus-ref namespace="ofdT.Call1.Interface"
- >Mute</tp:dbus-ref> interface. This flag SHOULD only
- be set if there is at least one Content, and all Contents
- are locally muted (for the same reason as Locally_Held).
-
- <tp:rationale>
- This flag exists to provide a simplified verson of <tp:dbus-ref
- namespace="ofdT.Call1.Interface.Mute"
- >MuteStateChanged</tp:dbus-ref>,
- to reduce the number of signals that need to be
- listened to by a simple UI.
- </tp:rationale>
- </tp:docstring>
- </tp:flag>
-
- <tp:flag suffix="Locally_Ringing" value="4">
+ <tp:flag suffix="Locally_Ringing" value="2">
<tp:docstring>
This flag exists for observability of the
<tp:member-ref>SetRinging</tp:member-ref> method (e.g. so that
@@ -760,7 +748,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:docstring>
</tp:flag>
- <tp:flag suffix="Locally_Queued" value="8">
+ <tp:flag suffix="Locally_Queued" value="4">
<tp:docstring>
This flag exists for observability of the
<tp:member-ref>SetQueued</tp:member-ref> method. It should be set
@@ -770,7 +758,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:docstring>
</tp:flag>
- <tp:flag suffix="Forwarded" value="16">
+ <tp:flag suffix="Forwarded" value="8">
<tp:docstring>
The initiator of the call originally called a contact other than the
current recipient of the call, but the call was then forwarded or
@@ -780,7 +768,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:docstring>
</tp:flag>
- <tp:flag suffix="Clearing" value="32">
+ <tp:flag suffix="Clearing" value="16">
<tp:docstring>
This flag only occurs when the CallState is Ended. The call with
this flag set has ended, but not all resources corresponding to the
@@ -843,6 +831,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
The value of this key has the same units and scale as
<tp:dbus-ref namespace="ofdT.Connection.Interface.Balance">AccountBalance</tp:dbus-ref>.
</dd>
+
+ <dt>forwarded-to - u</dt>
+ <dd>Optionally included when the
+ <tp:member-ref>CallStateReason</tp:member-ref> is
+ Forwarded. It indicates the handle to whom the Call was
+ forwarded.</dd>
+
+ <dt>forwarded-to-id - s</dt>
+ <dd>The string that would result from inspecting the
+ <code>forwarded-to</code> key
+ (i.e. the contact's identifier in the IM protocol).</dd>
</dl>
</tp:docstring>
</property>
@@ -921,9 +920,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<tp:enumvalue suffix="Forwarded" value="3">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>The call was forwarded. If known, the handle of the contact
- the call was forwarded to will be indicated by the Actor member
- of a <tp:type>Call_State_Reason</tp:type> struct.</p>
+ <p>The call was forwarded. If known, the handle of the
+ contact the call was forwarded to will be indicated by the
+ "forwarded-to" member of a
+ <tp:member-ref>CallStateDetails</tp:member-ref> dictionnary
+ in the <tp:member-ref>CallStateChanged</tp:member-ref>
+ signal.</p>
</tp:docstring>
</tp:enumvalue>
@@ -1215,21 +1217,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</tp:docstring>
</tp:flag>
- <tp:flag suffix="Muted" value="4">
- <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>The call member has muted their participation in this call. Note
- that many protocols will not signal this flag, so clients should
- not rely on it being set.</p>
-
- <tp:rationale>
- <p>This is a flag per member, not a flag for the call as a whole,
- because in conference calls, any member could mute their own
- streams.</p>
- </tp:rationale>
- </tp:docstring>
- </tp:flag>
-
- <tp:flag suffix="Conference_Host" value="8">
+ <tp:flag suffix="Conference_Host" value="4">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
This contact has merged this call into a conference. Note that GSM
provides a notification when the remote party merges a call into a
diff --git a/spec/Connection_Interface_Addressing.xml b/spec/Connection_Interface_Addressing.xml
index fe3783c..129e671 100644
--- a/spec/Connection_Interface_Addressing.xml
+++ b/spec/Connection_Interface_Addressing.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<node name="/Connection_Interface_Addressing" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
- <tp:copyright> Copyright (C) 2010 Collabora Limited </tp:copyright>
+ <tp:copyright> Copyright (C) 2010-2012 Collabora Limited </tp:copyright>
<tp:license xmlns="http://www.w3.org/1999/xhtml">
<p>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
@@ -16,14 +16,10 @@
along with this library; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
</tp:license>
- <interface name="org.freedesktop.Telepathy.Connection.Interface.Addressing1"
- tp:causes-havoc="experimental">
+ <interface name="org.freedesktop.Telepathy.Connection.Interface.Addressing1">
<tp:requires interface="org.freedesktop.Telepathy.Connection"/>
<tp:requires interface="org.freedesktop.Telepathy.Connection.Interface.Contacts"/>
- <tp:added version="0.19.12">(as draft)</tp:added>
- <tp:changed version="0.25.1">Both methods now return two dictionaries.</tp:changed>
- <tp:changed version="0.25.UNRELEASED">Replaced DRAFT with a version number
- (still keeping the causes-havoc annotation)</tp:changed>
+ <tp:added version="0.25.2">(as stable API)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>This interface deals with the multiple address types that can
refer to the same contact, such as vCard fields and URIs.</p>
@@ -203,11 +199,20 @@
<tp:mapping name="VCard_Field_Address_Map" array-name="">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>A mapping of vCard fields and addresses that repreent
- the given contact.</p>
+ <p>A mapping of vCard fields and addresses equivalent to a
+ particular contact's protocol identifier. For instance,
+ on XMPP this would contain <code>x-jabber</code> for all
+ contacts, and <code>x-facebook-id</code> for contacts on
+ Facebook's server.</p>
</tp:docstring>
- <tp:member type="s" name="VCard_Field"/>
- <tp:member type="s" name="Address"/>
+ <tp:member type="s" name="VCard_Field">
+ <tp:docstring>A vCard field, such as
+ <code>x-jabber</code>.</tp:docstring>
+ </tp:member>
+ <tp:member type="s" name="Address">
+ <tp:docstring>The value of that vCard field for the
+ contact.</tp:docstring>
+ </tp:member>
</tp:mapping>
<tp:contact-attribute name="addresses" type="a{ss}"
diff --git a/spec/Connection_Interface_Contact_List.xml b/spec/Connection_Interface_Contact_List.xml
index 66834da..50a2634 100644
--- a/spec/Connection_Interface_Contact_List.xml
+++ b/spec/Connection_Interface_Contact_List.xml
@@ -844,7 +844,7 @@
<property name="DownloadAtConnection" type="b" access="read"
tp:name-for-bindings="Download_At_Connection"
tp:is-connection-parameter='yes'>
- <tp:added version="0.UNRELEASED"/>
+ <tp:added version="0.25.2"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>If true, the contact list is automatically downloaded at
connection. If false, the contact list is only downloaded
@@ -1110,7 +1110,7 @@
</method>
<method name="Download" tp:name-for-bindings="Download">
- <tp:added version="0.UNRELEASED"/>
+ <tp:added version="0.25.2"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Download the contact list from the server. If
<tp:member-ref>DownloadAtConnection</tp:member-ref> is true,
diff --git a/spec/Connection_Manager.xml b/spec/Connection_Manager.xml
index 10ade57..9782db5 100644
--- a/spec/Connection_Manager.xml
+++ b/spec/Connection_Manager.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<node name="/Connection_Manager" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
- <tp:copyright>Copyright (C) 2005-2008 Collabora Limited</tp:copyright>
+ <tp:copyright>Copyright (C) 2005-2012 Collabora Limited</tp:copyright>
<tp:copyright>Copyright (C) 2005-2008 Nokia Corporation</tp:copyright>
<tp:copyright>Copyright (C) 2006 INdT</tp:copyright>
<tp:license xmlns="http://www.w3.org/1999/xhtml">
@@ -603,7 +603,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<dd>ASCII decimal integer, optionally prefixed with "-"</dd>
<dt>d (double-precision floating point)</dt>
<dd>ASCII decimal number</dd>
- <dt>as (array of string)</dt>
+ <dt>as (array of string), ao (array of object path)</dt>
<dd>A sequence of UTF-8 strings each followed by a semicolon, with
any semicolons they contain escaped with a backslash
(the "localestrings" type from the Desktop Entry Specification)</dd>
@@ -626,6 +626,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
CMs with no .manager file was not explicitly required.</tp:changed>
<tp:changed version="0.17.16">Prior to version 0.17.16 the serialization
of string arrays (signature 'as') was not defined</tp:changed>
+ <tp:changed version="0.25.2">Prior to version 0.25.2 the
+ serialization of object-path arrays (signature 'ao') was not
+ defined</tp:changed>
</interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/all.xml b/spec/all.xml
index 72e4c49..9e99d70 100644
--- a/spec/all.xml
+++ b/spec/all.xml
@@ -3,9 +3,9 @@
xmlns:xi="http://www.w3.org/2001/XInclude">
<tp:title>Telepathy D-Bus Interface Specification</tp:title>
-<tp:version>0.25.1.1</tp:version>
+<tp:version>0.25.2</tp:version>
-<tp:copyright>Copyright © 2005-2011 Collabora Limited</tp:copyright>
+<tp:copyright>Copyright © 2005-2012 Collabora Limited</tp:copyright>
<tp:copyright>Copyright © 2005-2011 Nokia Corporation</tp:copyright>
<tp:copyright>Copyright © 2006 INdT</tp:copyright>
@@ -168,6 +168,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Channel_Interface_Room.xml"/>
<xi:include href="Channel_Interface_Room_Config.xml"/>
<xi:include href="Channel_Interface_SASL_Authentication.xml"/>
+ <xi:include href="Channel_Interface_Captcha_Authentication.xml"/>
<xi:include href="Channel_Interface_Credentials_Storage.xml"/>
<xi:include href="Channel_Interface_Securable.xml"/>
<xi:include href="Channel_Interface_Service_Point.xml"/>
diff --git a/spec/errors.xml b/spec/errors.xml
index 7726f3c..d802152 100644
--- a/spec/errors.xml
+++ b/spec/errors.xml
@@ -637,6 +637,16 @@
</tp:docstring>
</tp:error>
+ <tp:error name="Captcha Not Supported">
+ <tp:added version="0.25.2"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Raised if the <tp:dbus-ref
+ namespace="ofdT.Channel.Interface">CaptchaAuthentication1</tp:dbus-ref>
+ Handler either has no UI to present captchas, or it does, but wasn't
+ able to answer any of the captchas given.</p>
+ </tp:docstring>
+ </tp:error>
+
<tp:copyright>Copyright © 2005-2010 Collabora Limited</tp:copyright>
<tp:copyright>Copyright © 2005-2009 Nokia Corporation</tp:copyright>
<tp:license xmlns="http://www.w3.org/1999/xhtml">
diff --git a/spec/generic-types.xml b/spec/generic-types.xml
index 014f8ad..2676e45 100644
--- a/spec/generic-types.xml
+++ b/spec/generic-types.xml
@@ -212,4 +212,12 @@
</tp:member>
</tp:mapping>
+ <tp:simple-type name="Language_Tag" type="s">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ A language tag as defined in
+ <a href="https://www.rfc-editor.org/rfc/bcp/bcp47.txt">IETF BCP 47</a>,
+ such as "en_US".
+ </tp:docstring>
+ </tp:simple-type>
+
</tp:generic-types>
diff --git a/telepathy-glib/channel.xml b/telepathy-glib/channel.xml
index 3a1c2eb..1da1fd9 100644
--- a/telepathy-glib/channel.xml
+++ b/telepathy-glib/channel.xml
@@ -6,6 +6,7 @@
<xi:include href="../spec/Channel.xml"/>
+<xi:include href="../spec/Channel_Type_Call.xml"/>
<xi:include href="../spec/Channel_Type_Contact_List.xml"/>
<xi:include href="../spec/Channel_Type_Contact_Search.xml"/>
<xi:include href="../spec/Channel_Type_File_Transfer.xml"/>
@@ -20,6 +21,7 @@
<xi:include href="../spec/Channel_Interface_Anonymity.xml"/>
<xi:include href="../spec/Channel_Interface_Call_State.xml"/>
+<xi:include href="../spec/Channel_Interface_Captcha_Authentication.xml"/>
<xi:include href="../spec/Channel_Interface_Chat_State.xml"/>
<xi:include href="../spec/Channel_Interface_Conference.xml"/>
<xi:include href="../spec/Channel_Interface_Destroyable.xml"/>
diff --git a/telepathy-glib/connection.xml b/telepathy-glib/connection.xml
index 837b45f..c72fcb8 100644
--- a/telepathy-glib/connection.xml
+++ b/telepathy-glib/connection.xml
@@ -6,6 +6,7 @@
<xi:include href="../spec/Connection.xml"/>
+<xi:include href="../spec/Connection_Interface_Addressing.xml"/>
<xi:include href="../spec/Connection_Interface_Aliasing.xml"/>
<xi:include href="../spec/Connection_Interface_Anonymity.xml"/>
<xi:include href="../spec/Connection_Interface_Avatars.xml"/>
diff --git a/telepathy-glib/errors.c b/telepathy-glib/errors.c
index 86c5720..2525687 100644
--- a/telepathy-glib/errors.c
+++ b/telepathy-glib/errors.c
@@ -247,6 +247,10 @@
* Raised when the call's streaming implementation has some kind of internal
* error.
* Since: 0.15.6
+ * @TP_ERROR_CAPTCHA_NOT_SUPPORTED:
+ * <code>org.freedesktop.Telepathy.Error.Media.CaptchaNotSupported</code>:
+ * Raised if no UI is available to present captchas, or if one is
+ * available but it is unable to answer any of the captchas given.
*
* Enumerated type representing the Telepathy D-Bus errors.
*/
diff --git a/telepathy-glib/errors.h b/telepathy-glib/errors.h
index 81dc229..a24e69c 100644
--- a/telepathy-glib/errors.h
+++ b/telepathy-glib/errors.h
@@ -93,6 +93,7 @@ typedef enum {
TP_ERROR_MEDIA_CODECS_INCOMPATIBLE, /*< nick=Media.CodecsIncompatible >*/
TP_ERROR_MEDIA_UNSUPPORTED_TYPE, /*< nick=Media.UnsupportedType >*/
TP_ERROR_MEDIA_STREAMING_ERROR, /*< nick=Media.StreamingError >*/
+ TP_ERROR_CAPTCHA_NOT_SUPPORTED, /*< nick=CaptchaNotSupported >*/
} TpError;
const gchar *tp_error_get_dbus_name (TpError error);
diff --git a/telepathy-glib/extra-gtkdoc.h b/telepathy-glib/extra-gtkdoc.h
index 4a07de7..e265695 100644
--- a/telepathy-glib/extra-gtkdoc.h
+++ b/telepathy-glib/extra-gtkdoc.h
@@ -951,7 +951,9 @@
* @short_description: client-side wrappers for authentication channels
*
* The ServerAuthentication channel type represents a request for client/UI
- * processes to carry out authentication with a server.
+ * processes to carry out authentication with a server, including password
+ * authentication (prove that you are who you say you are) and captcha
+ * authentication (prove that you are not a bot).
*
* Since: 0.13.7
*/
@@ -968,6 +970,10 @@
* allows providing a simple password to the connection manager for it to
* use with SASL or non-SASL mechanisms.
*
+ * The CaptchaAuthentication interface (since 0.17.UNRELEASED) allows
+ * interactive captcha-solving so that the user can prove that they are not
+ * a bot, on protocols requiring this.
+ *
* Since: 0.13.7
*/
@@ -995,3 +1001,38 @@
*
* Since: 0.17.1
*/
+
+/**
+ * SECTION:connection-addressing
+ * @title: Connection Addressing interface
+ * @short_description: client-side wrappers for the Addressing interface
+ * @see_also: #TpConnection
+ *
+ * An interface for connections in protocols where contacts' unique
+ * identifiers can be expressed as vCard fields and/or URIs.
+ *
+ * Since: 0.17.UNRELEASED
+ */
+
+/**
+ * SECTION:channel-cli-call
+ * @title: Call channel type
+ * @short_description: client-side wrappers for the Call channel type
+ * @see_also: #TpChannel
+ *
+ * This section documents the auto-generated C wrappers for the Call
+ * channel type.
+ *
+ * Call channels represent real-time audio or video streaming, including
+ * voice over IP, webcams, and telephony.
+ */
+
+/**
+ * SECTION:svc-channel-call
+ * @title: Service-side Call channel type
+ * @short_description: GInterface to implement Call channels
+ * @see_also: #TpBaseChannel
+ *
+ * Call channels represent real-time audio or video streaming, including
+ * voice over IP, webcams, and telephony.
+ */
diff --git a/tests/dbus/call-example.c b/tests/dbus/call-example.c
index 110dc5d..c444593 100644
--- a/tests/dbus/call-example.c
+++ b/tests/dbus/call-example.c
@@ -622,10 +622,18 @@ test_basics (Test *test,
g_assert_no_error (test->error);
g_assert_cmpuint (test->uint_return, ==, FUTURE_SENDING_STATE_SENDING);
- /* AddContent with bad content-type must fail */
+ /* AddContent with bad content-type or direction must fail */
future_cli_channel_type_call_call_add_content (test->chan, -1,
- "", 31337, added_content_cb, test, NULL, NULL);
+ "", 31337, TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL,
+ added_content_cb, test, NULL, NULL);
+ g_main_loop_run (test->mainloop);
+ g_assert (test->error != NULL);
+ g_clear_error (&test->error);
+
+ future_cli_channel_type_call_call_add_content (test->chan, -1,
+ "", TP_MEDIA_STREAM_TYPE_VIDEO, 31337,
+ added_content_cb, test, NULL, NULL);
g_main_loop_run (test->mainloop);
g_assert (test->error != NULL);
g_clear_error (&test->error);
@@ -633,8 +641,8 @@ test_basics (Test *test,
/* AddContent again, to add a video stream */
future_cli_channel_type_call_call_add_content (test->chan, -1,
- "", TP_MEDIA_STREAM_TYPE_VIDEO, added_content_cb,
- test, NULL, NULL);
+ "", TP_MEDIA_STREAM_TYPE_VIDEO, TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL,
+ added_content_cb, test, NULL, NULL);
g_main_loop_run (test->mainloop);
g_assert_no_error (test->error);