~ubuntu-branches/ubuntu/natty/empathy/natty-security

« back to all changes in this revision

Viewing changes to telepathy-yell/spec/Call_Stream_Interface_Media.xml

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2011-02-24 11:54:47 UTC
  • mfrom: (1.1.66 upstream)
  • Revision ID: james.westby@ubuntu.com-20110224115447-meoue6yzk3u6s2br
Tags: 2.33.2-0ubuntu1
* New upstream release
* -debian/patches/reword_subscription_dailog_to_be_less_technical.patch
  - merged upstream
* debian/control
  - Bumped build depends for tp-logger, tp-glib, folks and libunity-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" ?>
 
2
<node name="/Call_Stream_Interface_Media"
 
3
  xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
 
4
  <tp:copyright>Copyright © 2009-2010 Collabora Ltd.</tp:copyright>
 
5
  <tp:copyright>Copyright © 2009-2010 Nokia Corporation</tp:copyright>
 
6
  <tp:license xmlns="http://www.w3.org/1999/xhtml">
 
7
    <p>This library is free software; you can redistribute it and/or
 
8
      modify it under the terms of the GNU Lesser General Public
 
9
      License as published by the Free Software Foundation; either
 
10
      version 2.1 of the License, or (at your option) any later version.</p>
 
11
 
 
12
    <p>This library is distributed in the hope that it will be useful,
 
13
      but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
15
      Lesser General Public License for more details.</p>
 
16
 
 
17
    <p>You should have received a copy of the GNU Lesser General Public
 
18
      License along with this library; if not, write to the Free Software
 
19
      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 
20
      02110-1301, USA.</p>
 
21
  </tp:license>
 
22
 
 
23
  <interface name="org.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFT"
 
24
      tp:causes-havoc="experimental">
 
25
    <tp:added version="0.19.0">(draft 1)</tp:added>
 
26
    <tp:requires interface="org.freedesktop.Telepathy.Call.Stream.DRAFT"/>
 
27
 
 
28
    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
29
      [FIXME]
 
30
 
 
31
      <h4>ICE restarts</h4>
 
32
 
 
33
      <p>If the <tp:dbus-ref
 
34
        namespace="ofdT.Call.Stream.Endpoint.DRAFT">RemoteCredentialsSet</tp:dbus-ref>
 
35
        signal is fired during a call once it has been called before
 
36
        whilst setting up the call for initial use, and the
 
37
        credentials have changed, then there has been an ICE
 
38
        restart. In such a case, the CM SHOULD also empty the remote
 
39
        candidate list in the <tp:dbus-ref
 
40
        namespace="ofdT.Call.Stream">Endpoint.DRAFT</tp:dbus-ref>.</p>
 
41
 
 
42
      <p>If the CM does an ICE restart, then the
 
43
        <tp:member-ref>PleaseRestartICE</tp:member-ref> signal is
 
44
        emitted and the streaming implementation should then call
 
45
        <tp:member-ref>SetCredentials</tp:member-ref> again.</p>
 
46
 
 
47
      <p>For more information on ICE restarts see
 
48
        <a href="http://tools.ietf.org/html/rfc5245#section-9.1.1.1">RFC 5245
 
49
        section 9.1.1.1</a></p>
 
50
    </tp:docstring>
 
51
 
 
52
    <method name="SetCredentials" tp:name-for-bindings="Set_Credentials">
 
53
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
54
        <p>Used to set the username fragment and password for streams that have
 
55
          global credentials.</p>
 
56
      </tp:docstring>
 
57
      <arg name="Username" type="s" direction="in">
 
58
        <tp:docstring>
 
59
          The username to use when authenticating on the stream.
 
60
        </tp:docstring>
 
61
      </arg>
 
62
      <arg name="Password" type="s" direction="in">
 
63
        <tp:docstring>
 
64
          The password to use when authenticating on the stream.
 
65
        </tp:docstring>
 
66
      </arg>
 
67
    </method>
 
68
 
 
69
    <tp:mapping name="Candidate_Info">
 
70
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
71
        <p>Extra information about the candidate. Allowed and mandatory keys
 
72
          depend on the transport protocol used. The following keys are commenly
 
73
          used:</p>
 
74
 
 
75
        <dl>
 
76
          <dt>Type (u)</dt>
 
77
          <dd>type of candidate (host, srflx, prflx, relay)</dd>
 
78
 
 
79
          <dt>Foundation (s)</dt>
 
80
          <dd>the foundation of this candiate</dd>
 
81
 
 
82
          <dt>Protocol (u) </dt>
 
83
          <dd>Underlying protocol of the candidate (udp, tcp) </dd>
 
