**** BEGIN LOGGING AT Wed Jul 21 02:59:58 2010 Jul 21 11:03:27 denkenz, yang_office: do you think we should implement the Set up call command? it seems to be one of the ones that have to be implemented by firmware Jul 21 11:05:07 yang_office: have you started working on Set up call by any chance? Jul 21 11:05:27 balrog-k1n: not yet. Jul 21 11:05:38 ok Jul 21 11:06:07 I just finished reading EFust and EFest, which would be used by send ussd. Jul 21 11:11:37 the mbmmodem does not implement Set up call in firmware, so we have to implement it Jul 21 11:12:10 but the dbus api will be tricky Jul 21 12:02:48 I have the N900 which uses the isimodem driver, is there anyway to make ofono create a dev node to pass raw AT commands to oFono/isimodem rather than using dbus? Jul 21 12:03:13 any way* Jul 21 12:04:13 Termana: not at the moment, but AT emulation is being added Jul 21 12:09:02 Termana: I'm curious, what do you want exactly to do? Jul 21 12:20:00 kvalo, NITdroid project wants to use ofono to communicate with the n900's phonet modem and Android's RILD communicates over a dev node with AT commands (to my knowledge) Jul 21 12:20:13 pnatd is no good Jul 21 12:20:18 and closed source Jul 21 12:22:41 that sounds tricky Jul 21 12:26:18 kvalo, not if AT emulation is provided. Jul 21 12:27:12 We had it partially working with pnatd, it would see signal, but pnatd doesn't implement all AT commands, and so it doesn't work Jul 21 12:40:59 i think you can make a rild plugin of some sort to talk D-bus instead Jul 21 13:12:54 Termana: Using oFono behind rild is never going to work Jul 21 13:13:06 Termana: You're better off writing a rild plugin that uses ISI Jul 21 13:54:35 denkenz, on what grounds are you saying it won't work? The reference implementation of RILD relies solely on AT commands to communicate. If I can get ofono to communicate with isimodem with AT commands, then there should be no reason for it not to work, provided all the AT commands are there (unlike pnatd) Jul 21 14:06:46 Termana: on the grounds that I wrote most of oFono and I'm telling you it won't work ;) Jul 21 14:07:08 oFono AT emulation will never be fully featured enough Jul 21 14:19:29 Termana: in case you missed denkenz comments: Jul 21 14:19:35 17:06 < denkenz> Termana: on the grounds that I wrote most of oFono and I'm telling you it won't work ;) Jul 21 14:19:39 17:07 < denkenz> oFono AT emulation will never be fully featured enough Jul 21 14:20:26 AT emulation is not meant to be good enough for a telephony stack to function over the emulator Jul 21 14:21:16 If you want that, bypass oFono and implement your own ISI driver Jul 21 14:21:23 but if it gets better than it was meant to be then all the better i guess :) Jul 21 14:21:51 Doubtful, 27.007 call control is fucked Jul 21 14:22:05 So unless we start inventing our own call control extensions it will never be good enough Jul 21 15:22:26 Hi, I am planning on implementing cell tower-based positioning. Jul 21 15:23:00 I am trying to find the status of the neighboring cell info api Jul 21 15:23:15 I see there was mail about it in Jan and Feb 2010. Jul 21 15:23:42 But I do not see OFONO_CELL_INFO_H Jul 21 15:23:50 in the current source Jul 21 15:36:01 This capability is not yet enabled Jul 21 15:36:24 See ofono/TODO, search for Neighbor Cell Info Jul 21 15:36:37 So far no one owns this task Jul 21 15:36:53 Yes, I saw it in there Jul 21 15:37:29 If you're interested the first thing is to take formal ownership of the task and start making proposals on the mailing list for the API Jul 21 15:37:53 This way we have some idea who's doing what and not to interfere Jul 21 15:41:03 My main interest is in the positioning itself and not really in the API Jul 21 15:42:32 e.g. as a consumer? Jul 21 15:42:37 Right Jul 21 15:42:54 Then you might have to wait until someone is interested in being the provider :) Jul 21 15:43:28 I'd like to make something like gsmloc, but that "crowdsources" the cell tower position estimates Jul 21 15:45:05 and then automatically updates people's database Jul 21 15:45:16 so they can do the positioning "offline" Jul 21 15:46:03 Each user would have a small cache of the db Jul 21 15:47:40 Is anything wrong with the API proposed in Feb, or is it just that it hasn't been implemented? Jul 21 15:48:14 Honestly the core team has little experience with location services Jul 21 15:48:24 And we're really busy with other tasks Jul 21 15:48:34 So until we learn we can't really give good feedback Jul 21 15:49:01 So either someone else has to step up, or it has to wait / be custom for the particular hw Jul 21 15:50:42 OK. I will try the API for some hw we have and see how it goes. Jul 21 15:50:44 If you feel the API is great, feel free to reply to the mailing list and say so Jul 21 15:50:54 Any data points are actually useful Jul 21 15:53:00 Sounds good. I will let you know how it goes. The points already raised about polling and saving power made sense. Jul 21 15:53:34 I'll take what was said in Feb as a starting point, since it hasn't changed since then. Jul 21 15:54:42 great, looking forward to your findings Jul 21 15:55:51 denkenz: so i like the idea of splitting GetKey and GetInput into methods Jul 21 15:56:42 there are a couple of other things i want to ask, i'll ask here Jul 21 15:56:47 sure Jul 21 15:57:13 you moved to main menu to properties, but there's no method like Select() to actually make a selection Jul 21 15:57:31 also the main menu can have a default item etc, all the things that a non-main menu can have Jul 21 15:57:50 Yeah, there's one method missing from my proposal Jul 21 15:57:57 Select(id, object agent) Jul 21 15:58:44 The agent passed to Select overrides the current default agent for the duration of the session Jul 21 15:58:54 or when the agent dies Jul 21 15:59:03 About the default item Jul 21 15:59:10 I don't see that in the spec, where is the default given? Jul 21 15:59:31 let me check.. Jul 21 16:00:24 e.g. SelectItem has an ItemIdentifier object, I assume that is the default Jul 21 16:00:38 SetupMenu has nothing like it Jul 21 16:00:41 denkenz: yeah, actually i'm wrong, there's no default for the main menu Jul 21 16:02:13 so we can have two agents, one used when the action was started using the main menu and a default one Jul 21 16:02:29 Correct Jul 21 16:02:33 is there some way to send a "End Session" and unregister then current agent? Jul 21 16:02:53 My thinking is that the agent can simply die Jul 21 16:03:10 However, this might not work out Jul 21 16:03:14 So I'm open to suggestions Jul 21 16:03:35 to die, the dbus client that registered the agent needs to disconnect from dbus, right? Jul 21 16:03:49 Yep Jul 21 16:04:03 However, that is the typical use case IMO Jul 21 16:04:15 user starts an app to interact with STK, when he is done, he exits it Jul 21 16:05:40 Also, doesn't mbm at least send end session notifications directly from the modem? Jul 21 16:06:02 yeah, very reliably Jul 21 16:06:31 So that's another thing we can utilize Jul 21 16:06:52 when you send a "Go Back" or "End Session" and are supposed to land in the main menu it always sends a *STKEND Jul 21 16:06:53 either start an idle timer and end the session (and the agent) or do it based on the modem Jul 21 16:07:32 Or if we're back at the main menu Jul 21 16:08:10 i think we're not supposed to track when we're back at the main menu, the card needs to know and send a notification Jul 21 16:08:57 fair enough, then we rely on the modem driver / sim card to tell us Jul 21 16:09:33 for example SelectItem is not only used for menus, the card i have also uses it e.g. to let you choose an email from which you want to send a message if you have more than one address Jul 21 16:10:06 No you're right Jul 21 16:10:53 So lets assume the modem tells us when the session is ended Jul 21 16:11:02 And we make up some heuristic for the ones that don't Jul 21 16:11:56 it may be a timer in the driver maybe, but i think such modems will send it as a terminal command possibly Jul 21 16:12:09 sorry, proactive command Jul 21 16:13:08 yeah, maybe if the SIM sends us a new Setup Menu, then we assume prior session terminated Jul 21 16:13:29 Just need to try it out and see how well this works Jul 21 16:14:17 so i'm not sure if it's worth the complication with two agents and the main menu handled differently than select item -- it makes sense if there are really going to be two agents, Jul 21 16:14:29 but they would have to implement mostly the same things Jul 21 16:14:43 so maybe the home screen app should handle sim apps and should be the only agent Jul 21 16:15:06 since it has to implement select item, display text, etc anyway Jul 21 16:15:09 what do you think? Jul 21 16:15:45 by having the same api for main menu and for select item, we save code in the UI and in ofono (basically main menu is for free) Jul 21 16:15:57 That is my original suggestion Jul 21 16:16:08 And one I still feel is the easiest Jul 21 16:16:22 However, you and holtmann had some problems with it Jul 21 16:16:51 oh, i'm just not sure which is better Jul 21 16:18:45 Me either ;) Jul 21 16:19:13 holtmann's argument was that it would mess up the UI or make it not look right Jul 21 16:19:18 another problem with two agents that i can see is that when, say, an SMS triggers a display text, and the menu app is running, it will be sent to that agent even though normally it would go to the default agent Jul 21 16:19:30 and may confuse the user Jul 21 16:19:42 balrog-k1n: Yep, I raised this as well Jul 21 16:20:00 balrog-k1n: My feeling is these things are rare enough that it won't matter Jul 21 16:20:22 denkenz: yes, probably (if they happen at all) Jul 21 16:20:30 However, certainly a concern, and nothing we can do about them :( Jul 21 16:20:58 They do happen, but probably only with certain SIM apps Jul 21 16:21:20 There's a thing called STK interpreter which can trigger STK events based on SMS-PP downloads Jul 21 16:21:46 Almost all SIMs support it, but probably only certain networks do Jul 21 16:22:16 is that a special SIM, or like an app that is in some SIMs? Jul 21 16:23:12 we could fake the SMS-PPs from network if we knew what they look like Jul 21 16:23:26 just send envelopes to the card Jul 21 16:23:30 All major SIM vendors have their own STK interpreter Jul 21 16:23:41 There's even a 3GPP standard now Jul 21 16:24:01 However, you need to know the encryption key before your SMS-PP will be accepted Jul 21 16:24:20 So it is feasible, however I wasn't brave enough to try it out Jul 21 16:24:48 ok, doesn't sound too easy Jul 21 16:25:27 The format itself is fairly straight forward, it was the encryption that might be tricky Jul 21 16:25:36 a SIM i have uses all the basic commands except GetKey Jul 21 16:25:48 See 31.114 Jul 21 16:26:25 thanks, will check Jul 21 16:27:08 balrog-k1n: And we also have phonesim, plus I have some german SIMs with STK Jul 21 16:27:14 Unfortunately they're in German :P Jul 21 16:32:04 denkenz, holtmann: so, from the code simplicity pov, it's definitely easier for us and for the UI author to have just one agent, and add a [service].Error.SimToolkit.EndSession response to the other commands Jul 21 16:32:37 Please respond to the mailing list, I agree btw Jul 21 16:32:54 But lets have a wider discussion, maybe even our UI folks are listening Jul 21 16:33:09 ok, will do Jul 21 16:34:39 denkenz: one more question is about the help system thing, do you not want it in the api at all or just skipped from the document to make it clearer? Jul 21 16:35:28 the nice thing about it is that a ofono client can ignore the parameters if they don't support it Jul 21 16:35:49 Honestly I think the help system aspect is pointless Jul 21 16:35:58 And no phone I've seen implements it Jul 21 16:36:09 If you need help with a 4 item menu, then you're screwed :) Jul 21 16:36:29 Put down the phone and use one from the 1970s Jul 21 16:36:43 yeah, probably Jul 21 16:37:05 Again, I could be wrong, but that's my current thinking Jul 21 16:37:07 the two sims i tested don't have help for any of the menus or other commands Jul 21 16:37:16 It is also _very_ painful to explain to the UI writer Jul 21 16:37:53 Yeah, so I say we ignore it for now Jul 21 16:37:59 If someone complains we can think about it Jul 21 16:38:21 ok Jul 21 16:41:13 It is highly unlikely the SIM would have enough storage to make the help system work Jul 21 16:41:39 All of them require translations, so unless its something _very_ basic it probably won't be able to fit it in Jul 21 16:42:09 But who knows what these guys think up Jul 21 16:42:27 heh Jul 21 17:04:42 sabotage: I'd really like to hear from you on the STK stuff btw. You're the biggest expert on our UI Jul 21 18:22:58 denkenz: I'm on but rarely following in real time... summary (and no, ATM I don't have time to review the backlog unless it's less than say 20 lines Jul 21 18:23:26 * sabotage knows not what STK expands to either Jul 21 18:26:38 or tell me the backlog timestamp to start from and I'll see how far I get Jul 21 18:28:17 just see today's discussion Jul 21 18:28:28 and the stk proposal email from yesterday from me Jul 21 18:28:47 sabotage: I'm assuming you'll be the poor sob who has to implement the UI for it :) Jul 21 18:29:10 * sabotage shrugs Jul 21 18:29:18 Start at about 9AM PST Jul 21 18:29:27 * sabotage is used to being the "poor slob" Jul 21 18:29:40 usually more poor than slob but meh... Jul 21 18:29:46 lol Jul 21 18:30:03 Personally I prefer the opposite Jul 21 18:30:10 Being more slob than poor ;) Jul 21 18:30:43 unfortunately, a tendancy towards one always leads to the other :( Jul 21 18:31:19 one of those "natural rules" or something Jul 21 18:31:31 * sabotage starts by reading email Jul 21 18:31:33 fair enough Jul 21 18:36:28 denkenz: BTW, I'm starting to collect "minions" as we like to affectionately call them ;) Jul 21 18:36:42 Good :) Jul 21 18:37:11 so I may be able to delegate (one of the "areas for improvement" in my last review, learning to delegate ;) Jul 21 18:37:33 to which I repond, "ok, provide skilled labor" Jul 21 18:37:53 lol, that actually worked? Jul 21 18:39:28 meh Jul 21 18:39:59 I have some of my other tasks just now starting to be offloaded, though it's not looking like it will be a rapid hand off Jul 21 18:40:20 and then I do have two others owning up to adding missing features in dialer Jul 21 18:40:46 and they are decent/skilled troublemaker^w developers Jul 21 18:41:56 Well you guys definitely need the manpower Jul 21 18:41:59 and to anyone else listening... meego-handset-dialer now has a TODO file (thanks to inspiration from ofono) so feel free to start sending patches ;) Jul 21 18:43:03 Hey folks. :) Do i understand it right that for N900 support you use gisi + drivers/isimodem, and that there's basically no documentation about using ISI whatsoever, the best one can get is ofono sources? And why doesn't gisi/ hold all the binary constants needed to communicate with the modem and instead some headers in drivers/isimodem do? Jul 21 18:43:52 Today Nokia does not provide docs, they just provide the implementation Jul 21 18:44:25 All other questions are better asked on the list, its vacation time in Finland Jul 21 18:44:54 denkenz: Oh, vacation time, sounds nice :) Thanks for the answer. Jul 21 18:45:17 you can also search for the Nokia modem API Jul 21 18:45:24 It is largely based on ISI Jul 21 18:46:04 However, various modems from Nokia might implement or not implement it Jul 21 18:46:05 http://www.wirelessmodemapi.com/ Jul 21 18:46:05 denkenz: it's just that i thought that there would be a separate library usable for other projects, but in reality it appears like it's all reimplemented inside ofono and it's not really abstracted or documented. Jul 21 18:46:35 Not really sure why you thought that would be the case ;) Jul 21 18:47:45 Nice link, requires registration though :-O Jul 21 18:48:00 denkenz: RE STK... which spec will the ofono implementation be targeting? Jul 21 18:48:11 sabotage: ETSI 102.223 Jul 21 18:48:22 thanks Jul 21 18:49:15 sabotage: With things taken from 3GPP 31.111, but they're for parts that are not covered by 102.223 Jul 21 18:49:18 any considerations for 3G (I can't even recall if ofono does 3G) or 3GPP 31.111 Jul 21 18:49:23 ah Jul 21 18:49:46 Basically 31.111 does: "This is covered by 102.223, see that spec for details" Jul 21 18:49:51 for about 90% of the features Jul 21 18:49:57 heh Jul 21 18:49:59 So 102.223 is the 'primary' spec Jul 21 18:50:08 31.111 is for things which are GSM specific Jul 21 18:50:08 ok, /me has some reading to do then :( Jul 21 18:50:23 Under discussion today are non-GSM specific parts Jul 21 18:51:55 Also kill then steal or simply steal someone's iPhone / Nokia phone / Android phone with a foreign SIM card Jul 21 18:52:07 And play with Sim Toolkit there Jul 21 18:53:14 denkenz: define "foreign" SIM? Jul 21 18:53:29 Australian / German / UK Jul 21 18:53:38 oh :/ Jul 21 18:53:53 I've not seen STK on US providers Jul 21 18:54:55 * sabotage looks around and sees one of the UX guys from UK... and begins plot to swap SIMs Jul 21 18:56:12 If you can't find one, let me know Jul 21 18:56:26 I collect pre-paid SIMs from every country I visit, so I should have a few to spare Jul 21 18:56:49 ETSI.org website seems to suggest they want money from me to actually get the spec... Jul 21 18:57:12 No its free Jul 21 18:57:36 ah Jul 21 18:57:41 denkenz: as a matter of fact, the ofono ISI code seems to be clean and clear, quite readable, so lack of documentation shouldn't be a big problem assuming one can ask questions about details from time to time :) Jul 21 18:57:45 just found the "free pdf" link Jul 21 18:58:25 PaulFerster: oFono tends to facilitate that, however only the Nokia guys can answer the more detailed questions Jul 21 18:59:55 denkenz: the problem for real life usage of oFono as i understand it now is that it's not a complete telephony solution and that it lacks UI. Is it still the case? I wonder why N900 users are not using alternative oFono-based UIs yet. Jul 21 19:00:53 There is a Meego UI, the maintainer is even on this channel ;) Jul 21 19:00:56 denkenz: specific version of 102 223 or is latest ok? Jul 21 19:01:08 I see V9.1.0 Jul 21 19:01:11 sabotage: Latest is fine Jul 21 19:01:15 nod Jul 21 19:01:37 PaulFerster: There's also one from NeoPhysis, etc Jul 21 19:01:47 We build it, they will come Jul 21 19:02:51 PaulFertser: I am the author/maintainer of the MeeGo dialer app... I can share many, um, thoughts... yeah, that's the PC word, on the API from a GUI developers POV :P Jul 21 19:03:13 denkenz: what are you using for PIM integration? How does e.g. SMS messages are handled? Is it ready for everyday usage? Jul 21 19:03:13 o_O GACK!!! Jul 21 19:03:17 lol, start sharing ;) Jul 21 19:03:22 denkenz: is there any one huwei dongle that works best? or, rather, what would you recommend Jul 21 19:03:24 ETSI TS 102.223 == 209 pages! Jul 21 19:03:47 ljp: myself & holtmann test with E160G Jul 21 19:03:57 ljp: kvalo tests with E1552 Jul 21 19:04:11 I don't know of any other success / failure stories Jul 21 19:04:30 PaulFerster: oFono is not a one-stop shop solution Jul 21 19:04:41 cool, thanks Jul 21 19:04:45 denkenz: i know, but i lack bigger picture. Jul 21 19:04:47 PaulFerster: It never tried to be, we provide integration hooks but leave that up to system integrators Jul 21 19:04:57 Yeah, yeah, that's exactly why i ask :) Jul 21 19:05:08 PaulFerster: So for instance, Meego provides its own history plugin with EDS/Tracker backend Jul 21 19:05:26 denkenz: not EDS anymore... remember Jul 21 19:05:31 PaulFertser: http://matgnt.wordpress.com/2010/07/19/qt-ofono-d-bus-and-qml-part-1/ Jul 21 19:05:41 PaulFerster: Meego then has Dialer / SMS App that integrates with that history db Jul 21 19:05:57 sabotage: Is it only Tracker now? Good Jul 21 19:05:58 speaking of... whats the status of Raji's patches to get the sms/call history plugins in tree? Jul 21 19:06:14 sabotage: I commented on them and never heard back Jul 21 19:06:17 denkenz: the plugin is backend agnostic Jul 21 19:06:36 ljp: hey :) long time no see. How's life? Jul 21 19:06:39 emits DBus signal and listener owns saving and acking the events Jul 21 19:06:50 ok, I'll kick raji again Jul 21 19:06:51 sabotage: Ah yeah, that's right Jul 21 19:06:56 PaulFertser: good. complicated with 3 kids Jul 21 19:07:14 Should be lots of fun though ;) Jul 21 19:07:22 always Jul 21 19:07:40 denkenz: I also have a newer Huawei one. Jul 21 19:07:57 * sabotage grumbles at having to register with ETSI to get "free" docs... Jul 21 19:08:10 registration != "free" Jul 21 19:08:15 I don't think you need to register Jul 21 19:08:24 I simply enter my intel address and it lets me through Jul 21 19:08:37 * sabotage tried that Jul 21 19:08:42 said I had to reg Jul 21 19:08:51 which doc? Jul 21 19:09:25 holtmann: Which one do you have? Jul 21 19:09:37 denkenz: "ETSI TS 102 223 V9.1.0 (2010-04)" Jul 21 19:09:51 forcing me to reg to get it. Jul 21 19:09:57 ljp: So Qt finally gets QML support, nice :) EFL had Edje for some years already ;) Jul 21 19:10:22 sabotage: So I just put in my email into Users without an ETSI account and hit submit Jul 21 19:10:36 I just send it to you, sec Jul 21 19:11:05 denkenz: that's exactly what I've tried too Jul 21 19:11:08 denkenz: i wonder if you folks has faced some dbus-related issues? I mean libdbus oddities or some nastiness in dbus itself. Jul 21 19:11:12 with several versions of the doc too Jul 21 19:11:13 denkenz: It says E1800. Jul 21 19:11:17 no love Jul 21 19:11:29 kk, thanks for the end-run Jul 21 19:12:02 sabotage: sent Jul 21 19:12:36 sabotage: I still think registration is Free Jul 21 19:12:43 * sabotage watches to see if mail host falls over again ;) Jul 21 19:12:49 sabotage: Intel is a super-premium sponsor or something Jul 21 19:13:04 denkenz: sure, but I rather prefer not to register... Jul 21 19:13:14 PaulFertser: qml isn't about theming. its about animations mostly Jul 21 19:13:17 unless I'm going to be pulling specs regularly Jul 21 19:13:17 Fair enough Jul 21 19:13:32 PaulFerster: Nothing really stands out regarding DBus Jul 21 19:13:36 PaulFerster: It just works Jul 21 19:13:44 sabotage: Nah Jul 21 19:14:50 denkenz: so I take it most huwei dongles would work? like the E220? Jul 21 19:14:51 PaulFertser: I did run into some QVariantMap issues with the commonly used a{sv} dbus sigs on various methods Jul 21 19:15:24 had to create an explicit mapping in those cases Jul 21 19:16:19 ljp: That is the presumption Jul 21 19:16:29 ljp: The udev rules seem to be comprehensive now Jul 21 19:16:48 ljp: There might be hiccups due to firmware differences, but no way to tell until someone tries it Jul 21 19:17:43 denkenz: we definitely had problems with async dbus calls, i'll try to find a link to bugzilla now. Jul 21 19:19:48 denkenz: hehe, blocker: https://bugs.freedesktop.org/show_bug.cgi?id=19796 Jul 21 19:21:41 ljp: what do you think about the idea of a really powerful themes (Edje now even has a lua interpreter built-in)? Jul 21 19:22:36 PaulFerster: Good thing that function is never used in the core ;) Jul 21 19:22:41 sabotage: i'm kind of an UI developer too: using my own Emacs UI as an everyday phone ;) Jul 21 19:22:53 PaulFerster: Only some bluetooth stuff would be affected Jul 21 19:24:56 denkenz: the FSO folks always wanted to use nice and cool solutions, so we (fso users) are doomed to hit plenty of bugs in all of the FSO surroundings :) BTW, i think you can't deny Vala code does look quite nice ;) Jul 21 19:25:56 denkenz: but as an UI "developer" i've to admit FSO's API for telephony sucks being too low-level. Jul 21 19:26:01 PaulFerster: In the end nobody cares what language your telephony stack is written in. They only care about the external API Jul 21 19:26:43 denkenz: that's in fact not really true. I personally have bigger problems compiling FSO from the sources because it uses Vala. But OTOH i have bigger pleasure reading the code. Jul 21 19:27:32 PaulFerster: And a vast army of kernel / protocol / telephony hackers think the same about C Jul 21 19:28:19 denkenz: well, i'm sorta kernel hacker and i've never learned Python/C#, and have read plenty of C code. Jul 21 19:29:55 I'm not arguing against Vala looking beautiful, but then again, I've been complimented at how easily understood oFono code is Jul 21 19:30:02 * ljp waits for telephony in lisp Jul 21 19:30:05 Its just personal preference Jul 21 19:30:24 For oFono, using C made more sense and we can reach a wider audience / pay attention to resources better Jul 21 19:30:32 Other projects can use whatever they want ;) Jul 21 19:30:32 denkenz: i told the same 15 min ago: oFono is easily readable and that's really cool :) Jul 21 19:30:48 ljp: my Emacs UI is in elisp of course ;) Jul 21 19:32:42 PaulFertser: as a side note, regarding the DBus api... since now several apps and services in MeeGo are using both Ofono and Qt (MTF specifically) and dialer current has the "canonical" set of classes being used to simplify interaction with Qt, we're starting to work on spliting out the Qt classes we use to interact with Ofono into it's own library Jul 21 19:34:41 it's not official, but as soon I we have a branch that we can get working with MeeGo dialer, sms and contextkit provider plugins working, I'll make it public Jul 21 19:34:56 sabotage: well... i do not intend to troll but i personally dislike the way Qt uses C++ so i do not care much ;) (and the reason is that i think not using all the latest and greatest TR1/Boost/C++0x is "uncool"/"inelegant") Jul 21 19:35:21 fair enough Jul 21 19:36:15 I personally could care less except we started having 3,4,5 ... projects each copying a point in time version of my API/Classes and all now needing to be maintained w/in their own projects and kept in sync with Ofono Jul 21 19:36:26 just not maintainable Jul 21 19:37:42 sabotage: i mean Qt is not really unleashing the force of the C++ (for many various technical (backwards-compatibility with the projects and old compilers) and social (Qt should be usable even by less-than-guru-level programmer) reasons, so i understand why). But using a language in such a constrained manner sounds somehow "unfair" to me. Jul 21 19:38:07 nod Jul 21 19:38:24 sabotage: but thanks for the info anyway, i'll keep in mind there's an Qt oFono abstraction. Jul 21 19:38:53 So as an ex-Qt dev, I can say that for real projects Qt is about the best compromise available today Jul 21 19:38:55 but it *is* what MeeGo is using for App toolkits on Handsets and Tablets, and moreover, it *is* what libmeegotouch (MTF) is built on Jul 21 19:39:14 You do _not_ want to use all features of C++, even guru level programmers get lost Jul 21 19:39:22 so we )MeeGo handset app devs) at least are stuck with it ;) Jul 21 19:39:40 denkenz: that's another question: practical considerations vs beauty ;) Jul 21 19:39:50 Besides, it'll be hard to ignore Qt in the short term Jul 21 19:39:58 Especially for Meego Jul 21 19:40:00 sabotage: if i'm getting an n900, i'm using Debian + Emacs on it :P Jul 21 19:40:11 * sabotage goes AFK to locate and consume sustinance Jul 21 19:40:23 meh Jul 21 19:40:47 * sabotage considers starting a editor flame, but hunger wins out Jul 21 19:40:58 Anyway, back on topic guys ;) Jul 21 19:42:16 denkenz: i was considering making an Emacs UI for oFono based systems to cover a larger user-base. But for now it seems like there's no opportunity for that, everything's in flux and too little real-life users. So i did read oFono API ;) Jul 21 19:42:42 Its not that much in flux actually Jul 21 19:42:59 If you notice, the Voice aspects have been frozen since nearly project announcement date Jul 21 19:43:03 The reason i did it in Emacs is that it's really a nice framework for some Text-mode applications. Proved to be easy to start, easy to develop for, easy to use. Jul 21 19:43:33 denkenz: sure thing, but oFono alone is not enough for telephony anyway. And i wanted my contacts and messages support. Jul 21 19:44:09 Well, even those parts are not really in 'flux' Jul 21 19:44:17 The history API has been stable for a long time Jul 21 19:44:40 That's not to say some things won't change, they will, but the changes won't be drastic Jul 21 19:44:41 API is. But storage depends on the integrator etc. I just have no idea what to target. Jul 21 19:44:51 So roll your own Jul 21 19:45:08 sqlite3 / eds / tracker Jul 21 19:45:10 All good choices Jul 21 19:45:15 If there was a considerable real-life user base, i would. Jul 21 19:45:42 I think you will find that won't be a problem in a year or two ;) Jul 21 19:46:29 But it seems like n900 and gta02 are the only supported headsets for now and i haven't heard much about people using oFono+all-others-needed-technologies as an everyday phone. Jul 21 19:47:33 Remember, oFono has a slightly different audience Jul 21 19:47:39 Not hobbyists, but actual products Jul 21 19:47:47 To get that far requires more features + more effort Jul 21 19:47:56 Again, check back in a year or two Jul 21 19:48:03 I'll certainly do. Jul 21 19:48:10 :) Jul 21 19:48:12 Until then you're sort of stuck with rolling your own solution :) Jul 21 19:48:20 Or using FSO :P Jul 21 19:48:36 certainly Jul 21 19:49:12 That's not to say we don't welcome hobbyists Jul 21 19:49:33 But they have to realize what they're getting into, e.g. not a one-stop solution for a smartphone Jul 21 19:50:57 denkenz: it would be nice if there was an example "bigger picture" present somewhere on the website. Jul 21 19:51:33 bigger picture: meego Jul 21 19:51:37 The bigger picture is whatever you want it to be, oFono is not particular to Meego or smartphones Jul 21 19:51:57 e.g. you can take oFono + ConnMan and do a NetworkManager / ModemManager replacement Jul 21 19:51:57 denkenz: i know, but you've got to have some intergration glue. Jul 21 19:52:18 Or you can take oFono and do M2M type applications Jul 21 19:52:24 or Smart phones Jul 21 19:52:40 Possibilities are endless, we don't mandate anything really Jul 21 19:52:49 Just provide integration hooks Jul 21 19:52:55 The best example will of course be Meego Jul 21 19:53:07 ljp: i would prefer something i can apt-get... Can't really get the idea behind rolling out a new "distro". Jul 21 19:53:43 Meego packages can be ported Jul 21 19:53:48 Like the SMS app, or the Dialer Jul 21 19:54:22 However, that is not the realm of oFono Jul 21 19:54:33 Complaining about that here is not quite on topic ;) Jul 21 19:55:36 denkenz: is complaining about the folks who thought it's ok to take a 40 years old AT command interface, mangle it considerable and then write out a cryptic 3gpp spec on topic? ;) Jul 21 19:56:01 Sure Jul 21 19:56:24 You get bonus points if you call them idiots ;) Jul 21 19:57:43 Oh wow, nice, i'll keep in mind :) OTOH it's probably better to have a weird interface you need to write a strange parser for than to have a non-documented ISI ;) Jul 21 19:58:46 Seriously, we care about making the UI writer's job easy and doing the telephony aspects as nicely as possible Jul 21 19:59:10 I think i should look through your code to see how you solved the problem with various expected and unexpected replies and about unsols etc. Jul 21 19:59:36 For UI and integration we can help you, answer questions, etc Jul 21 19:59:46 Because there's a considerable and elegant architecture in FSO2 for that and we still ocassionally find bugs in there :/ Jul 21 19:59:46 But we're not actually involved in the integration aspects Jul 21 20:00:06 Also, see http://meego.gitorious.org/meego-handset-ux Jul 21 20:00:49 Sure, have a look at gatchat/gatchat.c Jul 21 20:01:08 It turned out pretty well I think, handles all the AT crap nicely Jul 21 20:02:11 denkenz: (making UI easy to do) well, we'll see how it goes. Probably you've choosed exactly the right level of abstraction to not limit UI too much. Jul 21 20:03:59 Thanks for that, I certainly hope so Jul 21 20:04:34 I'm always afraid of simplicity, especially when one talks about the developers. Things should be simple and elegant, of course. But if one tries to make it too simple, one limits his user. Jul 21 20:04:45 At least in my experience the most powerful tools have a steep learning curve. Jul 21 20:06:14 Sure, however oFono tries to pick its battles and chooses usecases to expose very carefully Jul 21 20:06:30 Sincerely wish you good luck with that. Jul 21 20:06:34 Certainly you can't do some of the more bizarre things with the current D-Bus API Jul 21 20:06:44 However, nothing is stopping you from providing extensions / plugins Jul 21 20:09:48 denkenz: i still have that feeling that it would be nicer if you sent some letter to the FSO mailing list explaining in details why you wanted to not join FSO development back in the days before the official announcment of oFono. I still remember that uneasy feeling i (and i assume most of the FSO folks) had when they read the oFono announcement, it felt kinda unfriendly. Jul 21 20:10:21 I'd just get flamed ;) Jul 21 20:11:45 If you look at our presentations we explained our position pretty well Jul 21 20:11:49 denkenz: if you try to look at what happened from the other POV, you'll see what i'm talking about. I think you (and other oFono devs, hi, holtmann :) ) are nice folks, so the next time you'll try to take others feelings and emotianal response into account. Jul 21 20:12:18 I am missing the context here. What are you talking about? Jul 21 20:12:45 quote: PaulFertser: denkenz: i still have that feeling that it would be nicer if you sent some letter to the FSO mailing list explaining in details why you wanted to not join FSO development back in the days before the official announcment of oFono. I still remember that uneasy feeling i (and i assume most of the FSO folks) had when they read the oFono announcement, it felt kinda unfriendly. Jul 21 20:12:50 denkenz: to be honest, it totally felt like NIH and "desire to control" for the fso guys. Of course, they're prejudiced, but you knew about that in advance. Jul 21 20:13:25 PaulFerster: Again, we clearly laid out our reasons. Some might no longer be relevant or less relevant now Jul 21 20:13:36 holtmann: in fact we had a nice talk about ISI, oFono code readability (it's great), 3GPP designers etc. Jul 21 20:13:40 :) Jul 21 20:14:17 And I find the desire to control argument pretty funny for a GPL v2 project Jul 21 20:14:35 denkenz: i'm not lying to you: from our side it felt like NIH... Jul 21 20:15:09 Don't misunderstand, I can certainly understand that Jul 21 20:15:26 And there was _some_ level of reinvention, but in the end it was definitely worth it Jul 21 20:15:36 You could say the same about gsmd or gnokii or any other project that came before FSO and was doing part of the job. Jul 21 20:15:55 denkenz: it's in fact not that funny. One thing if you join someone's project with valuable contributions. That's good for the project in question. And another is when you roll own your own project you control. So someone might have to either go entirely by your route or to fork it (which is a lot of effort). Jul 21 20:16:24 denkenz: now it's apparent how and why oFono is different and that it's indeed a necessity. Wasn't back then. Jul 21 20:16:51 What were we suppose to contribute to FSO. Really ask yourself seriously. It was written in Python, then Vala. No proper modem abstraction and to low level APIs. Jul 21 20:16:53 holtmann: openmoko folks had plenty of experience with gsmd iirc :) Jul 21 20:17:03 See, and this is why us posting to FSO mailing list would not have done squat Jul 21 20:18:17 holtmann: this new Vala version is quite nice in fact, and it does abstract modems in a sane way (allowing even for reverse-engineered binary palm pre protocol). Jul 21 20:18:27 holtmann: the UI api still sucks, i agree. Jul 21 20:18:36 PaulFertser: It might have been true that the big picture was not clearly visible for everybody in the beginning. And that is understandable. It is so damn complex it is not funny anymore. Even I got sidetracked in the wrong directions a few times. Jul 21 20:18:48 However in the end we told everybody where we wanna go. Jul 21 20:19:16 And lets face it. The combo of BlueZ + ConnMan + oFono is way close to achieving the mobile phone goals than anything we ever had. Jul 21 20:20:09 PaulFertser: I am not sure about Vala in the long run. You have oFono's binary SMS PDU encoder/decoder. You would need STK etc. So what is Vala really giving you? Jul 21 20:20:11 holtmann: we'll see. Currently there're some hundred users actually using FSO on devices as everyday phones. Jul 21 20:20:41 holtmann: i really doubt we would need STK, that's some questionable technology of questionable usefullness. Jul 21 20:21:11 I agree with you 100%. From my point of view it needs to die. However the operators have a really different view on this. Jul 21 20:21:30 holtmann: well, some might argue that it's easier to develop architecture, modem abstraction etc etc in a fancy high-level language. And the code actually seems nice. Jul 21 20:21:42 So to make this clear. Our target was never a few 100 users. We are talking a 100 of thousands. Jul 21 20:21:42 And efficient at the same time. Jul 21 20:22:33 PaulFertser: I actually like Vala, however one problem is still that it translates into GObject code and the compiler can't optimize GObject properly. Jul 21 20:23:26 So I am not behind the efficiency argument of Vala. It is just faster than Python code. That is about it. Jul 21 20:24:41 PaulFertser: And btw. when talking about efficiency. Regex for AT command response parsing is pretty much a big wrong stupid idea. Jul 21 20:24:46 holtmann: the phones you target are getting more and more faster, so probably the difference between the C code and e.g. Vala would be neglegible. Jul 21 20:25:14 PaulFertser: It is not. The phones wanna do something nice with the resources. Not waste it on the telephony core stack. Jul 21 20:26:22 holtmann: if the telephony daemon would consume 5.1% instead of 5% CPU one would hardly notice. And if that 0.1% makes developers' life easier, why not? Jul 21 20:26:33 These are desktop arguments I keep hearing over and over again. Even an 1.5 GHz HT enabled phone has better things to do. It should impress the user. Jul 21 20:27:13 holtmann: (regexes) using AT is a stupid idea right from the start, probably there's no sane way to tackle this problem whatsoever. Jul 21 20:27:19 And here is the important point. That is why we developed oFono like it is. Make the developers (application developers that is) life easier. They don't have to worry, we do the hard work for them. Jul 21 20:27:35 PaulFertser: Look at GAtChat and you see how it should be done. Jul 21 20:27:44 holtmann: exactly what i'm going to do. Jul 21 20:28:51 And btw. another NIH point might be our implementation of PPP if you want some extra ammunition ;) Jul 21 20:29:02 However it seems to be working out pretty nicely for everybody. Jul 21 20:29:15 holtmann: (easy life) this whole argument you all keep repeating as mantra sounds a bit odd to me: as i know that life can be easy only for those who does enough weed and nice AT parser can't really help it ;) Jul 21 20:30:04 holtmann: fso devs are not happy with pppd either. Jul 21 20:30:06 Trust me, the GAtChat is the magic swiss army knife of oFono. It makes a huge difference. Jul 21 20:30:36 No happy and complaining. And doing something about it is a different story. Jul 21 20:30:55 We complained and than did what we thought is best. Jul 21 20:30:57 (magic GAtChat) Let's see if it'll help me pick up some girls ;) Jul 21 20:31:23 If that is your goal in life than stay away from oFono ;) Jul 21 20:31:42 Exactly Jul 21 20:31:42 It will not help you at all. Jul 21 20:31:50 Ain't it going to be pre-installed on the next uber-fancy-better-than-iphone Nokia smartphone? Jul 21 20:32:19 If it is MeeGo, then it should be running oFono. Jul 21 20:32:42 MeeGo on N900 at least does (not that I tried it by myself actually). Jul 21 20:34:05 holtmann: you're happy you found an opportinity to spend much of your time on the things you like, that's not so for the fso devs, but that's life. Jul 21 20:34:31 Btw, I've said it before and I'll say it again Jul 21 20:34:46 There's nothing stopping you from taking FSO, integrating oFono and having the best of both worlds Jul 21 20:35:16 I know :) Jul 21 20:35:22 FSO certainly benefits from other daemons, like BlueZ Jul 21 20:35:38 Again, we had a very clear API goal, performance goal and integration goal Jul 21 20:35:43 And ConnMan for that matter. Jul 21 20:35:56 Namely, desktop + embedded, easy API and fast performance Jul 21 20:36:04 So far we're accomplishing all three nicely Jul 21 20:36:38 Have we learned from FSO? sure, and from Qtopia, and from NetworkManager Jul 21 20:36:57 PaulFertser: And I (and so does Denis) even get paid for working on this. That is a fact. Intel is putting money behind oFono. And that is purely Intel's choice where to put the money. Jul 21 20:37:05 But sometimes you just gotta rip the old stuff out and do it again Jul 21 20:37:48 holtmann: that's why i say i'm glad you're doing interesting stuff instead of thinking of where to get money for living. Jul 21 20:38:33 PaulFertser: Last time I checked, we are hiring ;) Jul 21 20:38:33 In the long run, my personal hope is that oFono gets used both for commercial and hobbyist purposes Jul 21 20:38:40 Just like Linux Jul 21 20:40:15 denkenz: NM is something i'd use as an example of "the less flexible" and "questionable" thing. Works good for the most common cases but can give plenty of problems if something goes wrong. You know what linux-wireless devs say to those asking questions usually? "First thing: disable NM, use iw / wpa_supplicant directly" ;) Jul 21 20:42:11 That is not the case anymore actually. However we had our own problems with NM. We need something that works on mobile phones and where the UI is simple and replaceable. Jul 21 20:44:24 In the end, we welcome rational discussion or improvement ideas Jul 21 20:44:39 I seem to remember the guy writing http://wiki.openmoko.org/wiki/Plug-and-Play_USB_Networking had plenty of talks with NM developers before he managed to complete his instructions. Jul 21 20:45:56 (wireless management UI) I use vim to edit wpa_supplicant.conf on mobile, that's somewhat sick but otoh works surprisingly ok. ;) Jul 21 20:46:11 That part is pretty nasty. And that is why ConnMan will get Tethering support soon. We already can identify a Ethernet device from an Ethernet gadget and just create proper DHCP server if needed. Jul 21 20:47:12 That is what I meant with overall picture. We are getting in that direction. To be fair to NM in this example is that Openmoko and the Ethernet gadget keeps changing is MAC address on every boot. That is pretty nasty. Jul 21 20:47:38 Well, as i lack real improvements ideas i think it's time to say "good buy, see you" to not waste your time anymore. :) Was a nice friendly chat, i'm sure we'll have something to talk about again if/when i get an n900 ;) Jul 21 20:48:07 sry a bit OT but i was waiting for hours for the discussion to cool down :D - last time i checked the only reason one had to have the nokia stack on a maemo based n900 was that proprietary pulse plugin - with meego+ofono does it still rely a proprietary component to make calls on n900? Jul 21 20:48:13 holtmann: no, Openmoko used to change the MAC address on every boot. It's about 2 years it doesn't. Jul 21 20:48:14 hey PaulFertser :) Jul 21 20:48:54 One small piece at the time. Look at git show aa7907407adf1358ee39be0e98beaf4c129a78d6 in the Linux kernel. This small patch makes a big difference for proper connectivity in mobile devices. Jul 21 20:48:57 josch: hey, this question of yours is really worth asking imho ;) Jul 21 20:49:04 PaulFertser: So that got fixed. Good. Jul 21 20:49:13 PaulFertser: i was thinking of that when you said you want to get a n900 Jul 21 20:49:22 josch: Unsure, last I checked the pulse audio bits were somewhere on gitorious Jul 21 20:49:27 Whether they're enough or not, no idea Jul 21 20:49:28 PaulFertser: i was also tinkering with that thought only being blocked by that pulse thingy Jul 21 20:49:50 git://gitorious.org/meego-cellular/libcmtspeechdata.git Jul 21 20:49:57 Not sure about the PA patches itself. Jul 21 20:50:05 http://meego.gitorious.org/meego-cellular Jul 21 20:50:06 holtmann: it was easy, just the bootloader fetching MAC from the factory partition and adding to the command line arguments. In fact anyone could have done it right from the start by modifying his u-boot env and supplying a permanent MAC (from whatever) this way. Jul 21 20:50:06 There must be somewhere. Jul 21 20:50:16 holtmann beat me to it :) Jul 21 20:51:30 PaulFertser: And we will fix this once and for all with proper Tethering support. So it just runs DHCP in the end. ssh into the device becomes a bonus ;) Jul 21 20:51:59 PaulFertser: But you have no idea how many people here still use a serial console for working with the devices. Jul 21 20:52:12 Instead of just ssh and log into the device ;) Jul 21 20:54:12 holtmann: there should be an easy non-jtag way for a consumer device to be reflashed from any condition a user can trick it into. Openmoko gta02 can't be "bricked" without the debug board or some soldering. Jul 21 20:54:43 PaulFertser: or some real bricking on the stairs or from your rooftop :P Jul 21 20:55:39 PaulFertser: would be great if you would remember giving me a msg once you have your n900 and tinkered around with it Jul 21 20:55:51 josch: sure thing Jul 21 20:56:06 PaulFertser: thanks :) Jul 21 20:56:15 You guys also need to ping pessi Jul 21 20:56:27 He said he's working on a proper N900 modem power up / down support Jul 21 20:56:35 Otherwise bricking the N900 is easy apparently Jul 21 20:57:43 denkenz: hm, any open info about bricking? Do you mean one can really brick the baseband without any chance to reflash? Jul 21 20:58:33 From what I remember the SIM has to be shut down properly Jul 21 20:58:45 By the modem, if it isn't done, then you can brick the modem / SIM Jul 21 20:58:57 pessi has more details, I honestly don't know Jul 21 20:59:07 I thought there was some ML trace of this. Jul 21 20:59:18 could be, search the archives Jul 21 20:59:27 That's an imprortant point anyway, thanks for mentioning it. Jul 21 21:04:23 holtmann: (ethernet DEVTYPE) yeah, automagic is nice. I'm not sure though if i would prefer to be born 50 years earlier (and in another country) to be able to tinker with magnetic drums and listen to John Lennon live. Jul 21 21:04:44 balrog-k1n: Is the STK driver working for F35xx? or just F36xx? Jul 21 21:05:54 denkenz: i only tested the F3607, so hard to tell Jul 21 21:05:55 PaulFertser: It is good that we don't need 50 years to get these things working ;) Jul 21 21:06:13 but my guess is that it will work, it doesn't use any fancy commands, everything to the spec Jul 21 21:06:30 I tested the f35xx and it only works once on cold boot. After that nothing. Jul 21 21:06:41 I never re-sends the menu. Jul 21 21:07:03 oh, it's the same on f36xx Jul 21 21:07:17 How do you make it to send it again then? Jul 21 21:07:24 balrog-k1n: I wanna avoid lugging my F3607 prototype around, since I gave my magic-rubber-band enabled dongle to Samuel Jul 21 21:07:55 holtmann: re-plug it (may be hard if you don't have it on usb) Jul 21 21:08:00 denkenz: I have the PCI to mini-PCI cards with SIM cards slots. They work by just attaching to USB. I can bring you two of those. Jul 21 21:08:23 balrog-k1n: Nice idea, but what do we do on crash-restart cases. Jul 21 21:08:30 denkenz: There are 50 EUR or so. Jul 21 21:08:41 How big are they? Bigger than the MBM kit? Jul 21 21:08:54 holtmann: ofono never crashes ;) Jul 21 21:09:06 Good one. Then system updates ;) Jul 21 21:09:07 Good man :) Jul 21 21:09:24 You have to reboot ;) Jul 21 21:09:29 PCI card size: Jul 21 21:09:30 http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=390079158963&ssPageName=STRK:MEWAX:IT Jul 21 21:09:34 holtmann: seriously we should figure out some way but i have tried many things and didn't find it Jul 21 21:09:42 holtmann: i mean automagic is dull if it's not a simple and "cool" hack. The GNU/Linux world is more and more about the industry and less about creative fun. Jul 21 21:10:16 holtmann: I shall have fun plugging this into my Macbook Jul 21 21:10:21 balrog-k1n: Maybe these cards are just limited. Does AT*ERESET or whatever it is called helps? Jul 21 21:10:41 denkenz: As I said, you just attach the USB part with a cable. No need for the PCI part. Jul 21 21:10:46 holtmann: yes, but it also gets the usb (or pci) device re-enumerated Jul 21 21:11:23 different modems have quite different behaviours wrt keeping the card powered up Jul 21 21:11:29 denkenz: You only need PCI for the WiFi part. Otherwise this is just a USB dongle in a weird PCI form factor ;) Jul 21 21:11:41 the f3607 seems to never reset the sim card unless you unplug it or reboot the modem Jul 21 21:11:46 holtmann: Ah fair enough, then it should work Jul 21 21:11:50 the Palm Pre modem resets it all the time Jul 21 21:11:59 It does work. I have bought like 5 of these. Jul 21 21:12:50 I think E2RESET is a better solution than nothing Jul 21 21:13:09 In theory the modem should get the same serial / object path Jul 21 21:13:30 For F35xx I doubt we can do anything else short of a firmware upgrade Jul 21 21:15:20 maybe, but when do we reset it? on modem creation or power up or destroy/ofono quit? Jul 21 21:15:32 doing it on power up will not work very well Jul 21 21:15:51 lol Jul 21 21:16:12 At least doing it on power down would be good Jul 21 21:16:20 And switch to online / offline for the CFUN Jul 21 21:16:51 Maybe checking if the modem is in CFUN=1 state on power up is a good idea Jul 21 21:17:06 But since oFono never crashes, we can ignore that ;) Jul 21 21:17:48 yeah, power down sounds reasonable Jul 21 21:18:22 the sim will ask for pin again on power up Jul 21 21:18:57 That's ok Jul 21 21:19:07 We really want to move to online/offline if no SIM PIN is desired Jul 21 21:20:16 i'm checking the spec to see if there's anything about resetting the SIM Jul 21 21:20:45 note the stk atom has to stay in offline mode Jul 21 21:21:24 yep Jul 21 21:22:05 We still need to figure all that stuff out properly Jul 21 21:22:28 But certainly stk/sim/phonebook get kept in offline state Jul 21 21:23:49 balrog-k1n, denkenz: So lets talk about the STK API. Jul 21 21:24:11 hmm seems that AT+CFUN has an optional second argument for performing some type of reset (+CFUN=[,1]) Jul 21 21:24:39 holtmann: sure Jul 21 21:25:52 What is the size of the icons we are talking about here. Do we have limits? How many SIM cards actually use icons? Jul 21 21:26:25 Icons can be up to 16k in size Jul 21 21:26:29 But most likely less Jul 21 21:27:00 Actually, 65k in size Jul 21 21:27:10 Crap. That is actually big. Jul 21 21:27:23 Does anybody has SIM cards where we have icons in the menu? Jul 21 21:27:26 for a single icon or the entire file? Jul 21 21:27:33 single icon. Jul 21 21:28:07 The spec allows a transparent file to be up to 65k if my memory serves correctly Jul 21 21:28:25 And yes, icons are fairly popular Jul 21 21:28:54 How many icons can we have on the SIM card? Jul 21 21:29:50 There are limits Jul 21 21:29:59 But they're contained in their own directory Jul 21 21:30:08 so at least 255 is my guess Jul 21 21:31:16 I am a bit worried about pushing up to 65k for every agent call over D-Bus. Jul 21 21:31:34 denkenz: the Icon Identifier is just a record number in EFimg apparently Jul 21 21:31:43 so it's a single file to keep all the images for all menus Jul 21 21:32:12 Its a bit tricky Jul 21 21:32:28 Do we have icon names coming from SIM? Jul 21 21:32:39 If EFimg is only a file, then max image size is 255 Jul 21 21:32:43 That's what a record allows Jul 21 21:32:53 However, I seem to recall that EFimg is actually a directory Jul 21 21:32:56 Maybe I'm wrong Jul 21 21:32:56 As I said, I am worried about the images going over D-Bus too many times. Jul 21 21:33:30 Valid concern Jul 21 21:33:43 and there can be only 256 records iirc Jul 21 21:33:49 So instead of sending the binary image, we might just provide them on the SimToolkit interface and then just have identifiers to reference them. Jul 21 21:33:56 That way also the UI can easier cache them Jul 21 21:34:12 We could also write them to /tmp/ofono Jul 21 21:34:17 But maybe that gets nasty Jul 21 21:34:23 No. Jul 21 21:34:35 UI only uses D-Bus to get the information. Jul 21 21:35:11 i'm pretty sure STK icons can be only 256 bytes max and only 256 different icons Jul 21 21:35:29 balrog-k1n: Nope, see 31.102 Jul 21 21:35:40 balrog-k1n: EFimg is just the record descriptor, actual data is elsewhere Jul 21 21:35:56 However, there can be a max of 255 images Jul 21 21:36:45 And the maximum of all images is 65k Jul 21 21:37:43 denkenz: true Jul 21 21:37:47 Is the 255 max images are hard limit? Jul 21 21:37:52 Yes Jul 21 21:38:24 So we could do "array{array{bytes}} Icons" property in SimToolkit interface just exporting all icons. Jul 21 21:38:39 And the do some like (string alpha, byte icon). Jul 21 21:38:58 Grabbing all icons is nasty Jul 21 21:39:01 65k * 255 Jul 21 21:39:34 15 megs of data :P Jul 21 21:39:35 If they are all populated. However that way the UI does this once and be done with it. Jul 21 21:39:45 Never happens in practice of course Jul 21 21:40:23 Do you think some array{bytes} LoadIcon(byte index) method would be better? Jul 21 21:40:41 the UI may just cache the images it needs Jul 21 21:41:06 Yeah, this gets nasty Jul 21 21:41:18 well actually if they were a property, the UI would have to request all the images even if it doesn't support graphics Jul 21 21:41:23 Personally I prefer a read-only dir where we cache this stuff Jul 21 21:41:54 We might need to do this anyway if we support EMS Jul 21 21:42:04 As it has a concept of 'predefined' images/sounds/animations Jul 21 21:42:13 Nope. That gets nasty with access permissions. Jul 21 21:42:16 How big are they? Jul 21 21:42:26 EMS can have up to a 38k payload Jul 21 21:42:38 I meant the predefined ones? Jul 21 21:42:52 predefined can be any, up to sys integrator to provide Jul 21 21:43:00 balrog-k1n: Yes I agree. We should do a separate method to get the icon data. Jul 21 21:43:02 I was thinking we'd use a freedesktop standard for this Jul 21 21:44:05 shouldn't the UI be able to choose the predefined images / sounds then? Jul 21 21:44:10 shipped with the desktop theme Jul 21 21:44:19 so ofono wouldn't provide them Jul 21 21:44:22 Yeah, it'd be some freedesktop standard place Jul 21 21:44:34 Changeable by theme Jul 21 21:44:49 I think BlueZ does something similar for Device type icons Jul 21 21:44:52 so i think we don't need to worry about EMS Jul 21 21:45:07 Except for when EMS has an actual image payload Jul 21 21:45:17 but that is still only 38k Jul 21 21:45:18 Don't want to have two paths Jul 21 21:46:14 Anyway, forget about EMS :) Jul 21 21:46:16 denkenz: How are the predefined images are named/identified. Jul 21 21:46:37 sec Jul 21 21:46:47 could you send file descriptors for the images? or is that just a nasty idea? :) Jul 21 21:47:29 So I propose we do "array{bytes} GetIcon(string icon)" method on SimToolkit interface. That way the UI can cache them. Jul 21 21:48:13 holtmann: Basically the predefined sound/image/anim is just an integer id Jul 21 21:48:26 that's how telepathy (and most IM protocols) do avatars - you get given a token for them and request them explicitly just if you don't have it Jul 21 21:48:32 then it's lazy and you only transfer anything on demand Jul 21 21:48:33 I think there's some de-factor standard as to what integer corresponds to what type of image/sound/anim Jul 21 21:49:06 Robot101: I think that is a bit too much overhead. Since there is only one UI application needing these anyway. Jul 21 21:49:44 was just throwing it out there - telepathy tries to avoid any UI <-> backend filesystem accesses too Jul 21 21:50:04 need to port our file transfer API to use file descriptors now we have them :D Jul 21 21:51:02 denkenz: So what do you think about getting the icons manually (so UI without icon support can ignore it) and a clear indication in the API that they should really cache them properly. Jul 21 21:51:07 denkenz: there's an RFC standard for packet mood, which standardises the emoticons :) Jul 21 21:51:43 holtmann: I'm fine with that actually, just seems a bit kludgy Jul 21 21:52:33 Do we wanna use a string to be extensible for the future, or just a byte or uint16/uint32 Jul 21 21:52:46 So e.g. predefined sounds: Jul 21 21:53:04 0 Chimes high Jul 21 21:53:05 1 Chimes low Jul 21 21:53:05 2 Ding Jul 21 21:53:05 3 TaDa Jul 21 21:53:06 4 Notify Jul 21 21:53:06 5 Drum Jul 21 21:53:06 6 Claps Jul 21 21:53:06 7 FanFar Jul 21 21:53:07 8 Chord high Jul 21 21:53:07 9 Chord low Jul 21 21:53:21 For icons its fine to do a byte Jul 21 21:53:26 So I see the benefit for UIs that don't give a crap about the icons because it wouldn't fit in their design. Examples like iPhone UI. Jul 21 21:53:30 For EMS we'll figure something else out Jul 21 21:54:26 Then lets do "array{byte} GetIcon(byte icon)" on SimToolkit interface. And just hand out reference to the icons themselves. Jul 21 21:54:26 Just that we might need GetIcon(byte) and GetAllIcons() Jul 21 21:55:13 In addition we can have "array{byte} Icons" which as property which gives us the available icons. Jul 21 21:55:49 Bad idea Jul 21 21:55:52 why would we need all icons? Jul 21 21:55:55 Available, meaning available ids. Jul 21 21:55:59 We could do a GetAllIcons() later if that has a benefit. I don't see the need right now. Jul 21 21:56:10 Ah I see Jul 21 21:56:12 ok fair enough Jul 21 21:56:13 With GetIcon() the UI code could trigger icon loading on demand. Jul 21 21:56:49 Or just at proper times when idle. I think getting all icons will overload the bus. If they really request all of them. Jul 21 21:57:42 denkenz: Btw. why don't you just push the current STK doc API into the source. Mark it as experimental and then we go from there. Jul 21 21:58:05 I'm modifying as we go along Jul 21 21:58:10 I'll push it in a sec Jul 21 21:58:17 I see. Good. Jul 21 21:58:55 For the GetKey etc. I prefer we call them RequestKey. Similar to what we have in BlueZ. Just a minor detail. Jul 21 21:59:09 Just to make the direction a bit clearer. Jul 21 22:00:55 And then of course MainMenuItems should be "array{struct(string, byte)} MainMenuItems" so we deliver icons matching to the string. Having them in two properties seems a bit wrong to me. Jul 21 22:01:21 that's what i was thinking too Jul 21 22:01:45 Otherwise I think this will actually work. Jul 21 22:01:54 however i think handling the main menu and submenus differently complicates things for us and for the UI writer Jul 21 22:02:01 So leftover question from me, how we trigger the main menu selection? Jul 21 22:02:14 and having two agents (one for sim initiated session and one for user initiated session) Jul 21 22:02:19 holtmann: I actually don't like introducing structs Jul 21 22:02:34 balrog-k1n: Yes, for SelectItem we should do the same. Jul 21 22:02:35 You get the Menu via GetProperties anyway Jul 21 22:02:50 denkenz: I am with you on avoiding structs, but sometimes we need them. Jul 21 22:03:02 So this is clearly a case where we want them. Jul 21 22:03:07 holtmann: i mean, let's remove the Menu from properties altogether, let's use SelectItem for the main menu Jul 21 22:03:54 balrog-k1n: I disagree with that one, you can't do GoBack on the main menu, and also main menu doesn't have default item Jul 21 22:04:06 Not sure. Same method callback seems to be wrong. Jul 21 22:04:19 Reusing the main menu UI setup is actually trivial Jul 21 22:04:21 denkenz: yes, these are the only differences Jul 21 22:04:52 We could add an extra method to the agent like ProvideMainMenu(...) that gets send once after RegisterAgent and on update. Jul 21 22:05:10 Then the UI code only needs to register an agent. And gets the main menu via the agent. Jul 21 22:05:15 my point is that the main menu should not be visible when SelectItem or any other command is runing Jul 21 22:05:23 However re-using SelectItem is wrong. Jul 21 22:05:42 denkenz: Also s/SelectItem/RequestSelection/ Jul 21 22:05:45 if ofono handles the session management, it's less work to do for the UI writer Jul 21 22:06:03 balrog-k1n: Not following here. What does this mean? Jul 21 22:06:38 holtmann: the spec dictates when the main menu should be visible, ofono can handle that instead of the client having to implement this from the spec Jul 21 22:07:20 Are these in a different code path in the UI or where are they? Jul 21 22:07:57 Ok, I pushed the latest of what I had Jul 21 22:08:01 Probably missed something Jul 21 22:08:06 if we don't do that, then we should send a "PropertyChanged" and clear the MainMenuItems when any other command is running Jul 21 22:08:22 Otherwise we would need two extra methods. ProvideMainMenu and HideMenuMenu. Jul 21 22:08:30 balrog-k1n: We could actually just do that. Jul 21 22:09:03 Honestly I want to go back to the earlier suggestion of simply always having an Agent always registered Jul 21 22:09:12 denkenz: I pre-empted my other planned work today and crafted a reply to your STK RFC email, hopefully not too many stupid questions Jul 21 22:09:44 seems I should be following discussion here too Jul 21 22:10:13 sabotage: yep Jul 21 22:10:14 sadly, I can't do both (irc and email) Jul 21 22:10:24 denkenz: s/SelectItem/RequestSelection/ Jul 21 22:10:24 holtmann: currently just used the SelectItem for both main menu and submenus, but it could be a second method with a different name and same signature Jul 21 22:10:33 and my day is now cut short Jul 21 22:11:20 So I just updated the API with: Jul 21 22:11:37 void SelectItem(byte item, object agent) Jul 21 22:11:37 Selects an item from the main menu, thus triggering Jul 21 22:11:38 a new user session. The agent parameter specifies Jul 21 22:11:38 a new agent to be used for the duration of the Jul 21 22:11:38 user session. Jul 21 22:12:20 sabotage: Don't worry, just read the backlog and reply by Email Jul 21 22:12:26 sabotage: Still brainstorming phase Jul 21 22:12:34 nod Jul 21 22:12:39 denkenz: That is for the SelectItem in the agent callbacks. Not the SimToolkit interface. There calling it SelectItem makes sense. Jul 21 22:12:56 do have this in a branch (not seeing it if you do) Jul 21 22:13:35 Wait a few seconds. It will show up. Jul 21 22:13:37 sabotage: the API proposal is going into main branch for now Jul 21 22:13:51 holtmann: No, SelectItem I'm referring to is in the main interface Jul 21 22:13:53 ofono.git doesn't use branches ;) Jul 21 22:14:12 holtmann: already reflected upstream Jul 21 22:14:13 denkenz: That is fine. I am asking for renaming the method in the agent. It should be RequestSelection. Jul 21 22:14:23 holtmann: Yep, did that, waiting to push ;) Jul 21 22:14:29 I see. Jul 21 22:14:30 Okay. Jul 21 22:14:47 So I am fine with this. Jul 21 22:15:11 So two opens: Jul 21 22:15:12 ok, will have to wait (git pull says I'm up to date) Jul 21 22:15:12 Just struct for item string:icon combination and this looks good to me. Jul 21 22:15:31 You sure you want a struct combining items / icons? Jul 21 22:15:40 i still think having two agents and two ways of handling menus is a needless complication for the UI Jul 21 22:15:42 The struct would also need the Main Menu alpha Jul 21 22:15:58 I don't really want to. However they belong logically together. And not via some magic index that needs to match. Jul 21 22:15:59 denkenz: as aksed in my email, what is the icon data format? Jul 21 22:16:14 sabotage: Most likely XPM, Kristen is still figuring this part out Jul 21 22:16:29 holtmann: E.g. MainMenuTitle + MainMenuItems + MainMenuIcons Jul 21 22:16:40 would this not be SIM card/vendor defined? Jul 21 22:16:44 so {sa{string}a{bytes}} Jul 21 22:16:59 sabotage: No, the SIM uses a binary format, we'll convert it to XPM for you Jul 21 22:17:04 No. Jul 21 22:17:04 Hold on. We are mixing conversations here. Jul 21 22:17:31 {sa{sb}}? Jul 21 22:17:40 denkenz: depending on application, may find scaling to be an issue Jul 21 22:17:47 denkenz: So two properties "string MainMenuTitle" and "array{struct(string, byte)}" MainMenuItems. Jul 21 22:18:22 My argument here is, you GetProperties() both anyway Jul 21 22:18:30 so what's the difference between 2 or 3 properties? Jul 21 22:18:39 Yes I know, but you match them magically via the index property. Jul 21 22:18:45 bit easier to parse for the UI Jul 21 22:18:47 I know you get them both. That is not the point. Jul 21 22:18:59 They should be logically next to each other. Jul 21 22:19:06 And it is not easier for the UI in the end. Jul 21 22:19:08 sabotage: Not much we can do, the SIM height / width is predefined Jul 21 22:19:18 and I might suggest, for the sake of themeability (not a word, I know) that providing a resource name would allow the UI to determine the best icon to render rather than pre-rasterized data for a potentially (or likely) different resolution Jul 21 22:19:41 sabotage: Remember, we don't control whats on the SIM Jul 21 22:19:42 dicts have no guaranteed order. And parsing them properly is as hard as just doing the struct. Jul 21 22:19:56 sabotage: on the SIM they have no names, just random IDs Jul 21 22:20:03 nod Jul 21 22:20:12 holtmann: So MenuItems a{{sb}}? Jul 21 22:20:13 sabotage: You get a bitmap and that is it. If the UI design decides to ignore them fine, but that is all we can give. One bitmap. Jul 21 22:20:30 * sabotage notes for reference that I also maintain the MeeGo reference theme, so may care (too much) about such things Jul 21 22:20:44 denkenz: Yes. Except I spelled it our more readable as array{struct(string, byte)} ;) Jul 21 22:20:47 holtmann: understood Jul 21 22:20:55 Ok fair enough Jul 21 22:21:14 And then the same in RequestSelection of course. So this is unique between these two. Jul 21 22:21:23 * sabotage votes struct to ensure predictable ordering vs, dicts Jul 21 22:21:47 ok, I really gotta run Jul 21 22:21:58 will try to review backlog ASAP Jul 21 22:22:05 denkenz: I do hate structs btw., but in this case they make logical sense. Jul 21 22:22:11 holtmann: so what do you think about just having one agent always registered and sending the main menu as a method call? Jul 21 22:22:50 I have objections against that. If I see the iPhone UI design, you might wanna trigger the main menu from a different application than your home screen. Jul 21 22:22:55 This way we are flexible. Jul 21 22:23:09 And if the UI decides to re-use the same agent for both, that is up to the UI. Jul 21 22:24:04 We do such things in the Bluetooth UI btw. works nicely. It is one agent in the UI, but in the API you have to provide it twice. Not much overhead. Jul 21 22:24:08 Ok pushed Jul 21 22:24:18 what should SelectItem do when we already have a session running and somebody calls it? Jul 21 22:24:29 Is that possible? Jul 21 22:24:34 Of course Jul 21 22:24:42 I say just return Error.Busy Jul 21 22:25:08 ok Jul 21 22:25:35 denkenz: Can we tell the difference? Jul 21 22:25:35 If not, then just error out. Not sure if this can happen in real life use cases anyway. Jul 21 22:25:49 I think its a relatively uncommon use case Jul 21 22:25:55 Settings app won't get started twice Jul 21 22:26:22 so we have a primary agent + secondary agent (primary from SelectItem) Jul 21 22:26:29 if primary is not NULL, return Busy Jul 21 22:26:56 Hold on? Jul 21 22:26:57 I think RegisterAgent will be called from home screen and always present? Jul 21 22:27:06 There are two problems here Jul 21 22:27:24 And the SelectItem can temporary override that agent for the main menu session. Jul 21 22:27:28 so do i understand correctly that ofono will call Release() whenever we go back to main menu? Jul 21 22:27:42 There are SMS-PP messages which can trigger DisplayText/SelectItem etc whenever, even outside the user session Jul 21 22:27:58 Hence we need a 'default agent' running to handle those Jul 21 22:28:02 That's the home screen Jul 21 22:28:15 Then when the user actively initiates a session, the primary agent is given using SelectItem Jul 21 22:28:19 Agree. That is via RegisterAgent. Jul 21 22:28:37 I see. So you name them differently. Jul 21 22:28:47 That one handles everything until it either quits or the modem forces a session end Jul 21 22:28:54 I assumed primary agent is the one we give via RegisterAgent. Jul 21 22:28:57 In which case Release() gets called and the 'default' agent takes over Jul 21 22:29:22 So I can live with this behavior Jul 21 22:29:30 Lets call them "default" agent and "user-session" agents. So I don't get confused. Jul 21 22:29:34 Its a bit overly complicated, but honestly the most flexible Jul 21 22:29:46 I like the current API. Jul 21 22:29:54 sounds good, 'default' and user-session it is Jul 21 22:30:44 it's both "Sessions" according to the spec, the difference is one is sim initiated the other initiated from the main menu Jul 21 22:30:56 i'm fine with that api too Jul 21 22:31:02 Ok, so homework assignment for balrog-k1n Jul 21 22:31:13 Can you find anything missing (besides the help crap) Jul 21 22:31:20 e.g. self-explanatory icons vs not Jul 21 22:31:28 Personally I couldn't care less about exposing that part Jul 21 22:32:01 yeah, i don't think that is useful, but if needed it would be easy to provide Jul 21 22:32:10 But just raise any issues like that if you can think of any Jul 21 22:32:17 Otherwise I like the API myself Jul 21 22:32:54 me too Jul 21 22:33:04 (i actually proposed a similar one about a month ago and would have it implemented three weeks ago if i knew) ;) Jul 21 22:33:42 Sometimes it just takes time for the knowledge to accumulate Jul 21 22:33:48 You were just too far ahead of us Jul 21 22:34:05 So now you can go to town on it ;) Jul 21 22:34:44 ;) Jul 21 22:35:00 i'll probably spot any minor problems as implement it and not before Jul 21 22:35:28 one thing though is we have no indication of whether the RequestText command accepts gsm or any unicode Jul 21 22:35:36 That's fine, I will mark the whole interface experimental Jul 21 22:35:40 the cards i test only accept gsm normally Jul 21 22:35:45 in the "send email" app for example Jul 21 22:36:12 Yeah I decided to drop that part, its pretty silly since the UI has no concept of 'gsm' or 'ucs2' Jul 21 22:36:24 it only knows UTF8 Jul 21 22:36:53 yes, but we don't want to have to translate UTF8 to gsm internally in ofono since it's a quite difficult task Jul 21 22:37:27 Actually that 'reduced character set' stuff is already a requirement Jul 21 22:38:04 so if we want the UI to not accept any UTF8 chars then we need either a parameter to indicate it or indicate it in the api doc so the UI never accepts non-ascii characters Jul 21 22:38:25 The problem is, even that is tricky Jul 21 22:38:35 Since euro symbol has to be UTF8 Jul 21 22:38:41 But is perfectly valid GSM Jul 21 22:38:44 it's certainly easier to do in the UI than in ofono Jul 21 22:38:47 There are other examples too Jul 21 22:39:00 We might have to bite the bullet and add that parameter Jul 21 22:39:06 But lets see how far we get without it for now Jul 21 22:39:07 yeah, but we can just say "anything in the GSM character set" Jul 21 22:39:42 Ideally I'd like to avoid it if we can Jul 21 22:40:35 so as far as help may not be an issue, the encoding will be an issue (a polish card i have only allows GSM 7-bit in email for example, but the user will certainly try to use one of the diacritic Polish chars if the UI doesn't tell him not to) Jul 21 22:40:47 but then for example i'm sure a chinese SIM will allow ucs2 Jul 21 22:41:06 No I completely agree its an issue Jul 21 22:41:17 Just that Nokia already said they will do reduced character set converter Jul 21 22:41:26 So if we have that, then we might be golden Jul 21 22:41:56 Feel free to send a patch raising it as an implementation issue in the API so we don't lose track Jul 21 22:41:58 would that work for Chinese for example? Jul 21 22:42:21 Probably not, but then the SIM will just have to retry :) Jul 21 22:42:28 Or tell the user it failed Jul 21 22:42:50 There's still nothing preventing the UI from sending us Chinese when we specified GSM-only Jul 21 22:42:57 So we have to handle this case regardless Jul 21 22:43:08 it'll most likely just tell the user it failed or send garbage in the sms Jul 21 22:43:51 That sums up STK perfectly Jul 21 22:43:55 Garbage In, Garbage out Jul 21 22:44:00 heh Jul 21 22:44:29 though in this case, assuming an intelligent UI writer it could really be handled correctly if ofono indicates to UI what it needs Jul 21 22:45:00 Again I agree Jul 21 22:45:11 Lets just see how far we get, 90% we end up adding it ;) Jul 21 22:45:37 I just wanna see if someone thinks of a clever option before giving up Jul 21 22:45:49 ok Jul 21 22:47:11 btw. the Set Up Call api will be tricky Jul 21 22:47:29 Yeah, I'm not looking forward to that one Jul 21 22:47:36 But one thing at a time ;) Jul 21 22:48:02 Begin by doing the API proposal thing Jul 21 22:48:11 That seems to work best getting everyone on the same page Jul 21 22:48:20 formal -api.txt docs work best Jul 21 22:49:06 Especially since I sometimes go back to old proposals in the archives Jul 21 22:49:10 Inline ones are hard to find Jul 21 22:49:50 btw. one more issue with DisplayText Jul 21 22:50:31 when sim asks for Immediate Response, Go Back won't work, Jul 21 22:51:25 also the spec speaks of a "short timeout" for it, if none is specified, so i guess we need something like 20s Jul 21 22:51:27 Yeah, my brief thought on this is that we simply ignore the response from the agent Jul 21 22:51:53 instead of indefinite Jul 21 22:52:13 Ok, so I'll change indefinite to 'short timeout' Jul 21 22:54:18 there's also a way for the card to indicate whether the ui should have a button for the user to confirm the message Jul 21 22:55:09 I thought that the button can always be present Jul 21 22:55:36 so the user can dismiss the notification or it gets dismissed automagically Jul 21 22:55:52 as i understood it, the user needs to wait for the message to disappear if the card doesn't want confirmation Jul 21 22:56:05 at least that's why my current UI does, not sure if correctly Jul 21 22:56:34 I read it differently Jul 21 22:58:08 i guess the "- clear / wait for user handled by setting a higher..." comment relates to that flag, but i don't understand what the note says Jul 21 22:58:36 otherwise, the terminal shall send TERMINAL RESPONSE (Command performed successfully) at the Jul 21 22:58:36 expiration of either the short delay or the variable display timeout, or following a user MMI action not Jul 21 22:58:37 described above. Jul 21 22:59:10 what does flag change then? Jul 21 22:59:38 Probably nothing :P Jul 21 22:59:52 I suspect just a higher delay Jul 21 23:00:27 A flag (see command qualifier, clause 8.6) shall be set to inform the terminal whether the availability of the screen for Jul 21 23:00:31 subsequent information display after its use for "Display Text" should be either after a short delay (the duration of the Jul 21 23:00:34 delay being at the discretion of the terminal manufacturer unless an exact duration is indicated by a duration object), or Jul 21 23:00:37 following a user MMI action. Jul 21 23:00:50 if a flag of the command qualifier (see clause 8.6) indicates that the terminal shall wait for the user to clear message and if the terminal decides that no user response has been received, the terminal shall send a TERMINAL RESPONSE with "No response from user" result value. A terminal of type NK which receives a DISPLAY TEXT command with a command qualifier flag indicating "DISPLAY TEXT - wait for user to clear" shall send a TERMINAL RESPONS Jul 21 23:00:50 "Command performed successfully" result value Jul 21 23:00:57 so it's *either* delay or following the user action Jul 21 23:01:11 Basically I read it like: Jul 21 23:01:22 If you send a Display Text, we can just send back a terminal response right away Jul 21 23:01:43 However, if the display text 'user clear' flag is set, we only send a terminal response after user action Jul 21 23:01:53 or timeout Jul 21 23:02:29 i think the response is sent independent of that flag (either immediately or when message is cleared), Jul 21 23:02:33 however Jul 21 23:03:08 the message is cleared: on MMI action if flags is set, or after a delay if it's unset Jul 21 23:03:42 No, I think it just expects a different terminal response Jul 21 23:03:55 e.g. Display Text + flag set and no activity -> one terminal response Jul 21 23:04:06 Or if user cleared -> different terminal response Jul 21 23:04:56 yeah, that too, but the first paragraph in 6.4.1 also says it affects "screen availability" Jul 21 23:05:25 well, first paragraph after the "NOTE 1" :) Jul 21 23:06:13 Which we probably don't care about Jul 21 23:06:49 I suspect its like Display Text duration is 2 seconds or 20 Jul 21 23:07:16 So allocate an "Ok" button for the display text Jul 21 23:08:49 yeah, that's what the UI does right now Jul 21 23:08:55 So that might be another flag we have to pass, though in general UI can figure it out Jul 21 23:09:09 e.g. ok button appears after n seconds Jul 21 23:09:22 but anyway the note in the api doc needs a clarification i think since i don't understand what it says :) Jul 21 23:09:44 yeah, but that doesn't make it simpler for the UI writer :) Jul 21 23:10:01 Lol, which part? Jul 21 23:10:17 the "- clear / wait for user handled by setting a higher..." comment Jul 21 23:13:10 ok sec, let me reword it and paste here Jul 21 23:16:44 - The clear message after delay / wait for user to clear flags are handled as follows. If the wait for user flag is set, then oFono sets a higher timeout for the Agent DisplayText method call. It will then call Cancel() on the agent after this timeout expires and the "No response from user" terminal response is sent. If the agent returns earlier from this method call, a terminal response "Command performed successfully" is sent. Jul 21 23:16:54 ah i still think the primary agent should have some way to unregister itself without having to get off dbus completely Jul 21 23:17:40 denkenz: i see now, makes sense i guess Jul 21 23:17:55 what does ofono do when a headset device is connected? Jul 21 23:17:56 balrog-k1n: We might just reuse UnregisterAgent for that Jul 21 23:17:57 we may not even want to bother the client with such details Jul 21 23:18:22 Its in the implementation notes Jul 21 23:18:27 will ofono handle the routing using hsp? or does that need to be setup from some other place? Jul 21 23:18:43 will get removed once the api goes 'live' so to speak Jul 21 23:18:47 i mean, the api doc currently makes references to the spec, we could make it complete enough that the UI writer doesn't need to look at the spec i think Jul 21 23:19:24 Those are just hints for us Jul 21 23:19:32 The UI dev never sees it Jul 21 23:19:46 trip0: Speak to padovan about HFP, oFono does not handle HSP itself Jul 21 23:19:47 okay then Jul 21 23:20:18 trip0: For HFP, BlueZ / PulseAudio handle the routing of sound Jul 21 23:20:37 okay, i see that Jul 21 23:20:41 :) Jul 21 23:21:05 changing this headset's PA profile gies me a audio src and sink Jul 21 23:22:10 balrog-k1n: Added the following addendum to implementation notes Jul 21 23:22:13 It might be required to pass a flag to the UI to Jul 21 23:22:13 hint it that allocation of an 'acknowledgement' Jul 21 23:22:14 button is required in the case of a longer timeout. Jul 21 23:22:14 However, the UI can figure this out itself as well Jul 21 23:22:14 based on a timer threshold. More input needed. Jul 21 23:22:34 Anything else I should add? Jul 21 23:22:58 denkenz, does ofono automatically know to use the new hfp/hsp source instead of the default source? Jul 21 23:23:08 denkenz: i'll just have the acknowledgement parameter in the code for now Jul 21 23:23:32 padovan, ping Jul 21 23:23:43 trip0: oFono knows nothing about the audio setup Jul 21 23:23:51 trip0: That is purely BlueZ / PA issue Jul 21 23:24:03 trip0: pong Jul 21 23:24:04 trip0: Speak to jhe on #bluez Jul 21 23:24:40 balrog-k1n: ok fair enough, I still think we don't need it ;) Jul 21 23:24:56 balrog-k1n: Easier to add than take away Jul 21 23:25:28 denkenz: yes, the UI can use a heuristic but instead we can just be nice and tell the UI what to do :) Jul 21 23:26:20 well, do it and see how it works out Jul 21 23:26:24 You're probably right Jul 21 23:27:26 Ok, pushed Jul 21 23:34:48 denkenz, maybe I'm misunderstanding what ofono does... I'm assuming that ofono takes some audio src (a mic) and makes the sound go through the modem to the other caller Jul 21 23:35:01 Nope Jul 21 23:35:09 oFono only controls the RFCOMM channel Jul 21 23:35:18 e.g. the call control / network aspects Jul 21 23:35:31 ahh, okay Jul 21 23:35:37 PA & BlueZ take care of grabbing mic / speaker Jul 21 23:36:20 BlueZ has a plugin for PA that emulates a sound card over Bluetooth SCO channels Jul 21 23:36:20 i'm wondering when two mics are connected, like in the case where you are paired and you have a built in mic, which one takes precedence in a call Jul 21 23:36:40 That is up to PA and its associated policy engine Jul 21 23:36:55 Used to be that 'AudioManager' did this in Meego Jul 21 23:37:09 But what does it now, I've no idea Jul 21 23:39:08 hrm Jul 21 23:39:20 iirc, it's supposed to be OHM now in meego Jul 21 23:41:52 ohm-ng I thought, but yeah sounds right Jul 21 23:43:42 yeah, ohm-ng Jul 21 23:45:09 so how does sound get out the modem? does the driver listen on the mic device? Jul 21 23:45:18 or is there some userspace thingy? Jul 21 23:47:56 Completely platform dependent Jul 21 23:48:13 On some devices the modem is hardwired into the sound card Jul 21 23:48:32 so you have to flip a physical switch between modem / speakers Jul 21 23:48:40 On others its simply another sound device Jul 21 23:48:57 This is why ohm-ng exists ;) Jul 21 23:48:58 ahh, the modem is a pa sink then? Jul 21 23:49:09 yeah, I'm hoping it does all that Jul 21 23:49:11 That is how N900 is setup, so yes Jul 21 23:49:19 But not on all platforms Jul 21 23:49:53 mmk Jul 21 23:50:07 that is comforting information Jul 21 23:50:15 e.g. I think MRST is of the hardwired switch type Jul 21 23:50:37 ew Jul 21 23:51:11 There are of course advantages, latency + power Jul 21 23:51:23 i'm trying to understand the use-cases involved in a call process Jul 21 23:51:52 sure Jul 21 23:52:11 this has been most helpful info Jul 21 23:52:31 i misunderstood what ofono did to begin with :P Jul 21 23:52:42 no prob Jul 21 23:54:24 denkenz, are you with nokia? Jul 21 23:54:31 Intel Jul 21 23:54:43 oooo Jul 21 23:54:50 in Portland? Jul 21 23:55:00 Austin Jul 21 23:55:04 oh, heh Jul 21 23:56:11 he jumped ship Jul 21 23:56:21 from nokia to intel? Jul 21 23:56:26 Yeah Jul 21 23:56:28 haha Jul 21 23:56:37 Been a while now ;) Jul 22 00:00:54 and whoda thunk you'd be working for us again :) Jul 22 00:02:45 Yeah, sad isn't it ;) Jul 22 00:03:03 I move 8000 miles to get away from ya'll Jul 22 00:03:08 we're not that bad Jul 22 00:03:27 nokia has looong arms Jul 22 00:06:09 rhys keeps saying you owe him :) Jul 22 00:06:38 lol Jul 22 00:06:56 We certainly stole some of his ideas **** ENDING LOGGING AT Thu Jul 22 02:59:56 2010