service: Send D-Bus reply for Manager.ConnectService when service is ready
[framework/connectivity/connman.git] / doc / service-api.txt
1 Service hierarchy
2 =================
3
4 Service         net.connman
5 Interface       net.connman.Service
6 Object path     [variable prefix]/{service0,service1,...}
7
8 Methods         dict GetProperties()
9
10                         Returns properties for the service object. See
11                         the properties section for available properties.
12
13                         Possible Errors: [service].Error.InvalidArguments
14
15                 void SetProperty(string name, variant value)
16
17                         Changes the value of the specified property. Only
18                         properties that are listed as read-write are
19                         changeable. On success a PropertyChanged signal
20                         will be emitted.
21
22                         Possible Errors: [service].Error.InvalidArguments
23                                          [service].Error.InvalidProperty
24
25                 void ClearProperty(string name)
26
27                         Clears the value of the specified property.
28
29                         Possible Errors: [service].Error.InvalidArguments
30                                          [service].Error.InvalidProperty
31
32                 void Connect()
33
34                         Connect this service. It will attempt to connect
35                         WiFi, WiMAX or Bluetooth services.
36
37                         For Ethernet devices this method can only be used
38                         if it has previously been disconnected. Otherwise
39                         the plugging of a cable will trigger connecting
40                         automatically. If no cable is plugged in this method
41                         will fail.
42
43                         This method call will only return in case of an
44                         error or when the service is fully connected. So
45                         setting a longer D-Bus timeout might be a really
46                         good idea.
47
48                         Possible Errors: [service].Error.InvalidArguments
49
50                 void Disconnect()
51
52                         Disconnect this service. If the service is not
53                         connected an error message will be generated.
54
55                         On Ethernet devices this will disconnect the IP
56                         details from the service. It will not magically
57                         unplug the cable. When no cable is plugged in this
58                         method will fail.
59
60                         This method can also be used to abort a previous
61                         connectiong attempt via the Connect method.
62
63                         Possible Errors: [service].Error.InvalidArguments
64
65                 void Remove()
66
67                         A successfully connected service with Favorite=true
68                         can be removed this way. If it is connected, it will
69                         be automatically disconnected first.
70
71                         If the service requires a passphrase it will be
72                         cleared and forgotten when removing.
73
74                         This is similar to setting the Favorite property
75                         to false, but that is currently not supported.
76
77                         In the case a connection attempt failed and the
78                         service is in the State=failure, this method can
79                         also be used to reset the service.
80
81                         Calling this method on Ethernet devices will cause
82                         an error message. It is not possible to remove these
83                         kind of devices.
84
85                         Possible Errors: [service].Error.InvalidArguments
86
87                 void MoveBefore(object service)
88
89                         If a service has been used before, this allows a
90                         reorder of the favorite services.
91
92                         The target service object must be part of this
93                         profile. Moving between profiles is not supported.
94
95                         Possible Errors: [service].Error.InvalidArguments
96
97                 void MoveAfter(object service)
98
99                         If a service has been used before, this allows a
100                         reorder of the favorite services.
101
102                         The target service object must be part of this
103                         profile. Moving between profiles is not supported.
104
105                         Possible Errors: [service].Error.InvalidArguments
106
107                 void ResetCounters()
108
109                         Reset the counter statistics.
110
111                         Possible Errors: None
112
113 Signals         PropertyChanged(string name, variant value)
114
115                         This signal indicates a changed value of the given
116                         property.
117
118 Properties      string State [readonly]
119
120                         The service state information.
121
122                         Valid states are "idle", "failure", "association",
123                         "configuration", "ready" and "online".
124
125                         The "ready" state signals a successfully
126                         connected device. "online" signals that an
127                         Internet connection is available and has been
128                         verified.
129
130                 string Error [readonly]
131
132                         The service error status details.
133
134                         When error occur during connection or disconnection
135                         the detailed information is represented in this
136                         property to help the user interface to present the
137                         user with alternate options.
138
139                         This property is only valid when the service is in
140                         the "failure" state. Otherwise it might be empty or
141                         not present at all.
142
143                         Current defined error code is "dhcp-failed".
144
145                 string Name [readonly]
146
147                         The service name (for example "Wireless" etc.)
148
149                         This name can be used for directly displaying it in
150                         the application. It has pure informational purpose.
151
152                         For Ethernet devices and hidden WiFi networks it is
153                         not guaranteed that this property is present.
154
155                 string Type [readonly]
156
157                         The service type (for example "ethernet", "wifi" etc.)
158
159                         This information should only be used to determine
160                         advanced properties or showing the correct icon
161                         to the user.
162
163                 string Mode [readonly]
164
165                         If the service type is WiFi or Cellular, then this
166                         property is present and contains the mode of the
167                         network.
168
169                         For WiFi services the possible values are "managed"
170                         and "adhoc". For Cellular services it describes the
171                         network technology. Possible values are "gprs", "edge"
172                         and "umts".
173
174                         This property might be only present for WiFi and
175                         Cellular services.
176
177                 array{string} Security [readonly]
178
179                         If the service type is WiFi, then this property is
180                         present and contains the list of security methods
181                         or key management settings.
182
183                         Possible values are "none", "wep", "psk", "ieee8021x"
184                         and also "wps". Alternate values for "psk" can also
185                         be "wpa" and "rsn".
186
187                         This property might be only present for WiFi
188                         services.
189
190                 boolean LoginRequired [readonly]
191
192                         This property indicates that an additional login
193                         step, like web based authentication, is needed
194                         before the connection establishment can proceed.
195
196                 string Passphrase [readwrite]
197
198                         If the service type is WiFi, then this property
199                         can be used to store a passphrase.
200
201                         No PropertyChanged signals will be sent for this
202                         property. The PassphraseRequired property should
203                         be monitored instead.
204
205                         This property might also not always be included
206                         since it is protected by a different security policy.
207
208                 boolean PassphraseRequired [readonly]
209
210                         If the service type is WiFi, then this property
211                         indicates if a passphrase is required.
212
213                         If a passphrase has been set already or if no
214                         passphrase is needed, then this property will
215                         be set to false.
216
217                 uint8 Strength [readonly]
218
219                         Indicates the signal strength of the service. This
220                         is a normalized value between 0 and 100.
221
222                         This property will not be present for Ethernet
223                         devices.
224
225                 boolean Favorite [readonly]
226
227                         Will be true if a cable is plugged in or the user
228                         selected and successfully connected to this service.
229
230                         This value is automatically changed and to revert
231                         it back to false the Remove() method needs to be
232                         used.
233
234                 boolean Immutable [readonly]
235
236                         This value will be set to true if the service is
237                         configured externally via a configuration file.
238
239                         The only valid operation are Connect() and of
240                         course Disconnect(). The Remove() method will
241                         result in an error.
242
243                 boolean AutoConnect [readwrite]
244
245                         If set to true, this service will auto-connect
246                         when no other connection is available.
247
248                         The service won't auto-connect while roaming.
249
250                         For favorite services it is possible to change
251                         this value to prevent or permit automatic
252                         connection attempts.
253
254                 boolean SetupRequired [readonly]
255
256                         If the service is Cellular, then this property
257                         indicates that some extra setup steps are required.
258
259                         In most cases it is required to fill in the APN
260                         details.
261
262                 boolean Roaming [readonly]
263
264                         This property indicates if this service is roaming.
265
266                         In the case of Cellular services this normally
267                         indicates connections to a foreign provider when
268                         traveling abroad.
269
270                 array{string} Nameservers [readonly]
271
272                         The list of currently active nameservers for this
273                         service. If the server is not in READY or ONLINE
274                         state than this list will be empty.
275
276                         Global nameservers are automatically added to this
277                         list. The array represents a sorted list of the
278                         current nameservers. The first one has the highest
279                         priority and is used by default.
280
281                         When using DHCP this array represents the nameservers
282                         provided by the network. In case of manual settings,
283                         the ones from Nameservers.Configuration are used.
284
285                 array{string} Nameservers.Configuration [readwrite]
286
287                         The list of manually configured domain name
288                         servers. Some 3G networks don't provide correct
289                         name servers and this allows for an override.
290
291                         This array is sorted by priority and the first
292                         entry in the list represents the nameserver with
293                         the highest priority.
294
295                         When using manual configuration and no global
296                         nameservers are configured, then it is useful
297                         to configure this setting.
298
299                         Changes to the domain name servers can be done
300                         at any time. It will not cause a disconnect of
301                         the service. However there might be small window
302                         where name resolution might fail.
303
304                 array{string} Domains [readonly]
305
306                         The list of currently used search domains.
307
308                 array{string} Domains.Configuration [readwrite]
309
310                         The list of manually configured search domains.
311
312                 dict IPv4 [readonly]
313
314                         string Method [readonly]
315
316                                 Possible values are "dhcp", "manual"
317                                 and "off".
318
319                                 The value "fixed" indicates an IP address
320                                 that can not be modified. For example
321                                 cellular networks return fixed information.
322
323                         string Address [readonly]
324
325                                 The current configured IPv4 address.
326
327                         string Netmask [readonly]
328
329                                 The current configured IPv4 netmask.
330
331                         string Gateway [readonly]
332
333                                 The current configured IPv4 gateway.
334
335                 dict IPv4.Configuration [readwrite]
336
337                         Same values as IPv4 property. The IPv4 represents
338                         the actual system configuration while this allows
339                         user configuration.
340
341                         Changing these settings will cause a state change
342                         of the service. The service will become unavailable
343                         until the new configuration has been successfully
344                         installed.
345
346                 dict IPv6 [readonly]
347
348                         string Method [readonly]
349
350                                 Possible values are "auto", "manual"
351                                 and "off".
352
353                                 The value "fixed" indicates an IP address
354                                 that can not be modified. For example
355                                 cellular networks return fixed information.
356
357                         string Address [readonly]
358
359                                 The current configured IPv6 address.
360
361                         uint8 PrefixLength [readonly]
362
363                                 The prefix length of the IPv6 address.
364
365                         string Gateway [readonly]
366
367                                 The current configured IPv6 gateway.
368
369                         string Privacy [readonly]
370
371                                 Enable or disable IPv6 privacy extension
372                                 that is described in RFC 4941. The value
373                                 has only meaning if Method is set to "auto".
374
375                                 Value "disabled" means that privacy extension
376                                 is disabled and normal autoconf addresses are
377                                 used.
378
379                                 Value "enabled" means that privacy extension is
380                                 enabled and system prefers to use public
381                                 addresses over temporary addresses.
382
383                                 Value "prefered" means that privacy extension is
384                                 enabled and system prefers temporary addresses
385                                 over public addresses.
386
387                                 Default value is "disabled".
388
389                 dict IPv6.Configuration [readwrite]
390
391                         Same values as IPv6 property. The IPv6 represents
392                         the actual system configuration while this allows
393                         user configuration.
394
395                         Changing these settings will cause a state change
396                         of the service. The service will become unavailable
397                         until the new configuration has been successfully
398                         installed.
399
400                 dict Proxy [readonly]
401
402                         string Method [readonly]
403
404                                 Possible values are "direct", "auto" and
405                                 "manual".
406
407                                 In case of "auto" method, the URL file can be
408                                 provided unless you want to let DHCP/WPAD
409                                 auto-discover to be tried. In such case if DHCP
410                                 and WPAD auto-discover methods fails then
411                                 method will be "direct".
412
413                                 In case of "direct" no additional information
414                                 are provided. For the "manual" method the
415                                 Servers have to be set, Excludes is optional.
416
417                         string URL [readonly]
418
419                                 Automatic proxy configuration URL. Used by
420                                 "auto" method.
421
422                         array{string} Servers [readonly]
423
424                                 Used when "manual" method is set.
425
426                                 List of proxy URIs. The URI without a protocol
427                                 will be interpreted as the generic proxy URI.
428                                 All others will target a specific protocol and
429                                 only once.
430
431                                 Example for generic proxy server entry would
432                                 be like this: "server.example.com:911".
433
434                         array{string} Excludes [readonly]
435
436                                 Used when "manual" method is set.
437
438                                 List of hosts which can be accessed directly.
439
440                 dict Proxy.Configuration [readwrite]
441
442                         Same values as Proxy property. The Proxy represents
443                         the actual system configuration while this allows
444                         user configuration.
445
446                         If "auto" method is set with an empty URL, then
447                         DHCP/WPAD auto-discover will be tried. Otherwise the
448                         specified URL will be used.
449
450                 dict Provider [readonly]
451
452                         string Host [readonly]
453
454                                VPN host IP.
455
456                         string Domain [readonly]
457
458                                VPN Domain.
459
460                         string Name [readonly]
461
462                                VPN provider Name.
463
464                         string Type [readonly]
465
466                                VPN provider type.
467
468                 dict Ethernet [readonly]
469
470                         string Method [readonly]
471
472                                 Possible values are "auto" and "manual".
473
474                         string Interface [readonly]
475
476                                 Interface name (for example eth0).
477
478                         string Address [readonly]
479
480                                 Ethernet device address (MAC address).
481
482                         uint16 MTU [readonly]
483
484                                 The Ethernet MTU (default is 1500).
485
486                         uint16 Speed [readonly]
487
488                                 Selected speed of the line.
489
490                                 This information might not always be
491                                 available.
492
493                         string Duplex [readonly]
494
495                                 Selected duplex settings of the line.
496
497                                 Possible values are "half" and "full".
498
499                                 This information might not always be
500                                 available.