84
 
 
85
          <dt>Priority (u) </dt>
 
86
          <dd>Priority of the candidate </dd>
 
87
 
 
88
          <dt>BaseIP (u) </dt>
 
89
          <dd>Base IP of this candidate </dd>
 
90
 
 
91
          <dt>Username (s) </dt>
 
92
          <dd>Username of this candidate
 
93
            (only if credentials are per candidate)</dd>
 
94
 
 
95
          <dt>Password (s) </dt>
 
96
          <dd>Password of this candidate
 
97
            (only if credentials are per candidate)</dd>
 
98
 
 
99
          <dt>RawUDPFallback (b) </dt>
 
100
          <dd>Indicate whether this candidate may be used to provide a UDP
 
101
               fallback</dd>
 
102
        </dl>
 
103
      </tp:docstring>
 
104
      <tp:member name="Key" type="s">
 
105
        <tp:docstring>One of the well-known keys documented here, or an
 
106
          implementation-specific key.</tp:docstring>
 
107
      </tp:member>
 
108
      <tp:member name="Value" type="v">
 
109
        <tp:docstring>The value corresponding to that key.</tp:docstring>
 
110
      </tp:member>
 
111
    </tp:mapping>
 
112
 
 
113
    <tp:enum type="u" name="Stream_Component">
 
114
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
115
        Media streams can use more than one UDP socket: one for RTP (data)
 
116
        and one for RTCP (control). Most of the time, they are adjacent
 
117
        to each other, but some protocols (xmpp) signal each port separately.
 
118
      </tp:docstring>
 
119
      <tp:enumvalue suffix="Unknown" value="0">
 
120
        <tp:docstring>
 
121
          The stream transport type is unknown or not applicable
 
122
          (should not appear over dbus).
 
123
        </tp:docstring>
 
124
      </tp:enumvalue>
 
125
      <tp:enumvalue suffix="Data" value="1">
 
126
        <tp:docstring>
 
127
          This is the high-traffic data socket, containing the audio/video
 
128
          data for the stream.
 
129
        </tp:docstring>
 
130
      </tp:enumvalue>
 
131
      <tp:enumvalue suffix="Control" value="2">
 
132
        <tp:docstring>
 
133
          This is the low-traffic control socket, usually containing feedback
 
134
          about packet loss etc.
 
135
        </tp:docstring>
 
136
      </tp:enumvalue>
 
137
    </tp:enum>
 
138
 
 
139
    <tp:struct name="Candidate" array-name="Candidate_List">
 
140
      <tp:docstring>A Stream Candidate.</tp:docstring>
 
141
      <tp:member name="Component" type="u" tp:type="Stream_Component">
 
142
        <tp:docstring>The component number.</tp:docstring>
 
143
      </tp:member>
 
144
      <tp:member name="IP" type="s">
 
145
        <tp:docstring>The IP address to use.</tp:docstring>
 
146
      </tp:member>
 
147
      <tp:member name="Port" type="u">
 
148
        <tp:docstring>The port number to use.</tp:docstring>
 
149
      </tp:member>
 
150
      <tp:member name="Info" type="a{sv}" tp:type="Candidate_Info">
 
151
        <tp:docstring>Additional information about the candidate.</tp:docstring>
 
152
      </tp:member>
 
153
    </tp:struct>
 
154
 
 
155
    <method name="AddCandidates" tp:name-for-bindings="Add_Candidates">
 
156
      <tp:docstring>
 
157
        Add candidates to the
 
158
        <tp:member-ref>LocalCandidates</tp:member-ref> property and
 
159
        signal them to the remote contact(s).
 
160
      </tp:docstring>
 
161
      <arg name="Candidates" direction="in"
 
162
        type="a(usua{sv})" tp:type="Candidate[]">
 
163
        <tp:docstring>
 
164
          The candidates to be added.
 
165
        </tp:docstring>
 
166
      </arg>
 
167
    </method>
 
168
 
 
169
    <method name="CandidatesPrepared"
 
170
      tp:name-for-bindings="Candidates_Prepared">
 
171
      <tp:docstring>
 
172
        This indicates to the CM that the initial batch of candidates
 
173
        has been added.
 
174
      </tp:docstring>
 
175
    </method>
 
176
 
 
177
    <tp:enum type="u" name="Stream_Transport_Type">
 
178
      <tp:changed version="0.21.2">WLM_8_5 was removed</tp:changed>
 
179
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
180
        A transport that can be used for streaming.
 
181
      </tp:docstring>
 
182
      <tp:enumvalue suffix="Unknown" value="0">
 
183
        <tp:docstring>
 
184
          The stream transport type is unknown or not applicable
 
