RE: Segmentation fault on Downlink data transfer

2011-01-13 Thread Bastian, Waldo
 Hi Marcel and Denis

 There is an issue on downlink data transfer on ifx modem.

Please note that ifx modem will switch over to in-kernel MUX for data handling 
once
the kernel MUX driver enhancements for network interface support have been 
accepted
into MeeGo.

Cheers,
Waldo

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH v3] ifx: Adding modem selftest for Infineon modem

2011-01-06 Thread Bastian, Waldo
   plugins/ifx.c |   76 
  +---
   1 files changed, 66 insertions(+), 10 deletions(-)
  
  diff --git a/plugins/ifx.c b/plugins/ifx.c
  index c0a69c2..e0eb982 100644
  --- a/plugins/ifx.c
  +++ b/plugins/ifx.c
  @@ -71,6 +71,8 @@
   #define GPRS3_DLC   4
   #define AUX_DLC 5
   
  +#define IFX_SELF_TESTS_TIMEOUT 10
  +
 
 I asked this 3 times now, where is this magic value of 10 seconds coming
 from. What is the average expected execution time of each test?

Typical response times are much less than 0.5 sec. 10 seconds is considered
much longer than any normal response time. 

  +static struct {
  +   char *test_desc;
  +   char *at_cmd;
  +} const mst[] = {
  +   { AT Command Test, ATE0 +CMEE=1 }, /* set echo  error reporting */

 I really don't like to put ATE0 into this. It is not a selftest or test
 command.

It acts as a selftest command because if the modem fails to come out of reset
and/or start the AT command parser you will never get an OK back on it. In the 
error reporting we would like to be able to distinguish between the AT command
parser not working at all and any subsequent test command failing.

  +   { RTC GTI Test, a...@rtc:rtc_gti_test_verify_32khz() },
  +   { Device Version Test, a...@vers:device_version_id() },
  +   { NULL, NULL }
  +};

 And I like to still see an answer why we have to trigger selftests here.

To make sure the modem is properly functioning.

 Can we just not have one AT command to check the modem health and be
 done with it?

The IFX modem we are targetting implements this with two AT commands.

 Another question that I did ask is to see some sample results from these
 test cases in failure and success case.

Robertino?

 Do we actually care about test
 description here at all or can we just drop it?

If you prefer cryptic messages then the AT command itself can act as the 
description.
Is that preferred?

 This is rather pointless. We are not starting a timeout for every single
 command. The mux_timeout handling was designed for spawning the overall
 setup process and not just one command.

The design documentation wasn't clear on that point. The name mux_timeout
suggested that the timeout only applied to the mux, maybe it should be renamed 
to
setup_timeout to better describe the design intention?

Regardless, having a timeout for each command is conceptually cleaner as you 
will
know for sure which command is responsible for exceeding the timeout. 

Does oFono require the more ambiguous solution with a single timeout?

 I am fine with using the established mutliplexer timeout handling here,
 but essentially this is not a SELF_TESTS timeout. This is overall setup
 timeout. So can we please get the naming right here. I really dislike
 code where function names and constants are not named properly. This
 causes major confusion later on.

In the patch it is the timeout for the first self test command.
I understand you are thinking about a potential future patch in which it would 
be
used as the overall setup timeout, I agree that in that case the name should be
changed accordingly as well, yes.

Cheers,
Waldo

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [RFC PATCH 2/5 v2] cell-info: Header file for cell-info atom

2010-12-24 Thread Bastian, Waldo
 +struct gsm {
 + int lac;
 + int ci;
 + int ta;
 + int no_cells;
 + struct geran_neigh_cell{
 + int arfcn;
 + int bsic;
 + int rxlev;
 +
 + } nmr[OFONO_MAX_NMR_COUNT];
 +};

What about the frequency of the serving cell? I was under the impression that
there was a need for that one as well.

Even though the serving cell may be included already in the nmr, do you see a 
need 
to explicitly provide the arfcn, bsic and rxlev of the serving cell as well?

What about LAC and CI for the neighbouring cells?

Cheers,
Waldo

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [RFC PATCH 2/4] cell-info: Header file for cell-info atom

2010-12-21 Thread Bastian, Waldo
Shouldn't ofono_cell_info_results be defined here and included as an argument 
for
ofono_cell_info_query_cb_t ? 

Cheers,
Waldo 

-Original Message-
From: ofono-boun...@ofono.org [mailto:ofono-boun...@ofono.org] On Behalf Of 
Antti Paila
Sent: Tuesday, December 21, 2010 6:00 AM
To: ofono@ofono.org
Subject: [RFC PATCH 2/4] cell-info: Header file for cell-info atom

---
 include/cell-info.h |   66 +++
 1 files changed, 66 insertions(+), 0 deletions(-)
 create mode 100644 include/cell-info.h

diff --git a/include/cell-info.h b/include/cell-info.h
new file mode 100644
index 000..d9c7810
--- /dev/null
+++ b/include/cell-info.h
@@ -0,0 +1,66 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2008-2010  Intel Corporation. All rights reserved.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifndef __OFONO_CELL_INFO_H
+#define __OFONO_CELL_INFO_H
+
+#ifdef __cplusplus
+extern C {
+#endif
+
+#include ofono/types.h
+
+struct ofono_cell_info;
+
+typedef void (*ofono_cell_info_query_cb_t)(const struct ofono_error *error,
+   void *data);
+
+struct ofono_cell_info_driver {
+   const char *name;
+   int (*probe)(struct ofono_cell_info *ci,
+   unsigned int vendor,
+   void *data);
+   void (*remove)(struct ofono_cell_info *ci);
+   void (*query)(struct ofono_cell_info *ci,
+   ofono_cell_info_query_cb_t,
+   void *data);
+};
+
+struct ofono_cell_info *ofono_cell_info_create(struct ofono_modem *modem,
+   unsigned int vendor,
+   const char *driver,
+   void *data);
+
+void ofono_cell_info_register(struct ofono_cell_info *ci);
+void ofono_cell_info_remove(struct ofono_cell_info *ci);
+int ofono_cell_info_driver_register(struct ofono_cell_info_driver *driver);
+void ofono_cell_info_driver_unregister(struct ofono_cell_info_driver *driver);
+void *ofono_cell_info_get_data(struct ofono_cell_info *ci);
+void ofono_cell_info_set_data(struct ofono_cell_info *ci, void *cid);
+void ofono_cell_info_query_cb(const struct ofono_error *error,
+   void *data);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __OFONO_CELL_INFO_H */
-- 
1.7.1

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH v2] ifx: Adding modem selftest to Infineon modem

