aboutsummaryrefslogtreecommitdiff
path: root/introspection/org.freedesktop.ModemManager1.Modem.Voice.xml
blob: 87bc7d7d5aaa7e3958b4dde6bfc450461d100f4e (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
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
<?xml version="1.0" encoding="UTF-8" ?>

<!--
 ModemManager 1.0 Interface Specification

   Copyright (C) 2015 Marco Bascetta <marco.bascetta@sadel.it>
   Copyright (C) 2015 Riccardo Vangelisti <riccardo.vangelisti@sadel.it>
   Copyright (C) 2019 Purism SPC
-->

<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">

  <!--
      org.freedesktop.ModemManager1.Modem.Voice:
      @short_description: The ModemManager Voice interface.

      The Voice interface handles Calls.

      This interface will only be available once the modem is ready to be
      registered in the cellular network. 3GPP devices will require a valid
      unlocked SIM card before any of the features in the interface can be
      used.
  -->
  <interface name="org.freedesktop.ModemManager1.Modem.Voice">

    <!--
        ListCalls:
        @result: The list of call object paths.

        Retrieve all Calls.

        This method should only be used once and subsequent information
        retrieved either by listening for the
        #org.freedesktop.ModemManager1.Modem.Voice::Added signal,
        or by querying the specific Call object of interest.
    -->
    <method name="ListCalls">
      <arg name="result" type="ao" direction="out" />
    </method>

    <!--
        DeleteCall:
        @path: The object path of the Call to delete.

        Delete a Call from the list of calls.

        The call will be hangup if it is still active.
    -->
    <method name="DeleteCall">
      <arg name="path" type="o" direction="in" />
    </method>

    <!--
        CreateCall:
        @properties: Call properties from the <link linkend="gdbus-org.freedesktop.ModemManager1.Call">Call D-Bus interface</link>.
        @path: The object path of the new call object.

        Creates a new call object for a new outgoing call.

        The '<link linkend="gdbus-property-org-freedesktop-ModemManager1-Call.Number">Number</link>' is the only
        expected property to set by the user.
    -->
    <method name="CreateCall">
      <arg name="properties" type="a{sv}" direction="in" />
      <arg name="path" type="o" direction="out" />
    </method>

    <!--
        HoldAndAccept:

        Place all active calls on hold, if any, and accept the next
        call.

        Waiting calls have preference over held calls, so the next
        call being active will be any waiting call, or otherwise,
        any held call.

        The user should monitor the state of all available ongoing
        calls to be reported of which one becomes active.

        No error is returned if there are no waiting or held calls.
    -->
    <method name="HoldAndAccept" />

    <!--
        HangupAndAccept:

        Hangup all active calls, if any, and accept the next call.

        Waiting calls have preference over held calls, so the next
        call being active will be any waiting call, or otherwise,
        any held call.

        The user should monitor the state of all available ongoing
        calls to be reported of which one becomes active.

        No error is returned if there are no waiting or held calls.
        In this case, this method would be equivalent to calling
        <link linkend="gdbus-method-org-freedesktop-ModemManager1-Call.Hangup">Hangup()</link>
        on the active call.
    -->
    <method name="HangupAndAccept" />

    <!--
        HangupAll:

        Hangup all active calls.

        Depending on how the device implements the action, calls on
        hold or in waiting state may also be terminated.

        No error is returned if there are no ongoing calls.
    -->
    <method name="HangupAll" />

    <!--
        Transfer:

        Join the currently active and held calls together into a single
        multiparty call, but disconnects from them.

        The affected calls will be considered terminated from the point of
        view of the subscriber.
    -->
    <method name="Transfer" />

    <!--
        CallWaitingSetup:

        Activates or deactivates the call waiting network service, as per
        3GPP TS 22.083.

        This operation requires communication with the network in order to
        complete, so the modem must be successfully registered.
    -->
    <method name="CallWaitingSetup">
      <arg name="enable" type="b" direction="in" />
    </method>

    <!--
        CallWaitingQuery:

        Queries the status of the call waiting network service, as per
        3GPP TS 22.083.

        This operation requires communication with the network in order to
        complete, so the modem must be successfully registered.
    -->
    <method name="CallWaitingQuery">
      <arg name="status" type="b" direction="out" />
    </method>

    <!--
        CallAdded:
        @path: Object path of the new call.

        Emitted when a call has been added.
    -->
    <signal name="CallAdded">
      <arg name="path" type="o" />
    </signal>

    <!--
        CallDeleted:
        @path: Object path of the now deleted Call.

        Emitted when a call has been deleted.
    -->
    <signal name="CallDeleted">
      <arg name="path" type="o" />
    </signal>

    <!--
        Calls:

        The list of calls object paths.
    -->
    <property name="Calls" type="ao" access="read" />

    <!--
        EmergencyOnly:

        A flag indicating whether emergency calls are the only allowed ones.

        If this flag is set, users should only attempt voice calls to
        emergency numbers, as standard voice calls will likely fail.
    -->
    <property name="EmergencyOnly" type="b" access="read" />

  </interface>
</node>