185
          (for streams that do not have a configurable transport).
 
186
        </tp:docstring>
 
187
      </tp:enumvalue>
 
188
      <tp:enumvalue suffix="Raw_UDP" value="1">
 
189
        <tp:docstring>
 
190
          Raw UDP, with or without STUN. All streaming clients are assumed to
 
191
          support this transport, so there is no handler capability token for
 
192
          it in the <tp:dbus-ref namespace="ofdT.Channel.Type"
 
193
          >Call.DRAFT</tp:dbus-ref> interface.
 
194
          [This corresponds to "none" or "stun" in the old Media.StreamHandler
 
195
          interface.]
 
196
        </tp:docstring>
 
197
      </tp:enumvalue>
 
198
      <tp:enumvalue suffix="ICE" value="2">
 
199
        <tp:docstring>
 
200
          Interactive Connectivity Establishment, as defined by RFC
 
201
          5245. Note that this value covers ICE-UDP only.
 
202
          [This corresponds to "ice-udp" in the old
 
203
          Media.StreamHandler interface.]
 
204
        </tp:docstring>
 
205
      </tp:enumvalue>
 
206
      <tp:enumvalue suffix="GTalk_P2P" value="3">
 
207
        <tp:docstring>
 
208
          Google Talk peer-to-peer connectivity establishment, as implemented
 
209
          by libjingle 0.3.
 
210
          [This corresponds to "gtalk-p2p" in the old Media.StreamHandler
 
211
          interface.]
 
212
        </tp:docstring>
 
213
      </tp:enumvalue>
 
214
      <tp:enumvalue suffix="WLM_2009" value="4">
 
215
        <tp:docstring>
 
216
          The transport used by Windows Live Messenger 2009 or later, which
 
217
          resembles ICE draft 19.
 
218
          [This corresponds to "wlm-2009" in the old Media.StreamHandler
 
219
          interface.]
 
220
        </tp:docstring>
 
221
      </tp:enumvalue>
 
222
      <tp:enumvalue suffix="SHM" value="5">
 
223
        <tp:added version="0.21.2"/>
 
224
        <tp:docstring>
 
225
          Shared memory transport, as implemented by the GStreamer
 
226
          shmsrc and shmsink plugins.
 
227
        </tp:docstring>
 
228
      </tp:enumvalue>
 
229
      <tp:enumvalue suffix="Multicast" value="6">
 
230
        <tp:added version="0.21.5"/>
 
231
        <tp:docstring>
 
232
          Multicast transport.
 
233
        </tp:docstring>
 
234
      </tp:enumvalue>
 
235
    </tp:enum>
 
236
 
 
237
    <property name="Transport" tp:name-for-bindings="Transport"
 
238
        type="u" tp:type="Stream_Transport_Type" access="read" tp:immutable="yes">
 
239
      <tp:docstring>
 
240
        The transport for this stream.
 
241
      </tp:docstring>
 
242
    </property>
 
243
 
 
244
    <property name="LocalCandidates" tp:name-for-bindings="Local_Candidates"
 
245
      type="a(usua{sv})" tp:type="Candidate[]" access="read">
 
246
      <tp:docstring>
 
247
        [FIXME]. Change notification is via the
 
248
        <tp:member-ref>LocalCandidatesAdded</tp:member-ref> signal.
 
249
      </tp:docstring>
 
250
    </property>
 
251
 
 
252
    <signal name="LocalCandidatesAdded"
 
253
      tp:name-for-bindings="Local_Candidates_Added">
 
254
      <tp:docstring>
 
255
        Emitted when local candidates are added to the
 
256
        <tp:member-ref>LocalCandidates</tp:member-ref> property.
 
257
      </tp:docstring>
 
258
      <arg name="Candidates" type="a(usua{sv})" tp:type="Candidate[]">
 
259
        <tp:docstring>
 
260
          Candidates that have been added.
 
261
        </tp:docstring>
 
262
      </arg>
 
263
    </signal>
 
264
 
 
265
    <tp:struct name="Stream_Credentials">
 
266
      <tp:docstring>A username and password pair.</tp:docstring>
 
267
 
 
268
      <tp:member name="Username" type="s">
 
269
        <tp:docstring>The username.</tp:docstring>
 
270
      </tp:member>
 
271
 
 
272
      <tp:member name="Password" type="s">
 
273
        <tp:docstring>The password.</tp:docstring>
 
274
      </tp:member>
 
275
    </tp:struct>
 
276
 
 
277
    <property name="LocalCredentials" tp:name-for-bindings="Local_Credentials"
 
278
      type="(ss)" tp:type="Stream_Credentials" access="read">
 
279
      <tp:docstring>
 
280
        [FIXME]. Change notification is via the
 
281
        <tp:member-ref>LocalCredentialsChanged</tp:member-ref> signal.
 
282
      </tp:docstring>
 
283
    </property>
 
284
 
 
285
    <signal name="LocalCredentialsChanged"
 
286
      tp:name-for-bindings="Local_Credentials_Changed">
 
287
      <tp:changed version="0.21.2">renamed from LocalCredentailsSet</tp:changed>
 
288
      <tp:docstring>
 
289
        Emitted when the value of
 
290
        <tp:member-ref>LocalCredentials</tp:member-ref> changes.
 
291
      </tp:docstring>
 
292
      <arg name="Username" type="s" />
 
293
      <arg name="Password" type="s" />
 
294
    </signal>
 
295
 
 
296
    <signal name="RelayInfoChanged"
 
297
      tp:name-for-bindings="Relay_Info_Changed">
 
298
      <tp:docstring>
 
299
        Emitted when the value of
 
300
        <tp:member-ref>RelayInfo</tp:member-ref> changes.
 
301
      </tp:docstring>
 
302
      <arg name="Relay_Info" type="aa{sv}" tp:type="String_Variant_Map[]" />
 
303
    </signal>
 
304
 
 
305
    <signal name="STUNServersChanged"
 
306
      tp:name-for-bindings="STUN_Servers_Changed">
 
307
      <tp:docstring>
 
308
        Emitted when the value of
 
309
        <tp:member-ref>STUNServers</tp:member-ref> changes.
 
310
      </tp:docstring>
 
311
      <arg name="Servers" type="a(sq)" tp:type="Socket_Address_IP[]" />
 
312
    </signal>
 
313
 
 
314
    <property name="STUNServers" tp:name-for-bindings="STUN_Servers"
 
315
      type="a(sq)" tp:type="Socket_Address_IP[]" access="read">
 
316
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
317
        <p>The IP addresses of possible STUN servers to use for NAT
 
318
          traversal, as dotted-quad IPv4 address literals or RFC2373
 
319
          IPv6 address literals.  Change notification is via the
 
320
          <tp:member-ref>STUNServersChanged</tp:member-ref>
 
321
          signal. The IP addresses MUST NOT be given as DNS hostnames.</p>
 
322
 
 
323
        <tp:rationale>
 
324
          High-quality connection managers already need an asynchronous
 
325
          DNS resolver, so they might as well resolve this name to an IP
 
326
          to make life easier for streaming implementations.
 
327
        </tp:rationale>
 
328
      </tp:docstring>
 
329
    </property>
 
330
 
 
331
    <property name="RelayInfo" type="aa{sv}" access="read"
 
332
      tp:type="String_Variant_Map[]" tp:name-for-bindings="Relay_Info">
 
333
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
334
        <p>A list of mappings describing TURN or Google relay servers
 
335
          available for the client to use in its candidate gathering, as
 
336
          determined from the protocol. Map keys are:</p>
 
337
 
 
338
        <dl>
 
339
          <dt><code>ip</code> - s</dt>
 
340
          <dd>The IP address of the relay server as a dotted-quad IPv4
 
341
            address literal or an RFC2373 IPv6 address literal. This MUST NOT
 
342
            be a DNS hostname.
 
343
 
 
344
            <tp:rationale>
 
345
              High-quality connection managers already need an asynchronous
 
346
              DNS resolver, so they might as well resolve this name to an IP
 
347
              and make life easier for streaming implementations.
 
348
            </tp:rationale>
 
349
          </dd>
 
350
 
 
351
          <dt><code>type</code> - s</dt>
 
352
          <dd>
 
353
            <p>Either <code>udp</code> for UDP (UDP MUST be assumed if this
 
354
              key is omitted), <code>tcp</code> for TCP, or
 
355
              <code>tls</code>.</p>
 
356
 
 
357
            <p>The precise meaning of this key depends on the
 
358
              <tp:member-ref>Transport</tp:member-ref> property: if
 
359
              Transport is ICE, <code>tls</code> means
 
360
              TLS over TCP as referenced by ICE draft 19, and if
 
361
              Transport is GTalk_P2P, <code>tls</code> means
 
362
              a fake SSL session over TCP as implemented by libjingle.</p>
 
363
          </dd>
 
364
 
 
365
          <dt><code>port</code> - q</dt>
 
366
          <dd>The UDP or TCP port of the relay server as an ASCII unsigned
 
367
            integer</dd>
 
368
 
 
369
          <dt><code>username</code> - s</dt>
 
370
          <dd>The username to use</dd>
 
