Porting/Cellular Modem

 
Line 2: Line 2:
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.
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.
-
The Cellular Services Daemon exposes the following dbus interfaces:
+
== CSD DBus Interfaces ==
-
* com.nokia.csd.Call (handles phone calls)
+
 
-
* com.nokia.csd.Call.Instance (handles a specific instance of a phone call)
+
The Cellular Services Daemon exposes the following dbus interfaces
-
* com.nokia.csd.Call.Conference (handles conference calls)
+
 
-
* com.nokia.csd.GPRS (handles cellular data transfer)
+
{| class="wikitable sortable"
-
* com.nokia.csd.GPRS.Context (handles a specific cellular data context)
+
! Interface !! Handles
-
* Phone.Net (handles network related things including signal strength, change of cell/operator, change between 2g/3g and network time info change)
+
|-
-
* Phone.Sim (handles SIM related things including IMSI, HPLMN and SIM status)
+
| com.nokia.csd.Call || Phone calls
-
* Phone.Sim.Security (handles SIM security related things including IMEI, simlock and SIM PIN)
+
|-
-
* Phone.Sim.Phonebook (handles SIM phonebook)
+
| com.nokia.csd.Call.Instance || A specific instance of a phone call
-
* com.nokia.csd.SMS.Outgoing (handles outgoing SMS messages)
+
|-
-
* com.nokia.csd.SMS.SIM (handles SMS messages stored on the SIM)
+
| com.nokia.csd.Call.Conference || Conference calls  
-
* Phone.SMS (handles SMS messages including Cell Broadcast SMS messages)
+
|-
-
* com.nokia.csd.SS (handles Supplementary Services such as call divert call barring and call waiting)
+
| com.nokia.csd.GPRS || Cellular data transfer
-
* com.nokia.csd.SS.USSD (handles USSD codes)
+
|-
-
* com.nokia.phone.SSC (handles cellular modem state and status)
+
| com.nokia.csd.GPRS.Context || A specific cellular data context
 +
|-
 +
| Phone.Net || Network related things including:-
 +
*signal strength
 +
*change of cell/operator  
 +
*change between 2g/3g  
 +
*network time info change  
 +
|-
 +
| Phone.Sim || SIM related things including:-
 +
*IMSI  
 +
*HPLMN  
 +
*SIM status  
 +
|-
 +
| Phone.Sim.Security || SIM security related things including :-
 +
*IMEI
 +
*simlock  
 +
*SIM PIN  
 +
|-
 +
| 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:-
-
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.
# 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 each interface/signal/method call, implement a compatible interface/signal/method call on top of oFono or fsogsmd (or another cellular stack)

Latest revision as of 10:04, 14 September 2013

[edit] 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.

[edit] 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:-
  • signal strength
  • change of cell/operator
  • change between 2g/3g
  • network time info change
Phone.Sim SIM related things including:-
  • IMSI
  • HPLMN
  • SIM status
Phone.Sim.Security SIM security related things including :-
  • IMEI
  • simlock
  • SIM PIN
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

[edit] 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:-

  1. Reverse engineer the dbus interfaces (as listed above) exposed by the Cellular Services Daemon and System Synchronization Controller Daemon.
  2. For each interface/signal/method call, implement a compatible interface/signal/method call on top of oFono or fsogsmd (or another cellular stack)
  3. 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
  4. 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)