2010-12-18 Thread Bastian, Waldo
  @@ -80,6 +82,18 @@ static const char *dlc_nodes[NUM_DLC] = { 
  /dev/ttyGSM1, /dev/ttyGSM2,
   
   static const char *none_prefix[] = { NULL };
   static const char *xdrv_prefix[] = { +XDRV:, NULL };
  +static const char *empty_prefix[] = { , NULL };
 
 This is still wrong. See my comment from the original email. I am not
 sure you really know what { , NULL } means.

The response doesn't really have a proper prefix (see example below), this way 
the entire response ends up in the callback. Is there a better way? Given that 
there aren't any URC registered yet, it will not interfere with any other 
response. It's obviously not a good idea to use it once the modem is powered up.

a...@vers:device_version_id()
CHIP ID = XXX
FLASH TYPE = YYY
FLASH ID = 0x898881
SmartiUE2 = 37664
RF PMU = 10548
PA PMU = 40244
RF ASM = 0
FEM PA = 21812
OK

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: TODO: Network updating the emergency number list

2010-12-17 Thread Bastian, Waldo
 Hi,
 
 I have investigated a little bit dynamic updating of emergency numbers
 by network. So I suggest, I'll register new notification-handler for
 '+CEN'-report in voicecall-driver. And naturally give those new
 emergency-numbers for voicecall-atom to be analyzed.

The modem will typically already analyze the new emergency-numbers, filter out 
the ones that are not applicable and merge the numbers from the various sources 
in the right priority. Some modems are able to communicate the resulting 
effective list of emergency-numbers, in which case the voicecall-atom should 
just use the list of emergency numbers reported by the modem without doing any 
additional merging/analyzing.

This also eliminates room for error if the algorithm that the ofono voicecall 
atom uses differs for some reason from the algorithm used by the modem.

For modems that aren't able to communicate their effective list of emergency 
numbers ofono would still need to create such list by itself as it does now.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH] ifx: adding Infineon modem self test

2010-12-12 Thread Bastian, Waldo
  The conclusion was that these two test commands should be issued from the 
  AP to ensure that the modem is functioning properly.
 
 I am not aware of the conclusion. My understanding is still that the
 modem firmware is suppose to do its selftests all by itself.

It does not.

 So what is the reasoning behind doing these selftests from the host.

It makes it easier for the host to record diagnostics / error codes this way. 
At the moment this is limited to recording it in the log file, as oFono doesn't 
provide a good way for reporting back error conditions when powering up a modem 
fails.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH] ifx: adding Infineon modem self test

2010-12-11 Thread Bastian, Waldo
  Adding Infineon modem selftest to the plugin. It executes couple of AT
  commands, and based on the responses,  it continues with ifx modem
  enabling or powers the modem down.
 
 didn't we conclude that the modem should do all these by itself? My
 understanding is that the modem executes these. And not that we have to
 trigger them.

The conclusion was that these two test commands should be issued from the AP to 
ensure that the modem is functioning properly.

Cheers,
Waldo

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH 1/5] text-telephony: add public header

2010-11-27 Thread Bastian, Waldo
  +   void (*remove)(struct ofono_ctm *tt);
  +   void (*query_tty)(struct ofono_ctm *tt,
  +   ofono_ctm_query_cb_t cb,
  +   void *data);
  +   void (*set_tty)(struct ofono_ctm *tt,
  +   int enable,

 I also changed this to ofono_bool_t enable

Fyi, I noticed that radio-settings.h has this as an int as well:

67 void (*set_fast_dormancy)(struct ofono_radio_settings *rs,
68 int enable,
69 ofono_radio_settings_fast_dormancy_set_cb_t,
70 void *data);

The query callback otoh uses ofono_bool_t.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH] doc: Add Location Services API

2010-11-19 Thread Bastian, Waldo
Conformance testing per 3GPP 34.109s5.4.1.3 requires that
RESET UE POSITIONING STORED INFO is handled.
Similar for 3GPP RESET MS POSITIONING STORED INFO per 3GPP 44.014s12.

As far as I can see there is no provision for that in commands / XML
defined by 27.007.

Would it make sense to add a ResetStoredInfo signal to the DBUS API for
implementation in a modem specific way?

Cheers,
Waldo

-Original Message-
From: ofono-boun...@ofono.org [mailto:ofono-boun...@ofono.org] On Behalf Of 
Sjur Brændeland
Sent: Thursday, November 11, 2010 11:45 AM
To: simon.lethbri...@stericsson.com; ofono@ofono.org
Cc: sjur.brandel...@stericsson.com
Subject: [PATCH] doc: Add Location Services API

From: Sjur Brændeland sjur.brandel...@stericsson.com

As requested, this is our initial proposal for a minimal API
in order to support E911, based on the 27.007 defined AT
commands.

We've discussed internally different names for this API:
AGNSSManager or AssistedGlobalNavigationSatelliteSystem,
but ended up with the simpler LocationServicesManager.

Looking forward to your comments on this API.

Regards,
Simon Lethbridge and
Sjur Brændeland
---
 doc/location-services-api.txt |   56 +
 1 files changed, 56 insertions(+), 0 deletions(-)
 create mode 100644 doc/location-services-api.txt

