2bf9ded34a3ddf4709473f9bc95a4b9d15d7206b
[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                         Possible Errors: [service].Error.InvalidArguments
14
15                 array{object,dict} GetCalls()
16
17                         Get an array of call object paths and properties
18                         that represents the currently present calls.
19
20                         This method call should only be used once when an
21                         application starts up.  Further call additions and
22                         removal shall be monitored via CallAdded and
23                         CallRemoved signals.
24
25                 object Dial(string number, string hide_callerid)
26
27                         Initiates a new outgoing call. Returns the object path
28                         to the newly created call. The hide_callerid variable
29                         holds the CLIR override for this call.
30                         The defines values are:
31                                 "" or "default" - Default (Network) CLIR mode
32                                                         is used
33                                 "enabled" - Hides callerid, CLIR Invocation
34                                                 is used
35                                 "disabled" - Shows callerid, CLIR Suppression
36                                                 is used
37
38                         This is usually implemented using the ATD AT command.
39
40                 void Transfer()
41
42                         Joins the currently Active (or Outgoing, depending
43                         on network support) and Held calls together and
44                         disconnects both calls. In effect transferring
45                         one party to the other. This procedure requires
46                         an Active and Held call and the Explicit Call Transfer
47                         (ECT) supplementary service to be active.
48
49                         This functionality is generally implemented by using
50                         the +CHLD=4 AT command.
51
52                 void SwapCalls()
53
54                         Swaps Active and Held calls.  The effect of this
55                         is that all calls (0 or more including calls in a
56                         multi-party conversation) that were Active are now Held,
57                         and all calls (0 or more) that were Held are now Active.
58
59                         GSM specification does not allow calls to be swapped
60                         in the case where Held, Active and Waiting calls exist.
61                         Some modems implement this anyway, thus it is
62                         manufacturer specific whether this method will succeed
63                         in the case of Held, Active and Waiting calls.
64
65                         This functionality is generally implemented by using
66                         the +CHLD=2 AT command.
67
68                 void ReleaseAndAnswer()
69
70                         Releases currently active call and answers the currently
71                         waiting call. Please note that if the current call is
72                         a multiparty call, then all parties in the multi-party
73                         call will be released.
74
75                 void HoldAndAnswer()
76
77                         Puts the current call (including multi-party calls) on
78                         hold and answers the currently waiting call. Calling
79                         this function when a user already has a both Active and
80                         Held calls is invalid, since in GSM a user can have
81                         only a single Held call at a time.
82
83                 void HangupAll()
84
85                         Releases all calls.
86
87                 array{object} PrivateChat(object call)
88
89                         Places the multi-party call on hold and makes desired
90                         call active. This is used to accomplish private chat
91                         functionality.  Note that if there are only two calls
92                         (three parties) in the multi-party call the result will
93                         be two regular calls, one held and one active. The
94                         Multiparty call will need to be setup again by using the
95                         CreateMultiparty method.  Returns the new list of calls
96                         participating in the multiparty call.
97
98                         This is usually implemented using the +CHLD=2X command.
99
100                 array{object} CreateMultiparty()
101
102                         Joins active and held calls together into a multi-party
103                         call. If one of the calls is already a multi-party
104                         call, then the other call is added to the multiparty
105                         conversation. Returns the new list of calls
106                         participating in the multiparty call.
107
108                         There can only be one subscriber controlled multi-party
109                         call according to the GSM specification.
110
111                         This is usually implemented using the +CHLD=3 AT
112                         command.
113
114                 void HangupMultiparty()
115
116                         Hangs up the multi-party call.  All participating
117                         calls are released.
118
119                 void SendTones(string tones)
120
121                         Sends the DTMF tones to the network.  The tones have
122                         a fixed duration.  Tones can be one of: '0' - '9',
123                         '*', '#', 'A', 'B', 'C', 'D'.  The last four are
124                         typically not used in normal circumstances.
125
126 Signals         CallAdded(object path, dict properties)
127
128                         Signal that is sent when a new call is added.  It
129                         contains the object path of the new voice call and
130                         also its properties.
131
132                         Applications get the whole properties via this
133                         signal and don't need to call GetProperties on
134                         the voice call object.
135
136                 CallRemoved(object path)
137
138                         Signal that is sent when a voice call has been
139                         released.  The object path is no longer accessible
140                         after this signal and only emitted for reference.
141
142                 PropertyChanged(string property, variant value)
143
144                         Signal is emitted whenever a property has changed.
145                         The new value is passed as the signal argument.
146
147 Properties      array{string} EmergencyNumbers [readonly]
148
149                         Contains the list of emergency numbers recognized
150                         by oFono.  This list is based on the default set
151                         of numbers provided by the specification and any
152                         extra numbers provisioned by the carrier on the
153                         SIM.