Depending on the bearer settings the current service
is used or a new service will be connected.
- This method returns when the connection has been
- established and it is online. Additionally an update
- notification with the IP settings is sent.
+ This method returns immediately after it has been
+ called. The application is informed through the update
+ notification about the state of the session.
It is also not guaranteed that a session stays online
after this method call. It can be taken offline at any
This method indicates that the current session does
not need a connection anymore.
- In most cases this method returns right away without
- any delays. However in some cases it might take a few
- seconds before a connection can be terminated.
+ This method returns immediately. The application is
+ informed through the update notification about the
+ state of the session.
void Change(string name, variant value)
This indicates the current bearer that is used
for this session. Or an empty string if no bearer
- is available.
+ if available.
+
+ string ConnectionType [readwrite]
+
+ This is used to indicate which connection is requested
+ from the session. The state of the session will be
+ updated accordingly. Values can be nothing, 'local' or
+ 'internet'.
+ 'local' means the session requests to be connected,
+ but does not require specifically to be online.
+ Therefore State property will be set to 'connected' if
+ underlying service gets ready and/or online.
+ 'online' means the session requests to be connected,
+ and online. State property will never get 'connected'
+ but instead will switch to 'online' if underlying
+ service gets online.
+ No value means the session requests any kind of
+ connection and the state will be updated on all steps,
+ 'connected' and 'online'. This is the default value.
+
+ boolean State [readonly]
+
+ This indicates if the connection is disconnected,
+ connected or online. It is updated according to the
+ selected ConnectionType. The session will not be
+ in a useful shape (i.e.: providing a network connection
+ to the owner) until its State gets updated to connected
+ and/or online.
+
+ This maps to the useful port of the service state.
+ And it is only valid for the selected bearer
+ configuration. Otherwise it will be reported as
+ disconnected even if connected services are present.
+
+ In addition the State settings notification might
+ not happen right away. Notifications of this state
+ can be delayed based on the speed of the bearer. It
+ is done to avoid congestion on bearers like cellular
+ etc.
- boolean Online [readonly]
+ boolean Priority [readwrite]
- This indicates if the connection is online or
- offline.
+ This allows a session to mark itself as priority or
+ not. In general application are not allowed to make
+ themselves more important than others.
- This maps to the online service state. And it is
- only valid for the selected bearer configuration.
- Otherwise it will be reported as offline even if
- the global state would be online.
+ The priority handling is done internally by usage
+ and first come, first serve order. By default this
+ settings is of course false.
- In addition the Online settings notification might
- not happen right away. Notifications of online state
- can be delayed based on the speed of the bearer. It
- is done to avoid congestion on bearers like 3G etc.
+ Internally there can be different priorities for
+ different application, but these are defined by a
+ configuration file and not via this interface.
- boolean Realtime [readwrite]
+ An application that calls the method to connect
+ a session is preferred over other sessions. This
+ priority value is more for application that want to
+ push themselves up in the asychronization notification
+ queue once a bearer becomes online.
- This indicates if the application uses realtime traffic.
+ This actual priority order also depends on the
+ allowed bearers and other factors. This is setting
+ is just a little indicator of one application being
+ notified before another one.
For example a streaming session should set the
- realtime value. As soon as realtime data is involved
+ priority value. As soon as realtime data is involved
then this should be set. An email client should not
set this value.
In general this list should be empty to indicate that
any bearer is acceptable.
+ The order of the entries in AllowedBearers matters.
+ The services are sorted in the order of the bearer
+ entries in this list.
+
+ Also "*" matches any bearer. This is usefull to prefer
+ certain bearers such as Wifi with a fallback to any
+ other available bearer.
+
dict IPv4 [readonly]
- Current IPv4 configuration. This settings is only
- valid when online is true as well. Otherwise an
- empty dictionary is reported.
+ Current IPv4 configuration.
dict IPv6 [readonly]
- Current IPv6 configuration. This setting is only
- valid when online is true as well. Otherwise an
- empty dictionary is reported.
+ Current IPv6 configuration.
boolean AvoidHandover [readwrite]
modem. The Emergency is true if an emergency call or
related operation is currently active.
+ If the emergency application sets this setting to true
+ all other session will be informed about the emergency
+ situation with setting it also to true. Only the
+ emergency application can set back to false.
+
+ As long the EmergencyCall is true no new session can
+ be created.
+
Only one application is supposed to write this setting
and therefore it will be protected by additional
PolicyKit rule so that only the emergency application
can write.
- boolean RoamingAllowed [readwrite]
+ The emergency application is expected to call Connect()
+ after setting this setting true. If the emergency
+ situation is over the application should call
+ Disconnect() and also set the EmergencyCall to false
+ afterward.
+
+ Note only services matching the AllowedBearers rule
+ will be considered.
+
+ string RoamingPolicy [readwrite]
+
+ The allowed roaming behavior.
+
+ Valid policies are "national", "international",
+ "default", "always" and "forbidden".
+
+ "national" allows roaming within a country.
+ "international" allows roaming in a country and
+ between countries.
+
+ "default" is used to tell the Session to use
+ the global roaming setting.
+
+ "always" will overwrite the default "forbidden"
+ value which is useful for emergency application.
+ This value will be protected by additional PolicyKit
+ rule.
- By default this value is true. The application can
- disabling roaming on a global level.
+ Default value is "forbidden".
string Interface [readonly]