diff --git a/doc/location-services-api.txt b/doc/location-services-api.txt
new file mode 100644
index 000..18ef230
--- /dev/null
+++ b/doc/location-services-api.txt
@@ -0,0 +1,56 @@
+LocationServicesManager hierarchy
+=
+
+Serviceorg.ofono
+Interface  org.ofono.LocationServicesManager
+Object path[variable prefix]/{modem0,modem1,...}
+
+Methodsdict GetProperties()
+
+   Returns properties for the modem object. See
+   the properties section for available properties.
+
+   Possible Errors: [service].Error.InvalidArguments
+
+   void SetProperty(string name, variant value)
+
+   Changes the value of the specified property. Only
+   properties that are listed as read-write are
+   changeable. On success a PropertyChanged signal
+   will be emitted.
+
+   Possible Errors: [service].Error.InvalidArguments
+[service].Error.DoesNotExist
+
+   void SendPositioningControl(string xml_element)
+
+   Send an XML element conforming to the XML DTD for pos
+   as defined in 3GPP 27.007 Table 8.55-2.  This xml is
+   used for transferring data associated with positioning
+   requests received via control plane from the network.
+   This includes assistance data requests and the results
+   of positioning procedures. This method maps directly to
+   the 3GPP 27.007 AT+CPOS command.
+
+
+SignalsPropertyChanged(string name, variant value)
+
+   This signal indicates a changed value of the given
+   property.
+
+   PositioningRequest(string xml_element)
+
+   Receive an XML element conforming to the XML DTD for
+   pos in 3GPP 27.007. This xml is used for transferring
+   data associated with positioning requests received, via
+   control plane, from the network. This includes
+   measurement requests and assistance data. This signal
+   maps directly to the 3GPP defined +CPOSR unsolicited
+   result code.
+
+Properties boolean NetworkInitiatedProceduresEnabled [readwrite]
+
+   If NetworkInitiatedProceduresEnabled is False, then
+   no Position Requests from the network are accepted.
+   The modem is not enabled for positioning requests
+   from the networks view point.
-- 
1.6.3.3

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH] doc: Add Location Services API

2010-11-19 Thread Bastian, Waldo
[Resend without the bottom quote - Damn you Outlook]

Conformance testing per 3GPP 34.109s5.4.1.3 requires that
RESET UE POSITIONING STORED INFO is handled.
Similar for 3GPP RESET MS POSITIONING STORED INFO per 3GPP 44.014s12.

As far as I can see there is no provision for that in commands / XML
defined by 27.007.

Would it make sense to add a ResetStoredInfo signal to the DBUS API for
implementation in a modem specific way?

Cheers,
Waldo

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH] ifxmodem: Adding fast dormancy support to Infineon modem

2010-11-18 Thread Bastian, Waldo
 According to the doc I have, modem implementation is quite close:
 
 Trigger Fast Dormancy +XFDOR
 This command triggers fast dormancy if all conditions are passed successful 
 it will be send 
 towards the network. There will be no confirmation if the request was 
 executed or not as in the 
 last extend the full execution belongs to the network.

+XFDOR triggers fast dormancy once iff conditions are suitable. oFono expects a 
mode where
fast dormancy is triggered automatically by the modem _anytime_ conditions have 
been suitable for the duration of a given timeout period. A command for such 
mode is not yet available in IFX FW as far as I know.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH] TODO: Add vCard export to SM/ME stores

2010-11-15 Thread Bastian, Waldo
Marcel wrote:
  diff --git a/TODO b/TODO
  index bf2305b..9dcb43f 100644
  --- a/TODO
  +++ b/TODO
  @@ -496,3 +496,14 @@ Miscellaneous
   
 Priority: Low
 Complexity: C4
  +
  +- Enable exporting contact information from vCard data to SM and ME stores.
  +  Need to implement a robust vCard parser that can extract at least the
  +  fields supported by the existing phonebook module.  Functionality should
  +  be analoguous to existing import functionality.
 
 and you will not be able to write a robust vCard parser that we can
 safely run as root or with any kind of ofonod privileges. It is just way
 too risky from a security point of view.
 
 To support this feature then first we need to convert the current
 feature into returning a dict. And then have this feature using a dict
 as input.

Does this mean that support for writing to the phonebook is expected to
be added to the phonebook modem API as part of ofono core functionality?

Cheers,
Waldo

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [RFC v2 3/3] ifxmodem: adding modem API to support agps

2010-11-10 Thread Bastian, Waldo
The error handling in ifx_agps_inject_time_cb needs to have a call to 
CALLBACK_WITH_FAILURE.

Calling g_at_chat_register(agd-chat, %%XFTI:, ...) from 
ifx_agps_inject_time_cb seems wrong:
- It gets called multiple times
- Are you sure that %XFTI can't come before the OK response?
- agd-chat should be data-chat

#define BUF_LEN should be removed as it isn't used

In ifx_agps_send_lcs_frame the raw_frame isn't hex encoded before it gets 
inserted into the AT command.

Cheers,
Waldo

-Original Message-
From: ofono-boun...@ofono.org [mailto:ofono-boun...@ofono.org] On Behalf Of 
Robertino Benis
Sent: Wednesday, November 10, 2010 11:43 AM
To: ofono@ofono.org
Cc: Ahmed, Suhail
Subject: [RFC v2 3/3] ifxmodem: adding modem API to support agps

---
 drivers/ifxmodem/agps.c |  413 +++
 1 files changed, 413 insertions(+), 0 deletions(-)
 create mode 100644 drivers/ifxmodem/agps.c

