doc: Expand description of various Hangup cases
[platform/upstream/ofono.git] / doc / voicecall-api.txt
1 VoiceCall hierarchy
2 ===================
3
4 Service         org.ofono
5 Interface       org.ofono.VoiceCall
6 Object path     [variable prefix]/{modem0,modem1,...}/{voicecall01,voicecall02,...}
7
8 Methods         dict GetProperties()
9
10                         Returns all properties for this object. See the
11                         properties section for available properties.
12
13                 void Deflect(string number)
14
15                         Deflects the incoming or waiting call to number given
16                         in the argument.  This method is only valid if the
17                         call is in "incoming" or "waiting" state and the
18                         Call Deflection supplementary service is subscribed to.
19
20                         This functionality is generally implemented by using
21                         the +CHLD=4 * NUMBER command.
22
23                         This method should not be confused with the Transfer()
24                         method.
25
26                         Possible Errors: [service].Error.InProgress
27                                          [service].Error.NotImplemented
28                                          [service].Error.InvalidArguments
29                                          [service].Error.InvalidFormat
30                                          [service].Error.Failed
31
32                 void Hangup()
33
34                         Hangs up the voice call.
35
36                         For an incoming call, the call is hung up using ATH or
37                         equivalent.  For a waiting call, the remote party is
38                         notified by using the User Determined User Busy (UDUB)
39                         condition.  This is generally implemented using CHLD=0.
40
41                         Please note that the GSM specification does not allow
42                         the release of a held call when a waiting call exists.
43                         This is because 27.007 allows CHLD=1X to operate only
44                         on active calls.  Hence a held call cannot be hung up
45                         without affecting the state of the incoming call (e.g.
46                         using other CHLD alternatives). Most manufacturers
47                         provide vendor extensions that do allow the state of
48                         the held call to be modified using CHLD=1X or
49                         equivalent.  It should be noted that Bluetooth HFP
50                         specifies the classic 27.007 behavior and does not
51                         allow CHLD=1X to modify the state of held calls.
52
53                         Based on the discussion above, it should also be noted
54                         that releasing a particular party of a held multiparty
55                         call might not be possible on some implementations.
56                         It is recommended for the applications to structure
57                         their UI accordingly.
58
59                         NOTE: Releasing active calls does not produce
60                         side-effects.  That is the state of held or waiting
61                         calls is not affected.
62
63                         Possible Errors: [service].Error.InProgress
64                                          [service].Error.Failed
65                                          [service].Error.NotImplemented
66
67                 void Answer()
68
69                         Answers the incoming call.  Only valid if the state
70                         of the call is "incoming."
71
72                         This functionality is generally implemented by ATA
73                         AT command.
74
75                         Possible Errors: [service].Error.InProgress
76                                          [service].Error.Failed
77                                          [service].Error.NotImplemented
78
79 Signals         PropertyChanged(string property, variant value)
80
81                         Signal is emitted whenever a property has changed.
82                         The new value is passed as the signal argument.
83
84                 DisconnectReason(string reason)
85
86                         This signal is emitted when the modem manager can
87                         provide extra information about why this call was
88                         released. The possible reason values are:
89                                 "local" - The call was release due to local
90                                                 user action
91                                 "remote" - Remote party released the call
92                                 "network" - Network released the call, most
93                                                 likely due to low signal or
94                                                 other network failure
95
96                         Not all implementations are able to provide this
97                         information, so applications should treat the emission
98                         of this signal as optional. This signal will be
99                         emitted before the PropertyChanged signal.
100
101 Properties      string LineIdentification [readonly]
102
103                         Contains the Line Identification information returned
104                         by the network, if present. For incoming calls this is
105                         effectively the CLIP. For outgoing calls this attribute
106                         will hold the dialed number, or the COLP if received by
107                         the underlying implementation.
108
109                         Please note that COLP may be different from the
110                         dialed number. A special "withheld" value means the
111                         remote party refused to provide caller ID and the
112                         "override category" option was not provisioned for
113                         the current subscriber.
114
115                 string IncomingLine [readonly, optional]
116
117                         Contains the Called Line Identification information
118                         returned by the network. This is only available for
119                         incoming calls and indicates the local subscriber
120                         number which was dialed by the remote party. This is
121                         useful for subscribers which have a multiple line
122                         service with their network provider and would like
123                         to know what line the call is coming in on.
124
125                 string Name [readonly]
126
127                         Contains the Name Identification information returned
128                         by the network, if present.
129
130                 boolean Multiparty [readonly]
131
132                         Contains the indication if the voice call is part
133                         of a multiparty call or not.
134
135                         Notifications if a call becomes part or leaves a
136                         multipart call are sent.
137
138                 string State [readonly]
139
140                         Contains the state of the current call.  The state
141                         can be one of:
142                                 - "active" - The call is active
143                                 - "held" - The call is on hold
144                                 - "dialing" - The call is being dialed
145                                 - "alerting" - The remote party is being alerted
146                                 - "incoming" - Incoming call in progress
147                                 - "waiting" - Call is waiting
148                                 - "disconnected" - No further use of this object
149                                         is allowed, it will be destroyed shortly
150
151                 string StartTime [readonly, optional]
152
153                         Contains the starting time of the call.  The time is
154                         stamped when the call enters the "active" state.
155                         Client applications can use this to infer somewhat
156                         reliable call duration information.
157
158                 string Information [readonly, optional]
159
160                         Contains information related to the call for the
161                         user.  Currently this property is set for calls
162                         initiated by SIM Toolkit applications.
163
164                 byte Icon [readonly, optional]
165
166                         Icon identifier to be used instead of or together
167                         with the text information.
168
169                 boolean Emergency [readonly]
170
171                         Contains the indication if the voice call is an
172                         emergency call or not.
173
174                 boolean RemoteHeld [experimental]
175
176                         Contains the indication whether the voice call is put
177                         on hold by the remote party or not.
178
179                 boolean RemoteMultiparty [experimental]
180
181                         Contains the indication whether the voice call is
182                         joined in a multiparty call by the remote party or not.