**** BEGIN LOGGING AT Thu Jul 01 02:59:57 2010 Jul 01 14:59:17 holtmann: Are you fine with Zhenhua's em770 removal patches? Jul 01 15:01:14 Do we really wanna do that? Jul 01 15:01:23 What is the motivation behind it. Jul 01 15:01:36 I did like the idea to keep dongles apart from voice capable modems. Jul 01 15:02:29 The only difference between em770 is the addition of voicecalls Jul 01 15:02:40 Although EM770 is also capable of high-speed with some kernel driver hacks Jul 01 15:02:48 Nobody managed to do that though yet Jul 01 15:03:18 Let me have a second look at that patch. Jul 01 15:03:29 So it seems silly to maintain 2 files that are almost completely the same Jul 01 15:04:22 Fair enought. Jul 01 15:04:27 So I looked through it again. Jul 01 15:04:40 One problem I have with this patch is that we check the USB PID inside the source code. Jul 01 15:04:52 We should have a udev env for giving us the model. Jul 01 15:05:08 Something like OFONO_HUAWEI_VOICE=yes/no. Jul 01 15:05:16 Yeah I don't like that part too Jul 01 15:05:39 Then let me reply to it. And have him fix that. Jul 01 15:05:50 Otherwise fine with me. The less files the better. Jul 01 15:07:09 Sounds good Jul 01 15:09:27 Sent. Jul 01 15:26:18 holtmann: hey sir. do you have suggestion on hardware we should use/choose to get a voice call experiment/experience going on top of ofono? Jul 01 15:27:00 at best something more or less easily available to community :) Jul 01 15:27:06 Telit hardware or Freerunner Jul 01 15:27:16 I have UC864 and its fairly nice Jul 01 15:27:28 denkenz: hey. let me google it ;) Jul 01 15:28:09 denkenz: is that supported in linux oob? how does sound work? did you need to wire something up? Jul 01 15:28:31 Sound works using a 2.5mm headphone or you can wire an external speaker Jul 01 15:28:53 And it works pretty much out of the box Jul 01 15:29:05 You might need to tweak the serial id for usb_serial to recognize it Jul 01 15:29:12 yeah Jul 01 15:29:25 denkenz: 2.5mm headphone? isnt that an internal module? Jul 01 15:29:48 It comes with a dev board Jul 01 15:30:11 You can run it without one, but that's more than my soldering skills can handle Jul 01 15:30:42 oh Jul 01 15:30:48 denkenz: is that an intel or arm devboard? Jul 01 15:30:55 where can i buy that ;)? Jul 01 15:31:07 I have no idea, don't think it has a CPU Jul 01 15:31:13 just USB + antenna Jul 01 15:31:36 And you can buy it at the regular places, like digi key, etc Jul 01 15:31:48 Telit has a list of dealers on their website Jul 01 15:32:22 The only other alternatives are Freerunner or hacked phones like the G1 Jul 01 15:32:37 I don't know if anyone got the G1 fully working though Jul 01 15:32:48 Oh, and the N900 of course ;) Jul 01 15:33:51 great thanks for the info!! Jul 01 15:33:57 i will checkout telit or get N900 ;) Jul 01 15:34:28 price of the telit evaluation kit seems to be close to N900 ;) Jul 01 15:35:08 yeah its a bit pricey Jul 01 15:35:25 but you get full docs Jul 01 15:36:39 The only other lead I can give you is a TI Omap Zoom or Zoom II Jul 01 15:36:52 But those are even more $ and rather uncommon Jul 01 15:51:38 denkenz: the dtmf tones? Jul 01 15:51:54 ? Jul 01 15:52:18 is it possible to have a separate atom for them, if and when modem supports some kind of interfce to senddtmf and stopdtmf? Jul 01 15:52:53 yes, its called custom driver ;) Jul 01 15:54:05 But then you have trouble if you want to support pauses and dtmf strings inside voice calls Jul 01 16:10:16 denkenz: is ofono already working on N900 ? last time I tried (several months ago) it was not there yet... Did things changed lately? Jul 01 16:10:57 I'm the wrong person to ask, last I checked if oFono runs with csd then things just work magically Jul 01 16:11:09 Not sure if anyone got oFono working standalone with voice on it Jul 01 16:12:39 denkenz: yeah, I meant standalone :) will try again some day... Jul 01 16:38:22 denkenz: ...or signal telling what we have left from SendTones? Jul 01 16:41:31 lizardo: I had the native N900 patch, I suppose it needs some disclaimers so you know what you do when you fry your sim card ;-) Jul 01 16:45:15 pessi: I'm open to suggestions here, the DTMF is a really nasty part of the spec Jul 01 16:45:39 But we need to make it work on 27.007 style hw Jul 01 16:50:05 denkenz: signal SendingDTMF to VoiceCallManager? Jul 01 16:50:36 What does that accomplish? And how would you do it on an AT modem? Jul 01 16:55:07 1) give some feedback when DTMFs are being sent and 2) wait until each respective at+vts returns OK? Jul 01 16:57:34 Actually the spec makes no guarantees that getting a VTS OK is the same as stop tone Jul 01 16:59:15 And if you decide to use pauses, then you're even worse off Jul 01 16:59:35 Since you either need to manage them manually or rely on ATD Jul 01 16:59:43 Which gives _no_ feedback on DTMF tones Jul 01 17:00:13 The whole DTMF + pause stuff is a legacy insanity Jul 01 17:06:13 well, that is what we are doing, legacy insanity ;) Jul 01 17:06:55 pessi: would the ISI "firewall" allow you to fry the SIM card ? Jul 01 17:07:05 yeah, but there are different levels of insanity Jul 01 17:07:14 DTMF is pretty much the highest level Jul 01 17:07:26 STK call control is slightly below it Jul 01 17:07:29 I'd rather got to some solution which may work with some modems, and use quirks with offending ones Jul 01 17:08:09 We do have a solution, it just doesn't satisfy you ;) Jul 01 17:08:35 lizardo: the gpio lines allow you to reset modem at inconvenient moments Jul 01 17:09:45 denkenz: it is just a solution which does not my solve problems Jul 01 17:10:48 I know, but my point here is that there is no generic solution Jul 01 17:12:03 If there is no generic solution, then you have to solve it at the platform / driver level until we find one Jul 01 17:13:11 I'd be happy with high-level interface so that we could start doing it at driver level Jul 01 17:13:44 How can we design a high level interface if the hardware does not support it? Jul 01 17:13:57 Faking it ala telepathy is not going to happen Jul 01 17:17:18 The first place I'd start is checking whether modem -> network signaling even supports durations Jul 01 17:17:27 I suspect they're all fixed duration anyway Jul 01 17:17:31 nope Jul 01 17:17:47 there is ISDN message SendDTMF which you give the tone you want to send Jul 01 17:18:07 after appropriate delay, you send StopDTMF Jul 01 17:18:15 sorry, StartDTMF/StopDTMF Jul 01 17:19:10 isimodem and maemo csd expose them Jul 01 17:19:40 Ok fair enough Jul 01 17:19:47 but of course, if you use at commands, you are mostly happy with atd ot at+vts Jul 01 17:19:56 However, AT ones don't, the best you can do is use the extended VTS form Jul 01 17:20:04 where you specify the duration Jul 01 17:20:13 So doing start / stop tone is simply not possible Jul 01 17:24:11 yep.. so we have to fake it in ring Jul 01 17:24:56 Or you need to redesign that API Jul 01 17:25:07 But that's not my bug :) Jul 01 17:25:49 i added a proprietary dialstring upport to tp-ring Jul 01 17:28:19 and there seems to be ...MultipleTones added to 0.19.6 Jul 01 17:28:55 whee Jul 01 17:33:04 good luck with that, RTP and GSM don't mix ;) Jul 01 18:58:00 denkenz: btw, huawei PIN unlock is broken. I think my SYSINFO patches broke it :( Jul 01 19:05:40 kvalo: Then you have to fix it ;) Jul 01 19:18:03 kvalo: Define broken? Log? Jul 01 19:19:33 holtmann: heh. my vacation starts tomorrow, ofono has to wait :) Jul 01 19:21:09 denkenz: I don't have logs here. but it was so something like SYSINFO test never is true if SIM is locked Jul 01 19:21:49 I found some documentation which says that the variable we check actually means that SIM is not ready or SIM is locked Jul 01 19:22:37 ah ok, so your sim inserted test never works Jul 01 19:22:46 we ran into the same with mbm ;) Jul 01 19:23:37 why can't they use separate value for sim not ready or locked? Jul 01 19:23:52 Because that would make sense Jul 01 19:23:58 Can't have that Jul 01 19:24:01 heh Jul 01 22:43:01 denkenz: I think what Andrew is saying is that because start and end are only 8 bit values, we can only ever have a 256 byte text described by an attribute anyway. I went ahead and changed the array to be dynamically allocated anyway though. Jul 01 23:15:40 I know what you guys are saying actually Jul 01 23:15:46 So I hope my emails explained it Jul 01 23:15:59 If not, let me know and we can talk here Jul 01 23:22:08 denkenz: your email was not clear to me. I'm having a hard time understanding how you would massage the start/end fields to address > 256 bytes. Jul 01 23:22:45 you have to know a little how SMS works, but basically each SMS is 0..160 characters Jul 01 23:22:51 Sometimes less if you have headers Jul 01 23:23:09 For EMS, we need to iterate over all the headers Jul 01 23:23:14 are you wanting this function to have knowledge of sms? I thought it was meant to be generic. Jul 01 23:23:15 To collect up the text attributes Jul 01 23:23:25 hold on a sec ;) Jul 01 23:23:51 * kristenc waits for enlightenment Jul 01 23:24:15 Once we have collected the EMS headers, we know how much data is occupied by the actual text data Jul 01 23:24:38 We thus know how many characters there are in the SMS Jul 01 23:25:20 So then its a simple task of keeping the counter updated over the fragments and generate > 256 based indexes for text attributes Jul 01 23:25:55 indexes for text attributes? Jul 01 23:26:14 as in you get 50 chars in first sms, 60 chars in second sms Jul 01 23:26:29 we can massage text attributes in second sms to always add 50 to the start index Jul 01 23:26:52 but you pass in 110 char text with all the attributes coalesced into one text attribute byte array? Jul 01 23:27:01 correct Jul 01 23:27:09 That is my thinking right now Jul 01 23:27:12 what happens when you have a text len > 256. Jul 01 23:27:29 You use unsigned short instead of unsigned char Jul 01 23:27:35 so your indexes are 16 bit, not 8 Jul 01 23:27:40 you change the definition of a text attribute? Jul 01 23:27:59 Text attribute is a data structure on the wire Jul 01 23:28:04 How we implement it is up to us Jul 01 23:29:01 so you are saying that instead of using a text attribute array as an argument to this function, we use our own data structure which is separate from a text attribute. Jul 01 23:29:23 more or less, yes Jul 01 23:29:34 since what is on the wire is going to follow the spec. Jul 01 23:29:38 instead of 4 bytes, we'd need 6 Jul 01 23:29:40 and we are not going to. Jul 01 23:29:53 err, ok, you're confusing me now Jul 01 23:30:02 We're following the spec just fine Jul 01 23:30:10 sorry - I am probably confused myself. Jul 01 23:30:32 you said, that text attributes on the wire are separate from what we implement in our util code. Jul 01 23:30:54 So something like STK Text Attribute object -> [massage function] -> our own text attributes Jul 01 23:31:04 so if the we get a text attribute as defined by the spec, we can convert it into our own data struct. Jul 01 23:31:13 We still implement the spec, read the wire data format, etc Jul 01 23:31:19 yep Jul 01 23:31:25 thus, we have no knowledge in this particular function of what the spec says. Jul 01 23:32:02 Exactly, EMS would have to massage its attributes Jul 01 23:32:10 and STK would as well, but the function can take care of both Jul 01 23:32:19 The end result is just HTML Jul 01 23:32:29 seems messy Jul 01 23:32:55 so is rewriting that same function twice ;) Jul 01 23:33:32 I liked andrew's idea of using a wrapper function. Jul 01 23:33:37 Anyway, just an idea, don't take everything I say as canon Jul 01 23:33:49 I'll accept the patch if it does 256 characters only Jul 01 23:33:55 we can figure out EMS later Jul 01 23:34:22 I did switch it to handle arbitrary length text array, but we still use 8 bit addressing, so effectively that did nothing. Jul 01 23:34:41 exactly Jul 01 23:35:00 Andrew's idea will also be messy, 'messy' cannot be avoided Jul 01 23:35:14 Both will work in the end though Jul 01 23:35:55 my other confusion is on the 3 vs. 4 byte attributes. I see no way for me to know whether an attribute is 3 or 4 bytes unless it is the end attribute. Are you saying that the caller will guarantee me a 4 byte attribute "somehow"? Jul 01 23:36:33 Yeah, you're making assumptions without knowing the full context Jul 01 23:36:50 In the case of EMS, you always know whether a text attribute is 3 or 4 bytes Jul 01 23:37:04 Then its someone else's job to always send you quadruples Jul 01 23:37:18 as I said, my understanding was that this function was to be generic and not be aware of any pdu or header information. Jul 01 23:37:53 but I'm happy to assume always 4 and let someone else deal with it. Jul 01 23:38:02 Just assume its always 4 for now Jul 01 23:38:08 Again, lets make this work for STK Jul 01 23:38:17 Go back to 256 byte static array Jul 01 23:38:32 However, make sure your function is UTF8 safe Jul 01 23:38:45 Since the string passed in will be > 256 bytes Jul 01 23:40:26 An easy test is to use a string composed entirely of Euro signs Jul 01 23:41:00 That'll result in ~380 byte string Jul 02 01:25:01 denkenz: i guess the valgrind problem is from openpty() leaks the memory. Jul 02 01:25:50 denkenz: i see bluez/tools/main.c also use cfmakeraw(). so i just grab the code from there. Jul 02 02:10:49 no, it was something about uninitialized use of a structure Jul 02 02:11:01 I think because you don't tcgetattr / memset the structure Jul 02 02:17:44 okay. got u Jul 02 02:18:33 for em770 patch, how about we add boolean property 'HasVoice' Jul 02 02:19:26 i mean add ENV{OFONO_HUAWEI_VOICE} in rules and add HasVoice in udev.c source Jul 02 02:19:47 you mean HasVoice as modem property? That sounds fine Jul 02 02:19:48 or EnableVoice Jul 02 02:19:57 doesn't matter Jul 02 02:45:44 denkenz: questions: Jul 02 02:45:46 > + if (g_str_equal(model, HUAWEI_MODEL_EM770W)) { Jul 02 02:45:56 > + ofono_phonebook_create(modem, 0, "atmodem", data->pcui); Jul 02 02:45:57 > + Jul 02 02:45:57 > + mw = ofono_message_waiting_create(modem); Jul 02 02:45:57 > + if (mw) Jul 02 02:45:57 > + ofono_message_waiting_register(mw); Jul 02 02:45:57 > + } Jul 02 02:46:18 does phonebook and message waiting need voicecall capatibility? Jul 02 02:46:36 phonebook no Jul 02 02:46:46 message waiting doesn't make sense without voicecalls Jul 02 02:46:54 so i want to move them out Jul 02 02:46:59 okay Jul 02 02:47:12 another one is ssn Jul 02 02:47:23 it needs voicecall Jul 02 02:47:59 but we don't enable phonebook for rest huawei data only modem. do we need enable it for them or not? Jul 02 02:50:06 I don't remember why we did that Jul 02 02:50:16 I think it might have to do with huawei phonebook implementation being buggy Jul 02 02:50:42 Try enabling it and see if it works out ok Jul 02 02:50:57 it works on em770, but not sure others Jul 02 02:51:35 yang said he tested it on em770 before Jul 02 02:51:45 so i still keep it inside if branch Jul 02 02:51:55 sounds good Jul 02 02:52:04 okay **** ENDING LOGGING AT Fri Jul 02 02:59:57 2010