diff --git a/drivers/ifxmodem/agps.c b/drivers/ifxmodem/agps.c
new file mode 100644
index 000..4e8d427
--- /dev/null
+++ b/drivers/ifxmodem/agps.c
@@ -0,0 +1,413 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2008-2010  Intel Corporation. All rights reserved.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include config.h
+#endif
+
+#define _GNU_SOURCE
+#include string.h
+#include stdlib.h
+#include stdio.h
+#include errno.h
+
+#include glib.h
+
+#include gatchat.h
+#include gatresult.h
+
+#include ofono/log.h
+#include ofono/modem.h
+#include ofono/agps.h
+
+#include util.h
+#include ifxmodem.h
+
+struct agps_data {
+   GAtChat *chat;
+   unsigned int vendor;
+   enum ofono_access_technology rad_acc_tech;
+};
+
+struct ofono_agps;
+static const char *none_prefix[] = { NULL };
+
+static void pos_request_notify(GAtResult *result, gpointer user_data)
+{
+   struct ofono_agps *agps = user_data;
+   int framelen;
+   int frametype;
+   GAtResultIter iter;
+   struct ofono_lcs_frame lcsframe;
+   const char *frame;
+
+   /* Assuming Pos Req format: %XPOSR: frametype,framelen,frame */
+
+   g_at_result_iter_init(iter, result);
+
+   if (!g_at_result_iter_next(iter, %%XPOSR:))
+   return;
+
+   if (!g_at_result_iter_next_number(iter, frametype))
+   return;
+
+   if (!g_at_result_iter_next_number(iter, framelen))
+   return;
+
+   frame = g_at_result_pdu(result);
+
+   DBG(AGPS POS Info: Type = %d Length = %d data = %s,
+   frametype, framelen, frame);
+
+   lcsframe.lcs_frame_type = frametype;
+   lcsframe.frame_length = framelen;
+   lcsframe.raw_frame = (unsigned char *)frame;
+
+   ofono_agps_lcs_frame_notify(agps, lcsframe);
+}
+
+static void inj_time_notify(GAtResult *result, gpointer user_data)
+{
+
+   struct cb_data *cbd = user_data;
+   struct agps_data *data = cbd-user;
+   ofono_agps_inject_time_cb_t cb = cbd-cb;
+   struct ofono_lcs_radio_fn rf;
+   struct ofono_error error = { .type = OFONO_ERROR_TYPE_NO_ERROR };
+   GAtResultIter iter;
+
+   g_at_result_iter_init(iter, result);
+
+   if (!g_at_result_iter_next(iter, %%XFTI:))
+   return;
+
+   if (data-rad_acc_tech == RADIO_ACCESS_TECHNOLOGY_GSM) {
+
+   int fn; /* range 0 - 2715647 (2048*26*51) */
+   int ts; /* range 0 - 7 */
+   int tsb;/* range 0 - 156 */
+   int ta; /* range 0 - 63 */
+   int ba; /* range 0 - 1023 */
+   int bc; /* range 0 - 64 */
+
+   /*   %XFTI:frameNum,TimeSlot,TimeSlotBit,TimeAdv,
+   *   ChannelNum,ChannelId
+   */
+   if (!g_at_result_iter_next_number(iter, fn))
+   goto err;
+
+   if (!g_at_result_iter_next_number(iter, ts))
+   goto err;
+
+   if (!g_at_result_iter_next_number(iter, tsb))
+   goto err;
+
+   if (!g_at_result_iter_next_number(iter, ta))
+   goto err;
+
+   if (!g_at_result_iter_next_number(iter, ba))
+   goto err;
+
+   if (!g_at_result_iter_next_number(iter, bc))
+   goto err;
+
+   

RE: [RFC v2 3/3] ifxmodem: adding modem API to support agps

2010-11-10 Thread Bastian, Waldo
 this mailing list does NOT allow top posting and you know this.

I indeed realized this about a second after I pressed send. My initial response 
was to use Outlook's recall function to correct my mistake... luckily sanity 
prevailed.

I am very sorry about this transgression. I will now sulk in the corner for a 
while.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [RFC 1/3] doc: addidng documentation for basic assisted gps

2010-11-05 Thread Bastian, Waldo
 oFono is strict CamelCase, even for abbreviations.  You do this
 correctly above (AgpsManager) but not here.  Please be consistent.  And
 it might be a good idea to not have abbreviations at all.  What does LCS
 stand for in this case?

It refers to terminology from 3GPP TS 04.31:
RRLP - Radio Resource LCS Protocol
LCS - Location Services

  +   The raw frame data is formatted as the concatenated
  +   sequence of the two digit hexadecimal representation
  +   of each of its octets. Example: 00FC2345

 Sending hex-encoded data screams as being non-portable and AT command
 modem specific.  Is this really your intent here?

The intent is to send an array of octets. A string seemed a debug-friendly way 
of
mapping it onto a DBUS API, but other suggestion for a suitable DBUS type are 
welcome.

  +   void RequestFineTimeInjection(string rat, uint16 pulselength)
 It seems to me that making the upper layers pass in the rat as a
 parameter to this function is a pretty bad idea.  You should either have
 the atom figure this out if it can (e.g. by using netreg atom) or have
 the driver take care of this directly.

I was asked to add it as the AGPS manager that makes the request presumes a 
certain RAT and there is no point in generating the pulse if the RAT has 
changed since.
See also http://lists.ofono.org/pipermail/ofono/2010-May/002347.html

 +
 + FineTimeInjectionNotification(dict radioframenumber)
 +
 + Notification about fine time injection pulse
 + generated by modem. The radioframenumber dict
 + is defined as follow:
 +

 Why is this returned in a separate signal as opposed to a reply to the
 RequestFineTimeInjection method call?

The concern was that the reply would not be immediate, but I don't think it's 
that much delayed that it runs in any DBUS timeouts, so I think it can be 
turned into a reply instead.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [RFC] AGPS Support

2010-11-03 Thread Bastian, Waldo
  For other modems sending the raw RRC/RRLP frames I guess the transcoding to 
  XML
  would need to happen in the ofono driver or in ofono core if you want
  to expose an
  oFono XML API.

 so here is my take on XML. If we have to parse it, then in general that
 is a bad idea. Creating XML is just fine.

You need both as it's not only a matter of converting the raw RRC/RRLP frames 
from
the modem to XML, but the responses from the GPS engine are presumably in XML 
format as well
then and the modem driver would need to parse that and re-create RRC/RRLP 
frames again (for modem that expects raw RRC/RRLP frames). See the tables in 
section 8.55 of 27.007 for the XML schemas. It refers to the ASN.1 syntax for 
the definition of the value ranges.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: RFC: Supporting STK without PDUs

2010-09-10 Thread Bastian, Waldo
 We have already had a discussion on this one when designing the current
 stk modem API.  The bottom line is that oFono tries to keep its core -
 modem interfaces minimal and exposing the entirety of stkutil.h as
 official API is definitely too much.
 
 So right now you will need to re-encode into PDU form to support such
 modems (or ask the vendor to give the raw pdus)  While this is a bit of
 a performance hit, it isn't too bad as the PDUs are always smaller than
 256 bytes.

In that case we would still want to use functionality from stkutil.c to do the 
actual re-encoding. So in my mind it is a trade-off between forking stkutil.c 
for one or more modem-plugins or exporting stkutil.h Given that the type 
definitions in stkutil.h are a relative straightforward mapping of TS 102.223 
and friends, it may not qualify as a minimal API but it will be a rather 
stable API. So I would like to ask to reconsider exposing the type definitions 
as part of the official oFono modem API.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


Startup sequence for Online / offline mode

2010-08-12 Thread Bastian, Waldo
Modem drivers that support Online / offline mode default to offline when oFono 
loads them. Which component is responsible for calling oFono and switch the 
modem to online mode? Will that component be part of MeeGo?


Cheers,

Waldo

--

Intel Corporation - Hillsboro, Oregon

Ultra Mobility Group - Platform Software Architecture

Tel: +1 503 264 6237 - Mobile: +1 503 703-7327

___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: Startup sequence for Online / offline mode

2010-08-12 Thread Bastian, Waldo
 Modem drivers that support Online / offline mode default to offline when
 oFono loads them. Which component is responsible for calling oFono and
 switch the modem to online mode? Will that component be part of MeeGo?
 
This feature is still highly experimental and not all of the details
have been figured out (only ISI supports it today).
 
Our current thinking is to have ConnMan manage the Online state of the
GSM modems (e.g. replace Powered handling with Online handling.)
However, we're still pretty far from that; we'd need to migrate all
existing modem drivers to manage Online/Offline state properly first.

I agree with Denis here. The Online state needs to be controlled by
ConnMan, but we haven't done that change yet. It would break current
users since we haven't migrated all modems to handle Online state
properly or emulate it if needed.

My understanding was that the Online state would be initialized by a component 
like Telepathy-ring or some sort of system management daemon to ensure that the 
dialer is up and running and able to accept calls before the Online state is 
entered. If ConnMan initializes the Online state, how is it ensured that all 
required clients (Dialer, SMS, etc.) have registered already?

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: USSD support in ofono-0.25

2010-07-30 Thread Bastian, Waldo
s s wrote:
 supplementaryservices-api.txt is not available in doc folder in
 ofono-0.25.tar.gz ,is there any other location to find it?

http://git.kernel.org/?p=network/ofono/ofono.git;a=blob_plain;f=doc/supplementaryservices-api.txt;hb=7cd09ee21aff49afc7f5678cb56f8c5300ca42b4

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: Monitor current technology

2010-06-25 Thread Bastian, Waldo

 So my current thinking is to drop any Tech reporting in gprs atom for now.   
 At least until we actually find a usecase for EPSB/CPSB style reporting.

What about the CGREG style tech reporting? 

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


[RFC] AGPS support

2010-05-14 Thread Bastian, Waldo
Please find attached a proposal for both a DBUS and Modem API for AGPS support. 
This proposal introduces two AGPS features:

1) Fine time injection - the cellular modem has access to accurate timing 
information that can help a GPS device to get a quicker fix. If the modem and 
GPS device are separate components a handshake mechanism is required to forward 
the timing information from the modem to the GPS. A typical approach is to have 
a hardware signal between the modem and GPS device that can carry a timing 
pulse. In addition signalling through software is required to request such 
timing pulse and to associate the correct Universal Time with the generated 
pulse.

2) Control Plane Assistance Data and Position Requests - The Mobile Network is 
able to provide assistance data for GPS devices through the control plane. This 
assistance data can help a GPS device to get a quicker fix. In addition the 
control plane can be used by the Mobile Network to request a GPS enabled  
Mobile Device for its location. This latter functionality is needed to meet 
E911 requirements [1]. A typical sequence looks as follow:

Mobile Network  Mobile Device

--- Assistance Data ---

--- Position Request --

-- Position Response --


[1] http://en.wikipedia.org/wiki/Enhanced_911

Cheers,
Waldo

---
 doc/agps-api.txt |   98 +++
 include/agps.h   |  135 ++
 2 files changed, 233 insertions(+), 0 deletions(-)
 create mode 100644 doc/agps-api.txt
 create mode 100644 include/agps.h

diff --git a/doc/agps-api.txt b/doc/agps-api.txt
new file mode 100644
index 000..7245eac
--- /dev/null
+++ b/doc/agps-api.txt
@@ -0,0 +1,98 @@
+AgpsManager hierarchy
+===
+
+Serviceorg.ofono
+Interface  org.ofono.AgpsManager
+Object path[variable prefix]/{modem0,modem1,...}
+
+Methodsdict GetProperties()
+
+   Returns properties for the modem object. See
+   the properties section for available properties.
+
+   Possible Errors: [service].Error.InvalidArguments
+
+   void SetProperty(string name, variant value)
+
+   Changes the value of the specified property. Only
+   properties that are listed as read-write are
+   changeable. On success a PropertyChanged signal
+   will be emitted.
+
+   Possible Errors: [service].Error.InvalidArguments
+[service].Error.DoesNotExist
+
+   void SendLCSFrame(string framedata)
+
+   Send a LCS position protocol frame to the Mobile
+   Network. The LCS frame typically represents a
+   Position Response.
+   The raw frame data is formatted as the concatenated
+   sequence of the two digit hexadecimal representation
+   of each of its octets. Example: 00FC2345
+
+   void RequestFineTimeInjection(uint16 pulselength)
+
+   Request modem to generate a fine time injection
+   pulse. pulselength is the duration of the pulse
+   expressed in radio frames.
+
+
+SignalsPropertyChanged(string name, variant value)
+
+   This signal indicates a changed value of the given
+   property.
+
+   IncomingLCSFrame(string framedata)
+
+   LCS positioning protocol frame received from the
+   Mobile Network. The LCS frame typically represents
+   Assistance Data, a Position Request or a combination
+   of both.
+   The raw frame data is formatted as the concatenated
+   sequence of the two digit hexadecimal representation
+   of each of its octets. Example: 00FC2345
+
+   FineTimeInjectionNotification(dict radioframenumber)
+
+   Notification about fine time injection pulse
+   generated by modem. The radioframenumber dict
+   is defined as follow:
+
+   string AccessTechnology
+   gsm or umts
+   
+   uint32 TdmaFrameNumber (gsm only)
+   range 0 - 2715647 (2048*26*51)
+
+   uint16 TdmaTimeslot (gsm only)
+   range 0 - 7
+
+   uint16 TimeslotBit (gsm only)
+   range 0 - 156
+
+   uint16 TimingAdvance (gsm only)
+   range 0 - 63
+
+   uint16 BcchArfcn (gsm only)

RE: oFono status?

2010-05-04 Thread Bastian, Waldo
http://git.kernel.org/?p=network/ofono/ofono.git;a=tree;f=doc; has useful 
documentation on the external DBUS API.

A while back the validation folks where posting test-reports [1], but I haven't 
seen those in a while.

[1] http://lists.ofono.org/pipermail/ofono/2010-February/001180.html


Cheers,

Waldo

--

Intel Corporation - Hillsboro, Oregon

Ultra Mobility Group - Platform Software Architecture

Tel: +1 503 264 6237 - Mobile: +1 503 703-7327


From: ofono-boun...@ofono.org [mailto:ofono-boun...@ofono.org] On Behalf Of 
Mats BERGSTROM
Sent: Tuesday, May 04, 2010 4:41 AM
To: ofono@ofono.org
Subject: oFono status?

Hi,
What is the plans for the oFono in conjunction with the MeeGo 
project?
Being one of the basic components of the MeeGo, what is the current status 
today and are there any components lacking for it to be production level?  If 
so, what do the plans look like for bringing it to that?

Also, where can I find more documentation than the image at 
http://ofono.org/documentation?

Best Regards
/Mats Bergström


[cid:image002.gif@01CAEB61.DAE55C60]

Mats Bergström
Application System Architect

ST-Ericsson
Nya Vattentornet
SE-22183, Lund
Sweden
www.stericsson.comhttp://www.stericsson.com

Office: +46 46 104260
Mobile: +46 76 139 5856
Fax: +46 46 106274
Email: mats.m.bergst...@stericsson.commailto:mats.m.bergst...@stericsson.com

This communication is confidential and intended solely for the addressee(s). 
Any unauthorized review, use, disclosure or distribution is prohibited. If you 
believe this message has been sent to you in error, please notify the sender by 
replying to this transmission and delete the message without disclosing it. 
Thank you.

E-mail including attachments is susceptible to data corruption, interception, 
unauthorized amendment, tampering and viruses, and we only send and receive 
emails on the basis that we are not liable for any such corruption, 
interception, amendment, tampering or viruses or any consequences thereof.

inline: image002.gif___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH 2/2] Added SQLite history plugin

2010-04-07 Thread Bastian, Waldo
 Hi Denis,
 
 Actually our apps listen for the IncomingMessage signal, and store the
 SMS in an internal database.
 At some point by design, a restart, a crash or other reasons, it may
 happen that apps are down while ofono and the modem are up, in that
 case we lose incoming messages.

A similar lack of robustness exists at the modem API side as well, if oFono 
crashes/runs out of battery after receiving the message from the modem driver 
the message is lost. There is no provision in the SMS modem API to signal back 
to the modem driver that the message has been successfully stored on the APE.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH 2/2] Added SQLite history plugin

2010-04-07 Thread Bastian, Waldo
 Hi Waldo,
 
   Hi Denis,
  
   Actually our apps listen for the IncomingMessage signal, and store the
   SMS in an internal database.
   At some point by design, a restart, a crash or other reasons, it may
   happen that apps are down while ofono and the modem are up, in that
   case we lose incoming messages.
 
  A similar lack of robustness exists at the modem API side as well, if
 oFono
   crashes/runs out of battery after receiving the message from the modem
   driver the message is lost. There is no provision in the SMS modem API
 to
   signal back to the modem driver that the message has been successfully
   stored on the APE.
 
 If oFono crashes/runs out of battery here the driver is gone along with
 oFono.
 Notifying it of anything is not going to help ;)

Currently the modem driver acknowledges the PDU right away. If there was a 
notification back to the modem driver, the PDU acknowledgement could be delayed 
till that point in time. If something bad happens in between, either the modem 
or the network can hold on to the PDU and redeliver once oFono is up and 
running again.

Looking at at_cmt_notify() the current implementation might have that affect 
already, as AT+CNMA is only send after calling ofono_sms_deliver_notify(). So 
as long as ofono_sms_deliver_notify() is handled synchronously and ensures that 
the PDU is stored one way or another before returning, it will work in case of 
a crash. (Would like to see assumptions like that called out in the code) That 
said, if your storage has issues (disk full?) there is currently no way to let 
the modem driver know that delivery was unsuccessful.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH 2/2] Added SQLite history plugin

2010-04-06 Thread Bastian, Waldo
 Bastian, Waldo ha scritto:
  The message handling in this patch seems to be vulnerable to SQL
 injection attacks. See http://en.wikipedia.org/wiki/SQL_injection
 
  Cheers,
  Waldo
 
 Hi Waldo,
 I didn't think of a message carrying an SQL injection :)
 Honestly I would use prepared statement since start of the job but I
 didn't manage how to do them in SQLite but I agree with you they're more
 secure and the code is cleaner, so I converted the source to them after
 studying their use.

Thanks, much better :-)

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: Access to SIM card when Modem is not Powered

2010-03-29 Thread Bastian, Waldo
Pekka Pessi wrote:
 I've been porting the N900 modem control code to oFono. The semantics
 of Powered is fine with respect of the atoms, in other words, if the
 modem crashes and boots itself, all the atoms are flushed nicely.
 When powering up, the Powered can be set to true when the modem is
 really up and running.

Do you have an overview of the different modes and transitions that the N900 
modem control is using today?

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: RFC: Neighbouring Cell Info, take 2

2010-02-12 Thread Bastian, Waldo
 to, 2010-02-11 kello 20:25 +0100, ext Bastian, Waldo kirjoitti:
void ofono_cell_info_query(struct ofono_cell_info *ci,
   ofono_cell_info_query_cb_t cb, void *data);
  
   What's this for?
 
  It's basically ofono_cell_info_driver-query(...) for use by a plugin
 after it has acquired the atom, something like:
  cell_info_atom = __ofono_modem_find_atom(modem,
 OFONO_ATOM_TYPE_CELL_INFO);
  cell_info = __ofono_atom_get_data(cell_info_atom);
  ofono_cell_info_query(cell_info, plugin_query_cb, plugin_data);
 
 Right, but if the atom already exposes a D-Bus API, what is the purpose
 of this plugin interface?

It's either a D-Bus API or a plugin interface and Denis indicated a preference 
for a plugin interface over a D-Bus API. I think his main concern was over the 
maturity of the API, so maybe he can be pursuaded otherwise now that this is 
based off the OMA SUPL standard.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: RFC: Neighbouring Cell Info, take 2

2010-02-11 Thread Bastian, Waldo
  struct ofono_cell_info_driver {
  const char *name;
  int (*probe)(struct ofono_cell_info *ci, unsigned int vendor,
  void *data);
  void (*remove)(struct ofono_cell_info *ci);
  void (*query)(struct ofono_cell_info *ci,
  ofono_cell_info_query_cb_t cb,
  void *data);
  };
 
  void ofono_cell_info_query(struct ofono_cell_info *ci,
 ofono_cell_info_query_cb_t cb, void *data);
 
 What's this for?

It's basically ofono_cell_info_driver-query(...) for use by a plugin after it 
has acquired the atom, something like:
cell_info_atom = __ofono_modem_find_atom(modem, OFONO_ATOM_TYPE_CELL_INFO);
cell_info = __ofono_atom_get_data(cell_info_atom);
ofono_cell_info_query(cell_info, plugin_query_cb, plugin_data);

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RFC: Neighbouring Cell Info, take 2

2010-02-10 Thread Bastian, Waldo
Hi,

Revisited proposal for neighbouring cell info based on previous feedback:
- Low-level driver API instead of oFono.org DBUS API 
- Polling based, no automatic periodic updates
- Follows definitions in OMA SUPL v2.0

I'm not particular fond of the nested list - wcdma. 
measured_results_list[].cell_measured_results[], maybe flatten that into a 
single list?

Cheers,
Waldo

/*
 *
 *  oFono - Open Source Telephony
 *
 *  Copyright (C) 2010 Intel Corporation.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifndef __OFONO_CELL_INFO_H
#define __OFONO_CELL_INFO_H

#ifdef __cplusplus
extern C {
#endif

#include ofono/types.h

struct ofono_cell_info;

enum ofono_cell_info_type {
OFONO_CELL_INFO_GSM = 0,
OFONO_CELL_INFO_WCDMA = 1,
};


struct ofono_cell_info_results {
enum ofono_cell_info_type rat;
char mcc[OFONO_MAX_MCC_LENGTH + 1];
char mnc[OFONO_MAX_MNC_LENGTH + 1];
union {
struct {
int lac;/* Location Area Code (0.65535) */ 
int ci; /* Cell Identity (0..65535) */
int ta; /* Timing Advance (0..255), -1 = 
unsupported */
int no_cells;   /* Number of valid nmr entries (1..15) 
*/
struct {
int arfcn; /* ARFCN of the channel (0..1023) */
int bsic;  /* BSIC of the channel (0..63) */
int rxlev; /* Measured power of the channel 
(0..63) Subtract 110 to get power in dBm */
} nmr[15];
} gsm;

struct {
int uc; /* Cell Identity, composed of 
RNC-ID and C-ID (0..268435455) */
int dl_frequency;   /* (0..16383), -1 = unsupported 
*/
int ul_frequency;   /* (0..16383), -1 = unsupported 
*/
int scrambling_code;/* Primary scrambling code 
(0..511) */
int no_freq;/* Number of valid 
measured_results_list entries (1..8) */  
struct {
int dl_frequency;   /* (0..16383), -1 = 
unsupported */
int ul_frequency;   /* (0..16383), -1 = 
unsupported */
int rssi;   /* UTRA-CarrierRSSI 
(0..76), -1 = unsupported */
int no_cells;   /* Number of valid 
cell_measured_results entries (0..32) */
struct {
int ci; /* Cell Identity 
(0..268435455), -1 = unsupported */
int scrambling_code; /* Primary 
scrambling code (0..511) */
int ecn0;   /* (0..49), -1 = 
unsupported */
int rscp;   /* cpich-RSCP per [3GPP 
RRC] (0..127), -1 = unsupported */
int pathloss;   /* (46..158), -1 = 
unsupported */
} cell_measured_results[32];
} measured_results_list[8];
} wcdma;
};
};

typedef void (*ofono_cell_info_query_cb_t)(const struct ofono_error *error,
const struct 
ofono_cell_info_results results,
void *data);

struct ofono_cell_info_driver {
const char *name;
int (*probe)(struct ofono_cell_info *ci, unsigned int vendor,
void *data);
void (*remove)(struct ofono_cell_info *ci);
void (*query)(struct ofono_cell_info *ci,
ofono_cell_info_query_cb_t cb,
void *data);
};

void ofono_cell_info_query(struct ofono_cell_info *ci, 
ofono_cell_info_query_cb_t cb, void *data);

int ofono_cell_info_driver_register(const struct ofono_cell_info_driver *d);
void ofono_cel_info_driver_unregister(const struct ofono_cell_info_driver *d);

struct ofono_cell_info *ofono_cell_info_create(struct ofono_modem *modem,
unsigned int 
vendor,

RE: [PATCH 1/3] Add radio access atom and driver API

2010-02-02 Thread Bastian, Waldo
  This atom provides access to the modem's radio access properties. It
  currently includes a single rw property, namely the radio access
  selection mode setting.
 
 It might be helpful to include the API documentation too.  One thing I
 don't like is the name RadioAccess.  The connotation is a bit too
 low-level. Perhaps BandSelection? RadioBandSelection?

Radio access is a pretty broad high level concept. It's one of those black 
boxes you draw somewhere near the bottom of a phone architecture diagram, so in 
that sense it is low-level but that comes with the territory. BandSelection in 
my mind implies frequency band selection, which is a narrow aspect of radio 
access. The 2G/3G selection covered with this patch is about radio access 
_technology_, which is distinct from the actual frequency bands used by those 
technologies. I think RadioAccess is a fairly good name for an interface that 
has the potential to cover various radio related settings.

Use case for 2G/3G selection:
http://androidcommunity.com/forums/archive/index.php/t-11857.html

Use case for band selection:
http://support.t-mobile.com/doc/tm53294.xml?docid=5222referring%20topicid=67A2L.SERVICE=Referring%20TopicID/DocID%20List%20Index=ynavtypeid=2pagetypeid=26prevPageIndex=3

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH 1/3] Add radio access atom and driver API

