Porting/Cellular Modem
From Maemo Wiki
Jump to navigationJump to search
Thoughts on how to handle the Cellular Modem in Fremantle-port/Neo900
The Cellular Modem architecture on the N900 consists of a daemon, the Cellular Services Daemon that talks to the cellular modem via ISI packets, a daemon, the System Synchronization Controller Daemon that handles cellular modem state, a daemon, the Phonet AT modem daemon that emulates AT commands on top of phonet and configuration utilities to configure phonet interfaces.
CSD DBus Interfaces
The Cellular Services Daemon exposes the following dbus interfaces
| Interface | Handles |
|---|---|
| com.nokia.csd.Call | Phone calls |
| com.nokia.csd.Call.Instance | A specific instance of a phone call |
| com.nokia.csd.Call.Conference | Conference calls |
| com.nokia.csd.GPRS | Cellular data transfer |
| com.nokia.csd.GPRS.Context | A specific cellular data context |
| Phone.Net | Network related things including:-
|
| Phone.Sim | SIM related things including:-
|
| Phone.Sim.Security | SIM security related things including :-
|
| Phone.Sim.Phonebook | SIM phonebook |
| com.nokia.csd.SMS.Outgoing | Outgoing SMS messages |
| com.nokia.csd.SMS.SIM | SMS messages stored on the SIM |
| Phone.SMS | SMS messages including Cell Broadcast SMS messages |
| com.nokia.csd.SS | Supplementary Services such as call divert call barring and call waiting |
| com.nokia.csd.SS.USSD | USSD codes |
| com.nokia.phone.SSC | cellular modem state and status |
Proposal
The proposal I have for porting the Cellular stack to new hardware (anything with a different cellular modem to the N900) is as follows:-
- Reverse engineer the dbus interfaces (as listed above) exposed by the Cellular Services Daemon and System Synchronization Controller Daemon.
- For each interface/signal/method call, implement a compatible interface/signal/method call on top of oFono or fsogsmd (or another cellular stack)
- For cases where implementing the interface is not fesable or is too hard, identify the consumers of that interface and clone/modify/replace those consumers to do things differently
- If this is done properly, all the upper-level components that talk to the cellular stack (including telepathy-ring and the dialer and messaging apps) will continue to function as-is.
Not sure yet what to do about phonet-at and phonet-utils (not even sure where they get used, probably something to do with Nokia Suite I suspect)