summaryrefslogtreecommitdiff
path: root/spec/Call1_Content_Media_Description_Interface_RTCP_Feedback1.xml
blob: 5761b3464aedc360daab0c939fdddd6c9233c98b (plain)
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
<?xml version="1.0" ?>
<node name="/Call1_Content_Media_Description_Interface_RTCP_Feedback1" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <tp:copyright> Copyright © 2005-2010 Nokia Corporation </tp:copyright>
  <tp:copyright> Copyright © 2005-2010 Collabora Ltd </tp:copyright>
  <tp:license xmlns="http://www.w3.org/1999/xhtml">
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.

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.

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.
  </tp:license>

  <interface name="im.telepathy.v1.Call1.Content.MediaDescription.Interface.RTCPFeedback1">
    <tp:added version="0.25.2">(as stable API)</tp:added>
    <tp:requires interface="im.telepathy.v1.Call1.Content.MediaDescription"/>

    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>This codec offer interface provides a method of signalling
        support for RTCP feedback, documented by <em>Extended RTP
        Profile for Real-time Transport Control Protocol (RTCP)-Based
        Feedback (RTP/AVPF)</em> (RFC 4585).</p>

      <p>The codec identifiers used in the description of the Feedback Messages
      sent in the <tp:dbus-ref
        namespace="imt1.Call1.Content.MediaDescription">Accept</tp:dbus-ref>'s
      should match those used for the RemoteCodecs in the same Accept call.
      </p>

      <p>For more details on what RTCP Feedback can do and how to use
        it, one should refer to
        <a href="http://www.faqs.org/rfcs/rfc4585.html">RFC 4585</a>.</p>

    </tp:docstring>

    <tp:struct name="RTCP_Feedback_Message_Properties">
      <tp:added version="0.22.1"/>
      <tp:changed version="0.23.4">This struct is also used by Call, but
        in call, the CM should know about RTP profiles, and never use MAXUINT
        as a default value, because it complicates things unnecessarily.
      </tp:changed>
      <tp:member type="u" name="RTCPMinimumInterval">
        <tp:docstring>
          The minimum interval between two regular RTCP packets in
          milliseconds for this content. If no special value is
          required, 5000 (5 seconds) should be used in RTP/AVP, and a
          lower value in RTP/AVPF (by default, 0).
        </tp:docstring>
      </tp:member>
      <tp:member type="a(sss)" tp:type="RTCP_Feedback_Message[]"
                 name="Messages">
        <tp:docstring>
          The RTCP feedback messages for this codec.
        </tp:docstring>
      </tp:member>
    </tp:struct>

    <tp:struct name="RTCP_Feedback_Message"
               array-name="RTCP_Feedback_Message_List">
      <tp:added version="0.22.1"/>
      <tp:docstring>
        A struct defining an RTCP feedback message.
      </tp:docstring>
      <tp:member type="s" name="Type">
        <tp:docstring>
          Feedback type, for example "ack", "nack", or "ccm".
        </tp:docstring>
      </tp:member>
      <tp:member type="s" name="Subtype">
        <tp:docstring>
          Feedback subtype, according to the Type, can be an empty string (""),
          if there is no subtype.
          For example, generic nack is Type="nack" Subtype="".
        </tp:docstring>
      </tp:member>
      <tp:member type="s" name="Parameters">
        <tp:docstring>
          Feedback parameters as a string. Format is defined in the relevant RFC
        </tp:docstring>
      </tp:member>
    </tp:struct>

    <tp:mapping name="RTCP_Feedback_Message_Map">
      <tp:added version="0.22.1"/>
      <tp:docstring>
        A map of codec and its feedback properties.
      </tp:docstring>
      <tp:member type="u" name="Codec_Identifier">
        <tp:docstring>
          Numeric identifier for the codec. This will be used as the
          PT in the SDP or content description.
        </tp:docstring>
      </tp:member>
      <tp:member type="(ua(sss))" tp:type="RTCP_Feedback_Message_Properties"
                 name="Properties">
        <tp:docstring>
          The RTCP feedback properties for this codec.
        </tp:docstring>
      </tp:member>
    </tp:mapping>

    <property name="FeedbackMessages" type="a{u(ua(sss))}"
      tp:type="RTCP_Feedback_Message_Map"
      access="read" tp:name-for-bindings="Feedback_Messages">
      <tp:docstring>
        A map of remote feedback codec properties that are supported.
      </tp:docstring>
    </property>

    <property name="DoesAVPF" type="b"
      access="read" tp:name-for-bindings="Does_AVPF">
      <tp:docstring>
        True if the remote contact supports Audio-Visual Profile
        Feedback (AVPF), otherwise False.
      </tp:docstring>
    </property>
  </interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->