2010-02-02 Thread Bastian, Waldo
 People on this list keep forgetting two things:
 1. We're not designing a kitchen sink API here.  Most of the 'radio
 related
 settings' will simply never be exposed, nobody really cares what UMTS
 channel
 he/she is currently on.
 2. We're designing the API to be easy to use for everyone, not just GSM
 geeks.
 
 In your AM/FM Tuner the 'Band' button switches between AM and FM.  You
 immediately know what the button does.  The interface name in oFono should
 ideally give the user an immediate idea of what it is for.  In my view
 RadioAccess does not fit this ideal.  Perhaps BandSelection is the
 wrong name too, lets come up with a better one.

StuffThatCustomerServiceTellsYouToUseWhenThingsDontQuiteWork

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: RFC: API for Neighbouring Cell Info

2010-01-29 Thread Bastian, Waldo
 Hi Aki,
 
   Honestly I don't like either approach, the Agent pattern would be a
   much better fit here.  This would allow us to specify
   the polling/update interval and stop neighbor cell updates when no one
   is interested in them.
 
  In my experience, the positioning guys don't need periodic updates at
  all. The data needs to be fetched on demand. Like whenever the user
  starts up a location-aware application.
 
 Fair enough, but we also have to consider the case of multiple
 applications
 being interested in this information.  We can't assume that it will be
 polled on demand by just one...

Ny understanding is that typically there would be a location service that 
queries this information from oFono and converts it into actual coordinates 
through voodoo and black magic and that location-aware applications will ask 
this location service for coordinates. E.g. you would have something like 
GeoClue providing a single API for providing coordinates to applications and 
under GeoClue there is the location service, and the location service in turn 
talks to oFono.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH] G1: Add an SMS quirk for CNMI mode

2009-09-03 Thread Bastian, Waldo
 - /* Mode doesn't matter, but sounds like 2 is the sanest option */
 - if (!append_cnmi_element(buf, len, cnmi_opts[0], 2310, FALSE))
 + if (data-vendor == OFONO_VENDOR_HTC_G1)
 + /* The G1 advertises support for mode 2, but returns an error
 +  * if we attempt to actually use it. */
 + mode = 1;
 + else
 + /* Sounds like 2 is the sanest mode */
 + mode = 2310;
 +
 + if (!append_cnmi_element(buf, len, cnmi_opts[0], mode, FALSE))
   return FALSE;

Instead of having vendor checks all over the place, wouldn't it be cleaner if 
the plugin had a way to provide/fix cnmi_opts?

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: GPRS support for Ofono

2009-09-02 Thread Bastian, Waldo
   This really belong in the kernel.  Only the kernel can reliably know
   when a network interface has been brought down and notify the 
   interested applications with the statistics.
 
  You're missing the point.
 
  Yes, any body can extract the statistics for a running context. But data
  counters are cumulating. To compute the sum properly, there are but two
  options:
  # Either the GPRS middleware requests kernel per-interface statistics
  right before destroying the interface, and sums with the earlier total.
  # Or the modem does it internally.
 
 I know why you want this, but I'm still against the counter being an oFono
 driver API.  There needs to be a proper kernel interface that signals the
 application when an interface has gone away with the rx/tx details.  This
 way we handle this generically for all modems without relying on some
 intrinsic hardware capabilities.

This still doesn't solve the case where the modem is accessed from a PC client 
and forwards PPP data as that data will not go through any network interface, 
e.g. BT DUN or USB tethering.

The modem is really in the best position to provide the most reliable 
information on data usage. You can still use statistics from the network 
interfaces as a fall-back in case the modem can not provide this information.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: GPRS support for Ofono

2009-09-02 Thread Bastian, Waldo
   I am still not seeing the point in what suspended will do for us and
   the UI. And that Maemo 5 exposed such a state in the UI is not an 
   argument to keep doing it. I asked this before, what are we suppose to 
   be doing when we get signaled suspended?
 
  User, as well as intelligent (connectivity-aware) applications, need to
  know about this so that they understand why Internet is momentarily
  broken. It's as simple as that.

+1

  Oh we could also use the network device carrier flag, and then use
  Netlink (and we probably should do that too), but we all know how 
  horrible Netlink is from userland.
 
 Using IFF_RUNNING and IFF_LOWER_UP sounds more reasonable then some
 suspended state.

IF_OPER_DORMANT seems a more accurate reflection of the state.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: GPRS support for Ofono

2009-09-02 Thread Bastian, Waldo
   I know why you want this, but I'm still against the counter being an
   oFono driver API.  There needs to be a proper kernel interface that
   signals the application when an interface has gone away with the rx/tx
   details.  This way we handle this generically for all modems without
   relying on some intrinsic hardware capabilities.
 
  This still doesn't solve the case where the modem is accessed from a PC
  client and forwards PPP data as that data will not go through any
  network interface, e.g. BT DUN or USB tethering.
 
 The cases you describe imply that oFono is not even in control of the gprs
 context.  How would we track/report the tx/rx statistics in that case?

It's probably difficult if the PC client is allowed to redefine GPRS contexts, 
but otherwise oFono should at least be able to report the total tx/rx for the 
context's it has defined. The BT DUN / USB bridge could call into oFono and 
trigger a poll of all the stats to update them, e.g. when a BT DUN connection 
is disconnected.

  The modem is really in the best position to provide the most reliable
  information on data usage. You can still use statistics from the network
  interfaces as a fall-back in case the modem can not provide this
  information.
 
 I don't disagree, but not every modem can track these statistics and this
 isn't described by 27.007.  I suggest the initial support should be
 enabled by the modem driver implementing a custom D-Bus interface and 
 expose these details however it wishes.

The modem driver has no desires of its own :-) It really comes down to what the 
UI needs and I doubt that the UI wants to deal with this on a modem by modem 
basis, but sure it's a possibility.

Cheers,
Waldo
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono