User:Thseiler
From Openmoko
Contents |
Thoughts on gsmd
- do not reset modem on startup
- do instead query modem state
- have a separad cli tool to init the modem via gsmd in a synchronnous manner, called from the rc-init scripts
Thoughts on possible DBUS wrapper for gsmd / asla / etc
Each independent Statemachine should be exported via its own DBUS object A signal should be broadcasted for each state change, so that the gui can react accordingly.
SIM Object
- Goal: Abstract away the fact that you need to access the SIM via gsmd, have a simple hook to show the corresponding dialog when needed.
- States: NO_SIM, NEED_PIN, NEED_PUK, NEED_PIN2, NEED_PUK2, OPEN, LOCKED
- Methodes: setPIN, setPUK, setPIN2, setPUK2, close, accessPhonebook, accessSMS, lowlevelQuery
GSM Network Object
- Goal: Abstract all Meta Information about the GSM Network, provide an interface to choose the network to connect to.
- States: NO_SIGNAL, EMERGENCY-ONLY, REGISTERED_HOME, REGISTERED_VISITOR
- Methodes: getNetworks, setPreferredNetwork, register, unregister, getDeviationStatus
IP Object
- States: UNCONNECTED, MODEM_BUSY, NO_IP, READY
- Connection Type: GPRS, CSD, WIFI, USBNET, OTHER
- Cost Indicator: LOW ..... MEDIUM ..... HIGH .... VERY_HIGH
- Methods: setProxy, getProxy, etc...
- Need to think this trough
VOICE-CALL Object
- States: ON-HOOK, DIALING, WAITING, TALKING, RINGING (incomming call)
- Methods: dial, cancel, accept, reject, getActiveCalls, putonhold, switch
- Problem: Single Statemachine is not ok when two calls are in progress at the
same time ?
VOICE-AUDIO Object
- States: STANDBY, OFFHOOK, MIC_MUTED
- Send signal on state change
- Methodes: provide methods to switch active audio during call, i.e. switchtoBTHeadset
- Need to think more about how to make this as generic as possible
- setup mixer to allow to record gsm conversation via /dev/dsp,
- and a switch for /dev/dsp playback into the gsm audio,
- option1: the other party can hear it. (this is probably hard)
- option2: only local party can hear it. (this is probably simple)
SIP Object
- Goal
- States: Unregistered, Registered
Presence Object
- Is this even needed ?