A special return value can be used to trigger a
retry of the failed transaction.
- Possible Errors: [service].Error.Retry
+ Possible Errors: net.connman.Agent.Error.Retry
+
+ void RequestBrowser(object service, string url)
+
+ This method gets called when it is required
+ to ask the user to open a website to procceed
+ with login handling.
+
+ This can happen if connected to a hotspot portal
+ page without WISPr support.
+
+ Possible Errors: net.connman.Agent.Error.Canceled
dict RequestInput(object service, dict fields)
The return value should be a dictionary where the
keys are the field names and the values are the
- actual fields. Alternative an error indicating that
- the request got cannceled can be returned.
+ actual fields. Alternatively an error indicating that
+ the request got canceled can be returned.
Most common return field names are "Name" and of
course "Passphrase".
The dictionary arguments contains field names with
their input parameters.
- Possible Errors: [service].Error.Canceled
+ In case of WISPr credentials requests and if the user
+ prefers to login through the browser by himself, agent
+ will have to return a LaunchBrowser error (see below).
+
+ Possible Errors: net.connman.Agent.Error.Canceled
+ net.connman.Agent.Error.LaunchBrowser
void Cancel()
Normally returning the "Name" field is the better
option here.
+ string Identity
+
+ Identity (username) for EAP authentication methods.
+
string Passphrase
- The passphrase for a network. For example a WEP
- key or a PSK passphrase.
+ The passphrase for authentication. For example a WEP
+ key, a PSK passphrase or a passphrase for EAP
+ authentication methods.
+
+ string PreviousPassphrase
+
+ The previous passphrase successfully saved, i.e.
+ which lead to a successfull connection. This field is
+ provided as an informational argument when connecting
+ with it does not work anymore, for instance when it
+ has been changed on the AP. Such argument appears when
+ a RequestInput is raised after a retry.
+
+ string WPS
+
+ This field requests the use of WPS to get associated.
+ This is an alternate choice against Passphrase when
+ requested service supports WPS. The reply can contain
+ either empty pin, if user wants to use push-button
+ method, or a pin code if user wants to use the pin
+ method.
+
+ string Username
+
+ Username for WISPr authentication. This field will be
+ requested when connecting to a WISPr-enabled hotspot.
+
+ string Password
+
+ Password for WISPr authentication. This field will be
+ requested when connecting to a WISPr-enabled hotspot.
Arguments string Type
- Contains the type of a field. For example "psk",
- "wep", "ssid" or plain "string".
+ Contains the type of a field. For example "psk", "wep"
+ "informational", "passphrase", "response", "ssid",
+ "wpspin" or plain "string". "informational" has no
+ "Requirement" but a "Value".
string Requirement
Contains the requirement option. Valid values are
"mandatory", "optional" or "alternate".
- The "alternate" specifies that this field can be
- return as an alternative to another one. An example
+ The "alternate" value specifies that this field can be
+ returned as an alternative to another one. An example
would be the network name or SSID.
All "mandatory" fields must be returned, while the
Contains the list of alternate field names this
field can be represented by.
+ string Value
+
+ Contains data as a string, relatively to an
+ "informational" argument.
+
Examples Requesting a passphrase for WPA2 network
RequestInput("/service1",
- { "Passphrase" : { "Type" : "psk",
+ { "Passphrase" : { "Type" : "psk",
"Requirement" : "mandatory"
}
}
==> { "Passphrase" : "secret123" }
+ Requesting a passphrase after an error on the previous one:
+
+ RequestInput("/service1",
+ { "Passphrase" : { "Type" : "psk",
+ "Requirement" : "mandatory"
+ },
+ "PreviousPassphrase" :
+ { "Type" : "informational",
+ "Value" : "secret123"
+ }
+ }
+
Requesting name for hidden network
RequestInput("/service2",
"Requirement" : "mandatory",
"Alternates" : [ "SSID" ]
},
- "SSID" : { "Type" : "ssid",
- "Requirement" : "alternate"
- }
+ "SSID" : { "Type" : "ssid",
+ "Requirement" : "alternate"
+ }
}
==> { "Name" : "My hidden network" }
+
+ Requesting a passphrase for a WPA2 network with WPS alternative:
+
+ RequestInput("/service3",
+ { "Passphrase" : { "Type" : "psk",
+ "Requirement" : "mandatory",
+ "Alternates" : [ "WPS" ]
+ },
+ "WPS" : { "Type" : "wpspin",
+ "Requirement" : "alternate"
+ }
+ }
+
+ ==> { "WPS" : "123456" }
+
+ Requesting passphrase for a WPA-Enterprise network:
+
+ RequestInput("/service4",
+ { "Identity" : { "Type" : "string",
+ "Requirement" : "mandatory"
+ },
+ "Passphrase" : { "Type" : "passphrase",
+ "Requirement" : "mandatory"
+ }
+ }
+
+ ==> { "Identity" : "alice", "Passphrase": "secret123" }
+
+ Requesting challenge response for a WPA-Enterprise network:
+
+ RequestInput("/service4",
+ { "Identity" : { "Type" : "string",
+ "Requirement" : "mandatory"
+ },
+ "Passphrase" : { "Type" : "response",
+ "Requirement" : "mandatory"
+ }
+ }
+
+ ==> { "Identity" : "bob", "Passphrase": "secret123" }
+
+ Requesting username and password for a WISPr-enabled hotspot:
+
+ RequestInput("/service5",
+ { "Username" : { "Type" : "string",
+ "Requirement" : "mandatory"
+ },
+ "Password" : { "Type" : "passphrase",
+ "Requirement" : "mandatory"
+ }
+ }
+
+ ==> { "Username" : "foo", "Password": "secret" }