6af7d33c41e50c60a1812305e3914e8872552358
[platform/upstream/ofono.git] / doc / voicecallmanager-api.txt
1 VoiceCallManager hierarchy
2 ==========================
3
4 Service         org.ofono
5 Interface       org.ofono.VoiceCallManager
6 Object path     [variable prefix]/{modem0,modem1,...}
7
8 Methods         dict GetProperties()
9
10                         Returns properties for the VoiceCallManager Interface.
11                         See the properties section for available properties.
12
13                 array{object,dict} GetCalls()
14
15                         Get an array of call object paths and properties
16                         that represents the currently present calls.
17
18                         This method call should only be used once when an
19                         application starts up.  Further call additions and
20                         removal shall be monitored via CallAdded and
21                         CallRemoved signals.
22
23                 object Dial(string number, string hide_callerid)
24
25                         Initiates a new outgoing call. Returns the object path
26                         to the newly created call. The hide_callerid variable
27                         holds the CLIR override for this call.
28                         The defines values are:
29                                 "" or "default" - Default (Network) CLIR mode
30                                                         is used
31                                 "enabled" - Hides callerid, CLIR Invocation
32                                                 is used
33                                 "disabled" - Shows callerid, CLIR Suppression
34                                                 is used
35
36                         The number must be a string in the following format:
37                                 [+][0-9*#]{1,80}
38                         In other words, it must be a non-empty string
39                         optionally prefixed with a '+' followed by 1 to 80
40                         characters.  The character set can contain numbers,
41                         '*' and '#'.  Besides this sanity checking no further
42                         number validation is performed.  It is assumed the
43                         network will perform further validation.  The optional
44                         '+' denotes an international number format.  For
45                         example:
46                                 +15551234567 - International format
47                                 5551234567 - National / Uknown format
48
49                         This method is usually implemented using the ATD AT
50                         command.
51
52                         NOTE: If an active call (single or multiparty) exists,
53                         then it is automatically put on hold if the dial
54                         procedure is successful.
55
56                         Possible Errors: [service].Error.InProgress
57                                          [service].Error.InvalidArguments
58                                          [service].Error.InvalidFormat
59                                          [service].Error.NotImplemented
60                                          [service].Error.Failed
61
62                 void Transfer()
63
64                         Joins the currently Active (or Outgoing, depending
65                         on network support) and Held calls together and
66                         disconnects both calls. In effect transferring
67                         one party to the other. This procedure requires
68                         an Active and Held call and the Explicit Call Transfer
69                         (ECT) supplementary service to be active.
70
71                         This functionality is generally implemented by using
72                         the +CHLD=4 AT command.
73
74                         Possible Errors: [service].Error.InProgress
75                                          [service].Error.NotImplemented
76                                          [service].Error.Failed
77
78                 void SwapCalls()
79
80                         Swaps Active and Held calls.  The effect of this
81                         is that all calls (0 or more including calls in a
82                         multi-party conversation) that were Active are now Held,
83                         and all calls (0 or more) that were Held are now Active.
84
85                         GSM specification does not allow calls to be swapped
86                         in the case where Held, Active and Waiting calls exist.
87                         Some modems implement this anyway, thus it is
88                         manufacturer specific whether this method will succeed
89                         in the case of Held, Active and Waiting calls.
90
91                         This functionality is generally implemented by using
92                         the +CHLD=2 AT command.
93
94                         Possible Errors: [service].Error.InProgress
95                                          [service].Error.NotImplemented
96                                          [service].Error.Failed
97
98                 void ReleaseAndAnswer()
99
100                         Releases currently active call (0 or more) and
101                         answers the currently waiting call. Please note that
102                         if the current call is a multiparty call, then all
103                         parties in the multi-party call will be released.
104
105                         Possible Errors: [service].Error.InProgress
106                                          [service].Error.NotImplemented
107                                          [service].Error.Failed
108
109                 void ReleaseAndSwap()
110
111                         Releases currently active call (0 or more) and
112                         activates any currently held calls. Please note that
113                         if the current call is a multiparty call, then all
114                         parties in the multi-party call will be released.
115
116                         Possible Errors: [service].Error.InProgress
117                                          [service].Error.NotImplemented
118                                          [service].Error.Failed
119
120                 void HoldAndAnswer()
121
122                         Puts the current call (including multi-party calls) on
123                         hold and answers the currently waiting call. Calling
124                         this function when a user already has a both Active and
125                         Held calls is invalid, since in GSM a user can have
126                         only a single Held call at a time.
127
128                         Possible Errors: [service].Error.InProgress
129                                          [service].Error.NotImplemented
130                                          [service].Error.Failed
131
132                 void HangupAll()
133
134                         Releases all calls except waiting calls. This includes
135                         multiparty calls.
136
137                         Possible Errors: [service].Error.InProgress
138                                          [service].Error.NotImplemented
139                                          [service].Error.Failed
140
141                 array{object} PrivateChat(object call)
142
143                         Places the multi-party call on hold and makes desired
144                         call active. This is used to accomplish private chat
145                         functionality.  Note that if there are only two calls
146                         (three parties) in the multi-party call the result will
147                         be two regular calls, one held and one active. The
148                         Multiparty call will need to be setup again by using the
149                         CreateMultiparty method.  Returns the new list of calls
150                         participating in the multiparty call.
151
152                         This is usually implemented using the +CHLD=2X command.
153
154                         Possible Errors: [service].Error.InProgress
155                                          [service].Error.InvalidArguments
156                                          [service].Error.InvalidFormat
157                                          [service].Error.NotFound
158                                          [service].Error.NotImplemented
159                                          [service].Error.Failed
160
161                 array{object} CreateMultiparty()
162
163                         Joins active and held calls together into a multi-party
164                         call. If one of the calls is already a multi-party
165                         call, then the other call is added to the multiparty
166                         conversation. Returns the new list of calls
167                         participating in the multiparty call.
168
169                         There can only be one subscriber controlled multi-party
170                         call according to the GSM specification.
171
172                         This is usually implemented using the +CHLD=3 AT
173                         command.
174
175                         Possible Errors: [service].Error.InProgress
176                                          [service].Error.NotImplemented
177                                          [service].Error.Failed
178
179                 void HangupMultiparty()
180
181                         Hangs up the multi-party call.  All participating
182                         calls are released.
183
184                         Possible Errors: [service].Error.InProgress
185                                          [service].Error.NotImplemented
186                                          [service].Error.Failed
187
188                 void SendTones(string tones)
189
190                         Sends the DTMF tones to the network.  The tones have
191                         a fixed duration.  Tones can be one of: '0' - '9',
192                         '*', '#', 'A', 'B', 'C', 'D'.  The last four are
193                         typically not used in normal circumstances.
194
195                         Possible Errors: [service].Error.InProgress
196                                          [service].Error.NotImplemented
197                                          [service].Error.InvalidArguments
198                                          [service].Error.InvalidFormat
199                                          [service].Error.Failed
200
201 Signals         CallAdded(object path, dict properties)
202
203                         Signal that is sent when a new call is added.  It
204                         contains the object path of the new voice call and
205                         also its properties.
206
207                         Applications get the whole properties via this
208                         signal and don't need to call GetProperties on
209                         the voice call object.
210
211                 CallRemoved(object path)
212
213                         Signal that is sent when a voice call has been
214                         released.  The object path is no longer accessible
215                         after this signal and only emitted for reference.
216
217                         NOTE: If the VoiceCallManager interface becomes
218                         unavailable, this signal is not guaranteed to be
219                         emitted for remaining calls.  The applications are
220                         expected to monitor changes in Modem.Interfaces
221                         property.
222
223                 PropertyChanged(string property, variant value)
224
225                         Signal is emitted whenever a property has changed.
226                         The new value is passed as the signal argument.
227
228                 BarringActive(string type) [experimental]
229
230                         Signal emitted when an outgoing voice call is made and
231                         the call has been barred by the network due to the
232                         remote party's "Call Barring" Supplementary Services
233                         settings for incoming calls. In this case the type
234                         parameter in the signal set to "remote".
235                         The signal is also emitted when an outgoing voice call
236                         is made and the call has been barred by the network due
237                         to the local "Call Barring" Supplementary Services
238                         settings for outgoing calls. In this case the type
239                         parameter in the signal is set to "local".
240
241                 Forwarded(string type) [experimental]
242
243                         Signal emitted when an outgoing voice call is made and
244                         the call has been redirected to another number due to
245                         the remote party's "Call Forwarding" Supplementary
246                         Services settings. In this case the type parameter in
247                         the signal is set to "outgoing".
248                         The signal is also emitted when the incoming voice call
249                         is a redirected call due to a call forwarding operation.
250                         In this case the type parameter in the signal is set to
251                         "incoming".
252
253 Properties      array{string} EmergencyNumbers [readonly]
254
255                         Contains the list of emergency numbers recognized
256                         by oFono.  This list is based on the default set
257                         of numbers provided by the specification and any
258                         extra numbers provisioned by the carrier on the
259                         SIM.