| Agent hierarchy |
| =============== |
| |
| Service unique name |
| Interface net.connman.Agent |
| Object path freely definable |
| |
| Methods void Release() |
| |
| This method gets called when the service daemon |
| unregisters the agent. An agent can use it to do |
| cleanup tasks. There is no need to unregister the |
| agent, because when this method gets called it has |
| already been unregistered. |
| |
| void ReportError(object service, string error) |
| |
| This method gets called when an error has to be |
| reported to the user. |
| |
| A special return value can be used to trigger a |
| retry of the failed transaction. |
| |
| Possible Errors: net.connman.Agent.Error.Retry |
| |
| void ReportPeerError(object peer, string error) |
| |
| This method gets called when an error has to be |
| reported to the user about a peer connection. |
| |
| A special return value can be used to trigger a |
| retry of the failed transaction. |
| |
| 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) |
| |
| This method gets called when trying to connect to |
| a service and some extra input is required. For |
| example a passphrase or the name of a hidden network. |
| |
| The return value should be a dictionary where the |
| keys are the field names and the values are the |
| 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. |
| |
| 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 |
| |
| dict RequestPeerAuthorization(object peer, dict fields) [experimental] |
| |
| This method gets called when trying to connect to a |
| peer or when an incoming peer connection is requested, |
| for which some extra input is required. In this case, |
| it will only deal with WPS input as well as accepting |
| or rejecting an incoming connection. |
| |
| The return value should be a dictionary where the |
| keys are the field names and the values are the |
| actual fields. Alternatively an error indicating that |
| the request got canceled or rejected can be returned. |
| |
| The dictionary arguments contains field names with |
| their input parameters. |
| |
| Possible Errors: net.connman.Agent.Error.Canceled |
| net.connman.Agent.Error.Rejected |
| |
| void Cancel() |
| |
| This method gets called to indicate that the agent |
| request failed before a reply was returned. |
| |
| Fields string Name |
| |
| The name of a network. This field will be requested |
| when trying to connect to a hidden network. |
| |
| array{byte} SSID |
| |
| This field is an alternative to "Name" for WiFi |
| networks and can be used to return the exact binary |
| representation of a network name. |
| |
| Normally returning the "Name" field is the better |
| option here. |
| |
| string Identity |
| |
| Identity (username) for EAP authentication methods. |
| |
| string 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. In case of WPS |
| association through PIN method: when retrying, the |
| previous wpspin will be provided. |
| |
| 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. |
| |
| In case of a RequestPeerAuthorization, this field will |
| be set as mandatory. |
| |
| 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" |
| "passphrase", "response", "ssid", "wpspin" or plain |
| "string". |
| |
| string Requirement |
| |
| Contains the requirement option. Valid values are |
| "mandatory", "optional", "alternate" or |
| "informational". |
| |
| 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 |
| "optional" can be returned if available. |
| |
| Nothing needs to be returned for "informational", as it |
| is here only to provide an information so a value is |
| attached to it. |
| |
| array{string} Alternates |
| |
| 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", |
| "Requirement" : "mandatory" |
| } |
| } |
| ==> { "Passphrase" : "secret123" } |
| |
| Requesting a passphrase after an error on the previous one: |
| |
| RequestInput("/service1", |
| { "Passphrase" : { "Type" : "psk", |
| "Requirement" : "mandatory" |
| }, |
| "PreviousPassphrase" : |
| { "Type" : "psk", |
| "Requirement : "informational", |
| "Value" : "secret123" |
| } |
| } |
| |
| Requesting name for hidden network |
| |
| RequestInput("/service2", |
| { "Name" : { "Type" : "string", |
| "Requirement" : "mandatory", |
| "Alternates" : [ "SSID" ] |
| }, |
| "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 a passphrase for a WPA2 network with WPS alternative |
| after an error on the previous one: |
| |
| RequestInput("/service3", |
| { "Passphrase" : { "Type" : "psk", |
| "Requirement" : "mandatory", |
| "Alternates" : [ "WPS" ] |
| }, |
| "WPS" : { "Type" : "wpspin", |
| "Requirement" : "alternate" |
| } |
| "PreviousPassphrase" : |
| { "Type" : "wpspin", |
| "Requirement : "informational", |
| "Value" : "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" } |
| |
| Requesting a answer about an inconming peer connection: |
| |
| RequestPeerAuthorization("/peer3", {}) |
| |
| ==> { } |
| |
| Requesting the WPS details when connecting to a peer: |
| |
| RequestPeerAuthorization("/peer4", |
| { "WPS": |
| { "Type" : "wpspin", |
| "Requirement" : "mandatory" |
| } |
| } |
| |
| ==> { "WPS" : "" } |