371
 
 
372
          <dt><code>password</code> - s</dt>
 
373
          <dd>The password to use</dd>
 
374
 
 
375
          <dt><code>component</code> - u</dt>
 
376
          <dd>The component number to use this relay server for, as an
 
377
            ASCII unsigned integer; if not included, this relay server
 
378
            may be used for any or all components.
 
379
 
 
380
            <tp:rationale>
 
381
              In ICE draft 6, as used by Google Talk, credentials are only
 
382
              valid once, so each component needs relaying separately.
 
383
            </tp:rationale>
 
384
          </dd>
 
385
        </dl>
 
386
 
 
387
        <tp:rationale>
 
388
          <p>An equivalent of the gtalk-p2p-relay-token property on
 
389
            MediaSignalling channels is not included here. The connection
 
390
            manager should be responsible for making the necessary HTTP
 
391
            requests to turn the token into a username and password.</p>
 
392
        </tp:rationale>
 
393
 
 
394
        <p>The type of relay server that this represents depends on
 
395
          the value of the <tp:member-ref>Transport</tp:member-ref>
 
396
          property. If Transport is ICE, this is a TURN server;
 
397
          if Transport is GTalk_P2P, this is a Google relay server;
 
398
          otherwise, the meaning of RelayInfo is undefined.</p>
 
399
 
 
400
        <p>If relaying is not possible for this stream, the list is
 
401
          empty.</p>
 
402
 
 
403
        <p>Change notification is given via the
 
404
          <tp:member-ref>RelayInfoChanged</tp:member-ref> signal.</p>
 
405
      </tp:docstring>
 
406
    </property>
 
407
 
 
408
    <signal name="ServerInfoRetrieved"
 
409
      tp:name-for-bindings="Server_Info_Retrieved">
 
410
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
411
        <p>Signals that the initial information about STUN and Relay servers
 
412
          has been retrieved, i.e. the
 
413
          <tp:member-ref>HasServerInfo</tp:member-ref> property is
 
414
          now true.</p>
 
415
      </tp:docstring>
 
416
    </signal>
 
417
 
 
418
    <property name="HasServerInfo" type="b"
 
419
        tp:name-for-bindings="Has_Server_Info" access="read">
 
420
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
 
421
        <p>True if all the initial information about STUN servers and Relay
 
422
          servers has been retrieved. Change notification is via the
 
423
          <tp:member-ref>ServerInfoRetrieved</tp:member-ref> signal.</p>
 
424
 
 
425
        <tp:rationale>
 
426
          Streaming implementations that can't cope with STUN and
 
427
          relay servers being added later SHOULD wait for this
 
428
          property to become true before proceeding.
 
429
        </tp:rationale>
 
430
      </tp:docstring>
 
431
    </property>
 
432
 
 
433
    <signal name="EndpointsChanged"
 
434
      tp:name-for-bindings="Endpoints_Changed">
 
435
      <tp:docstring>
 
436
        Emitted when the <tp:member-ref>Endpoints</tp:member-ref> property
 
437
        changes.
 
438
      </tp:docstring>
 
439
      <arg name="Endpoints_Added" type="ao">
 
440
        <tp:docstring>
 
441
          Endpoints that were added.
 
442
        </tp:docstring>
 
443
      </arg>
 
444
      <arg name="Endpoints_Removed" type="ao">
 
445
        <tp:docstring>
 
446
          Endpoints that no longer exist.
 
447
        </tp:docstring>
 
448
      </arg>
 
449
    </signal>
 
450
 
 
451
    <property name="Endpoints" tp:name-for-bindings="Endpoints"
 
452
      type="ao" access="read">
 
453
      <tp:docstring>
 
454
        <p>The list of <tp:dbus-ref namespace="ofdT.Call.Stream"
 
455
          >Endpoint.DRAFT</tp:dbus-ref> objects that exist for this
 
456
          stream.</p>
 
457
 
 
458
        <p>Change notification is via the
 
459
          <tp:member-ref>EndpointsChanged</tp:member-ref> signal.</p>
 
460
      </tp:docstring>
 
461
    </property>
 
462
 
 
463
    <signal name="PleaseRestartICE"
 
464
      tp:name-for-bindings="Please_Restart_ICE">
 
465
      <tp:docstring>
 
466
        Emitted when the CM does an ICE restart to notify the
 
467
        streaming implementation that it should call
 
468
        <tp:member-ref>SetCredentials</tp:member-ref> again.
 
469
      </tp:docstring>
 
470
    </signal>
 
471
  </interface>
 
472
</node>
 
473
<!-- vim:set sw=2 sts=2 et ft=xml: -->