Questions, notes and comments

Michael 'Mickey' Lauer mickey at vanille-media.de
Tue Apr 1 21:56:40 CEST 2008


Am Montag, den 31.03.2008, 08:37 +0300 schrieb Vesa Pikki:
> >> General notes:
> >> Timeout and other error replies to method calls should be specified.
> >>     
> >
> > Why do async. calls need to have a timeout?
> >   
> I was referring to handling timeouts on replies to AT commands sent to 
> gsm modem and specifying an error code for those occasions.
> For example when making a phone call (sending ATD command) if the gsm 
> modem never replied anything what should be the course of action for gsm 
> daemons? They could send a reply for Initiate method and a Error status 
> signal after that but not all methods in the API have convenient 
> signals. This is why I think a timeout error should be specified.

Fully agreed -- I did not have this in mind. We will probably need at
least org.freesmartphone.GSM.Error.
* Timeout
* SimRequired
* PermissionDenied

What else?

> > Right, however I don't think this needs to be exposed through the actual dbus
> > interface. It would be just a convenience method, however I'd like to keep
> > the interface as small as possible -- and you can get the same functionality
> > with RetrieveMessage and StoreMessage.
> >
> > As for the actual access to the SMes stored on the SIM, I'm leaning towards
> > doing the same as for phonebook and moving this to the SIM interface -- with
> > org.freesmartphone.storage interface providing higher level functions. What
> > do you think?
> >
> >   
> When implementing gsm daemon I'd rather separate storage from the 
> application.

Yep.

>  Therefore I'd rather have all storage related methods and 
> signals in org.freesmartphone.storage since they are read from an 
> external storage and since SMS messages in SIM are read using AT 
> commands, I'd have them in SIM interface. It should be well documented 
> that the preferred place for storing SMS messages would be the storage 
> and that SMS api should only be used if necessary.

Fully Agreed. This is a sane way. Emdete, you will probably like that as
well, right? We have a high-level interface and a low-level then, sanely
grouped into SIM and Storage. I'm in Austria this week -- I'm going to
move the respective methods from SMS and Phonebook into SIM when I'm
back in Germany.

> 
> This is a bit out of topic, but it relates to the API. I'm not sure 
> about the storage implementation, four options come to mind:
> - Having a separate application as the storage and implementing library 
> for gsm daemon to access the storage. Gsm daemon would implement dbus api.
> - Having a separate application as storage and imlement dbus storage api 
> aswell.  Gsm daemon could access it through a library and/or dbus.
> - Having storage implementation behind a library/interface that gsm 
> daemon can call. Gsm daemon would implement storage api in dbus.
> - Implement everything in gsm daemon.
> 
> What are your thoughts on this?

I'm leaning towards a seperate storage daemon. The gsm daemon should
implement the low level API (SIM), but the storage daemon should
implement the high level API. As a matter of fact, we have an
interesting GSoC 2008 proposal for such a PIM/Storage daemon.

> >> org.freesmartphone.GSM.Call.xml
> >> Microphone and/or speaker volume settings (the ones that are done with
> >> at-commands AT+CRSL and AT+CLVL) might be added here.
> >>     
> >
> > We can do that, however this is kind of a layering violation in a smartphone
> > stack, since on these systems, you typically have mixer controlled by the AP,
> > not the BP.
> >
> > If we want to support feature phones as well, then yes, let's add it. In that
> > case we need to document though, that these functions will do nothing on most
> > hardware.
> >
> >   
> My thoughts exactly.

Ok, good.

> > Further question... what would you prefer to put the small MUX interface into:
> >
> > org.freesmartphone.GSM.MUX or rather
> > org.freesmartphone.GSM.Device ?
> >
> > My gut feeling is it would make sense to put it into device as well. (We
> > should not have too many different prefixes, only as much as necessary to
> > make the subsystems clear to the users of our APIs).
> >   
> As long as the prefixes don't get stuffed. Currently device api doesn't 
> have a lot of useful content so it would be a good place for muxing 
> related methods.

Emdete, what's your opinion? Stuff it into Device or leave it in MUX?

:M:




More information about the smartphones-standards mailing list