Everyone, So as it happens I had also been brainstorming a GPRS API for the last several days. And somewhat spontaneously a GPRS api discussion happened on IRC between myself, Marcel and Ismo. The following GPRS API proposal is a result of this discussion. I'd like all interested to comment. What needs improvement? What is missing? What should be removed?
Please note that Secondary PDP contexts, Traffic Filters and Network Activated (Incoming) PDP contexts are not covered in this proposal. These features are not commonly used and none of us have real experience with them yet. However, we considered these features and have left room in the APIs for further expansion. Data Connection Manager hierarchy ================= Service org.ofono Interface org.ofono.DataConnectionManager Object path [variable] Methods dict GetProperties() Returns all global system properties. See the properties section for available properties. Possible Errors: [service].Error.InvalidArguments void SetProperty(string property, variant value) Sets the property to a desired value Possible Errors: [service].Error.InvalidArguments [service].Error.InvalidFormat [service].Error.Failed void DeactivateAll() Deactivates all active contexts. object CreateContext() Creates a new Primary context. Returns the object path of the created context. object RemoveContext() Removes a primary context. All secondary contexts, if any, associated with the primary context are also removed. Signals PropertyChanged(string property, variant value) This signal indicates a changed value of the given property. Properties array{object} PrimaryContexts [readonly] List of all primary contexts objects. boolean Attached [readonly] Contains whether the Packet Radio Service is attached. The attach state might change dynamically based on availability of network resources. If this value changes to false, the user can assume that all contexts have been deactivated. If the modem is detached, certain features will not be available, e.g. receiving SMS over packet radio or network initiated PDP activation. boolean RoamingAllowed [readwrite] Contains whether data roaming is allowed. In the off setting, if the packet radio registration state indicates that the modem is roaming, oFono will automatically detach and no further connection establishment will be possible. boolean Powered [readwrite] Controls whether packet radio use is allowed. Setting this value to off detaches the modem from the Packet Domain network. string Status [readonly] The current packet radio registration status of a modem. The possible values are: "unregistered" Not registered to any network "registered" Registered to home network "searching" Not registered, but searching "denied" Registration has been denied "unknown" Status is unknown "roaming" Registered, but roaming uint16 LocationAreaCode [readonly, optional] Contains the current location area code. uint32 CellId [readonly, optional] Contains the current network cell id. string Technology [readonly, optional] Contains the technology of the current network. The possible values are: "GSM", "GSMCompact", "UTRAN", "GSM+EGPS", "UTRAN+HSDPA", "UTRAN+HSUPA", "UTRAN+HSDPA+HSUPA", "E-UTRAN" Primary Data Context hierarchy ================= Service org.ofono Interface org.ofono.PrimaryDataContext Object path [variable] Methods dict GetProperties() Returns all properties for the context object. Possible Errors: [service].Error.InvalidArguments void SetProperty(string property, variant value) Sets the property to a desired value Possible Errors: [service].Error.InvalidArguments [service].Error.InvalidFormat [service].Error.Failed Signals PropertyChanged(string property, variant value) This signal indicates a changed value of the given property. Properties boolean Activated [readwrite] Holds whether the context is activated. This value can be set to activate / deactivate the context. string AccessPointName [readwrite] Holds the name of the access point. This is abbreviated as APN. This value cannot be changed when the context is active. string Username [readwrite] Holds the username to be used for authentication purposes. This value cannot be changed when the context is active. string Password [readwrite] Holds the password to be used for authentication purposes. This value cannot be changed when the context is active. string Interface [readonly, optional] Holds the interface of the network interface created by this context (e.g. "ppp0") array{string} DomainNameServers [readonly, optional] Holds the list of domain name servers for this context. Regards, -Denis _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono