1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
<?xml version="1.0" ?>
<node name="/Call_Content"
xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<tp:copyright>Copyright © 2009-2010 Collabora Ltd.</tp:copyright>
<tp:copyright>Copyright © 2009-2010 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
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.Call1.Content"
tp:causes-havoc="experimental">
<tp:added version="0.19.0">(draft 1)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>This object represents one Content inside a <tp:dbus-ref
namespace="ofdT.Channel.Type">Call1</tp:dbus-ref>. For
example, in an audio/video call there would be one audio content
and one video content. Each content has one or more <tp:dbus-ref
namespace="ofdT.Call1">Stream</tp:dbus-ref> objects which
represent the actual transport to one or more remote contacts.</p>
<tp:rationale>
There are two cases where multiple streams may happen:
<ul>
<li>Calls with more than two participants, if the protocol does not
support multicast, and does not have mixer proxy.</li>
<li>With jingle, when calling a contact connected from multiple
resources, a stream is created for each resource. Once the remote
contact answered from one of its resources, all other streams get
removed.</li>
</ul>
</tp:rationale>
<p>For protocols that support muting all streams of a given content
separately, this object MAY also implement the <tp:dbus-ref
namespace="ofdT.Call1.Interface">Mute</tp:dbus-ref> interface</p>
</tp:docstring>
<method name="Remove" tp:name-for-bindings="Remove">
<tp:changed version="0.21.2">previously there were no
arguments</tp:changed>
<tp:docstring>
Remove the content from the call. This will cause
<tp:member-ref>Removed</tp:member-ref>((self_handle,
<tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref>, "", "")) to be
emitted.
</tp:docstring>
<tp:possible-errors>
<tp:error name="org.freedesktop.Telepathy.Error.NetworkError" />
<tp:error name="org.freedesktop.Telepathy.Error.NotImplemented">
<tp:docstring>
Raised when a Call doesn't support removing contents
(e.g. a Google Talk video call).
</tp:docstring>
</tp:error>
</tp:possible-errors>
</method>
<signal name="Removed" tp:name-for-bindings="Removed">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Emitted when the content is removed from the call. This
is the same as the <tp:dbus-ref
namespace="ofdT.Channel.Type">Call1.ContentRemoved</tp:dbus-ref>
signal.</p>
</tp:docstring>
</signal>
<property name="Interfaces" tp:name-for-bindings="Interfaces"
type="as" tp:type="DBus_Interface[]" access="read" tp:immutable="yes">
<tp:added version="0.19.11"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Extra interfaces provided by this content, such as <tp:dbus-ref
namespace="ofdT.Call1">Content.Interface.Media</tp:dbus-ref>,
<tp:dbus-ref namespace="ofdT.Channel">Interface.Hold</tp:dbus-ref> or
<tp:dbus-ref namespace="ofdT.Call1">Interface.Mute</tp:dbus-ref>.
This SHOULD NOT include the Content interface itself, and cannot
change once the content has been created.</p>
</tp:docstring>
</property>
<property name="Name" tp:name-for-bindings="Name" type="s" access="read"
tp:immutable="yes">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>The name of the content.</p>
<tp:rationale>
The content name property should be meaningful, so should be
given a name which is significant to the user. The name
could be the "audio" or "video" string localized, or perhaps
include some string identifying the source, such as a webcam
identifier.
</tp:rationale>
</tp:docstring>
</property>
<property name="Type" tp:name-for-bindings="Type"
type="u" tp:type="Media_Stream_Type" access="read" tp:immutable="yes">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>The media type of this content.</p>
</tp:docstring>
</property>
<tp:enum name="Call_Content_Disposition" type="u">
<tp:docstring>
The disposition of this content, which defines whether to
automatically start sending data on the streams when
<tp:dbus-ref
namespace="ofdT.Channel.Type.Call1">Accept</tp:dbus-ref> is
called on the channel.
</tp:docstring>
<tp:enumvalue suffix="None" value="0">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
The content has no specific disposition.
</tp:docstring>
</tp:enumvalue>
<tp:enumvalue suffix="Initial" value="1">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>The content was initially part of the call. When
<tp:dbus-ref
namespace="ofdT.Channel.Type.Call1">Accept</tp:dbus-ref>
is called on the channel, all streams of this content with
<tp:dbus-ref
namespace="ofdT.Call1.Stream">LocalSendingState</tp:dbus-ref>
set to <tp:value-ref type="Sending_State">Pending_Send</tp:value-ref> will be
moved to <tp:value-ref type="Sending_State">Sending</tp:value-ref> as if
<tp:dbus-ref
namespace="ofdT.Call1.Stream">SetSending</tp:dbus-ref>
(True) had been called.</p>
</tp:docstring>
</tp:enumvalue>
</tp:enum>
<property name="Disposition" tp:name-for-bindings="Disposition"
type="u" tp:type="Call_Content_Disposition" access="read"
tp:immutable="yes">
<tp:docstring>
The disposition of this content.
</tp:docstring>
</property>
<signal name="StreamsAdded" tp:name-for-bindings="Streams_Added">
<tp:changed version="0.21.2">plural version, renamed from
StreamAdded</tp:changed>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Emitted when streams are added to a call.</p>
</tp:docstring>
<arg name="Streams" type="ao">
<tp:docstring>
The <tp:dbus-ref
namespace="ofdT.Call1">Stream</tp:dbus-ref>s which were
added.
</tp:docstring>
</arg>
</signal>
<signal name="StreamsRemoved" tp:name-for-bindings="Streams_Removed">
<tp:changed version="0.21.2">plural version, renamed from
StreamRemoved</tp:changed>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Emitted when streams are removed from a call</p>
</tp:docstring>
<arg name="Streams" type="ao">
<tp:docstring>
The <tp:dbus-ref
namespace="ofdT.Call1">Stream</tp:dbus-ref>s which were
removed.
</tp:docstring>
</arg>
<arg name="Reason" type="(uuss)" tp:type="Call_State_Reason">
<tp:docstring>
Why the content was removed.
</tp:docstring>
</arg>
</signal>
<property name="Streams" tp:name-for-bindings="Streams"
type="ao" access="read">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>The list of <tp:dbus-ref namespace="ofdT.Call1"
>Stream</tp:dbus-ref> objects that exist in this
content.</p>
<tp:rationale>
In a conference call multiple parties can share one media
content (say, audio), but the streaming of that media can
either be shared or separate. For example, in a multicast
conference all contacts would share one stream, while in a
Muji conference there would be a stream for each
participant.
</tp:rationale>
<p>Change notification is through the
<tp:member-ref>StreamsAdded</tp:member-ref> and
<tp:member-ref>StreamsRemoved</tp:member-ref> signals.</p>
</tp:docstring>
</property>
</interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
|