Re: [PATCH] Phonesim HACKING updated to refer to phonesim.conf instead of modem.conf.

2011-02-01 Thread Aki Niemi
Hi Essi,

2011/2/1 Essi Vehmersalo essi.vehmers...@nokia.com:
 -automatically includes this option.
 +automatically includes this option. See phonesim.conf sample configuration
 +under ofono/plugins on how to configure oFono to use phonesim.

   Run phonesim in foreground using the following options
     # ./src/phonesim -p 12345 -gui src/default.xml

 -Check your modem.conf file and enable the phonesim configuration before
 -executing the above command. Argument -p should be followed by the proper
 -port number, in case you have changed the default 12345. Argument -gui
 -will launch the gui once the modem is enabled.
 +Argument -p should be followed by the proper port number, in case you have
 +changed the default 12345. Argument -gui will launch the gui once the
 +modem is enabled.

A couple of nits: there are some extra whitespace at the end of the
lines, and also, the commit message header should be below 50
characters.

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


Re: [PATCH v7] ifx: Adding modem selftest for Infineon modem

2011-02-01 Thread Marcel Holtmann
Hi Robertino,

 Infineon modem selftest, during ifx_enable().
 Two steps trigger, with timeout. In case one
 fails, modem will not power up.
 
 ---
  plugins/ifx.c |   50 +++---
  1 files changed, 47 insertions(+), 3 deletions(-)
 
 diff --git a/plugins/ifx.c b/plugins/ifx.c
 index 411c012..da8ed0b 100644
 --- a/plugins/ifx.c
 +++ b/plugins/ifx.c
 @@ -72,6 +72,8 @@
  #define GPRS3_DLC   4
  #define AUX_DLC 5
  
 +#define IFX_SETUP_TIMEOUT10
 +
  static char *dlc_prefixes[NUM_DLC] = { Voice: , Net: , GPRS1: ,
   GPRS2: , GPRS3: , Aux:  };
  
 @@ -524,10 +526,12 @@ static gboolean mux_timeout_cb(gpointer user_data)
   struct ofono_modem *modem = user_data;
   struct ifx_data *data = ofono_modem_get_data(modem);
  
 - ofono_error(Timeout with multiplexer setup);
 + ofono_error(Timeout with AT command setup);

call this Timeout with modem and multiplexer setup now.

   data-mux_init_timeout = 0;
  
 + g_at_chat_cancel_all(data-dlcs[AUX_DLC]);
 +

This one is not needed. Since first it is the last command anyway. There
is nothing else in the queue.

   g_at_chat_unref(data-dlcs[AUX_DLC]);

And second this will do it anyway for you.

   data-dlcs[AUX_DLC] = NULL;
  
 @@ -539,6 +543,35 @@ static gboolean mux_timeout_cb(gpointer user_data)
   return FALSE;
  }
  
 +static void dev_ver_selftest_cb(gboolean ok, GAtResult *result,
 + gpointer user_data)
 +{
 +
 + struct ofono_modem *modem = user_data;
 + struct ifx_data *data = ofono_modem_get_data(modem);
 +
 + if (!ok) {
 + ofono_error(ERROR:IFX Selftest at@vers:device_version_id()
 + -FAILED);
 +
 + g_at_chat_cancel_all(data-dlcs[AUX_DLC]);
 + }
 +}

I would just do here this:

if (ok)
return;

ofono_error(...

However you now need to clean up properly.

if (data-mux_init_timeout  0) {
g_source_remove(data-mux_init_timeout);
data-mux_init_timeout = 0;
}

g_at_chat_unref(data-dlcs[AUX_DLC]);
data-dlcs[AUX_DLC] = NULL;

g_io_channel_unref(data-device);
data-device = NULL;

ofono_modem_set_powered(modem, FALSE);

If you don't do that you leak memory and a file descriptor. And in
addition the user has to wait for the setup timeout, even if it is
already clear that the enabling failed.

 +
 +static void rtc_gti_selftest_cb(gboolean ok, GAtResult *result,
 + gpointer user_data)
 +{
 + struct ofono_modem *modem = user_data;
 + struct ifx_data *data = ofono_modem_get_data(modem);
 +
 + if (!ok) {
 + ofono_error(ERROR:IFX Selftest
 + at@rtc:rtc_gti_test_verify_32khz()-FAILED);
 +
 + g_at_chat_cancel_all(data-dlcs[AUX_DLC]);
 + }
 +}
 +
  static int ifx_enable(struct ofono_modem *modem)
  {
   struct ifx_data *data = ofono_modem_get_data(modem);
 @@ -592,13 +625,24 @@ static int ifx_enable(struct ofono_modem *modem)
   g_at_chat_send(chat, ATE0 +CMEE=1, NULL,
   NULL, NULL, NULL);
  
 + /* Execute Modem Self tests */
 + data-dlcs[AUX_DLC] = chat;

Don't bother moving this one around. It is fine where it is. There is no
race condition here. We are single threaded and we need to go back to
the mainloop to write the commands before this will be called.

 + g_at_chat_send(data-dlcs[AUX_DLC],
 + at@rtc:rtc_gti_test_verify_32khz(),
 + NULL, rtc_gti_selftest_cb, modem, NULL);
 +
 + g_at_chat_send(data-dlcs[AUX_DLC], at@vers:device_version_id(),
 + NULL, dev_ver_selftest_cb, modem, NULL);
 +
 + /* Enable  MUX Channels */
   data-frame_size = 1509;
  
   g_at_chat_send(chat, AT+CMUX=0,0,,1509,10,3,30,,, NULL,
   mux_setup_cb, modem, NULL);
  
 - data-mux_init_timeout = g_timeout_add_seconds(5, mux_timeout_cb,
 - modem);
 + data-mux_init_timeout = g_timeout_add_seconds(
 + IFX_SETUP_TIMEOUT, mux_timeout_cb, modem);

To be honest the define with the setup timeout value does not help here.
Just change this to 10 and put a comment section above the the timeout
command to state what is expected execution time of the test commands.
That makes this a lot clearer to understand.
 
   data-dlcs[AUX_DLC] = chat;

Regards

Marcel


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


[PATCH 1/2] atmodem: convert dst from hours to seconds

2011-02-01 Thread Jeevaka Badrappan
---
 drivers/atmodem/network-registration.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/atmodem/network-registration.c 
b/drivers/atmodem/network-registration.c
index 4913611..3df72af 100644
--- a/drivers/atmodem/network-registration.c
+++ b/drivers/atmodem/network-registration.c
@@ -741,7 +741,7 @@ static void ifx_ctzdst_notify(GAtResult *result, gpointer 
user_data)
 
DBG(dst %d, dst);
 
-   nd-time.dst = dst;
+   nd-time.dst = dst * 60 * 60;
 
ofono_netreg_time_notify(netreg, nd-time);
 }
-- 
1.7.0.4

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


Re: [PATCH 0/2] Fix issue with DST

2011-02-01 Thread Rémi Denis-Courmont
On Tuesday 01 February 2011 13:44:03 ext Jeevaka Badrappan, you wrote:
 Hi,
 
  Following patch converts the DST from hours to seconds which is the
 expected outcome.

Is it? I think DST is just a boolean.

-- 
Rémi Denis-Courmont
Nokia Devices RD, Maemo Software, Helsinki
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [PATCH 0/2] Fix issue with DST

2011-02-01 Thread Jeevaka.Badrappan
ofono-boun...@ofono.org wrote:
 On Tuesday 01 February 2011 13:44:03 ext Jeevaka Badrappan, you wrote:
 Hi,
 
  Following patch converts the DST from hours to seconds which is the
 expected outcome.
 
 Is it? I think DST is just a boolean.

Refere 3GPP TS 24.008 section 10.5.3.12

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


[PATCH 0/1] Add pin retry count support for mbm

2011-02-01 Thread Jeevaka Badrappan
Hi,

 Following patch adds pin retry count support for mbm modem.

Regards,
Jeevaka

Jeevaka Badrappan (1):
  atmodem: Add pin retry count support for mbm

 drivers/atmodem/sim.c |   46 ++
 1 files changed, 46 insertions(+), 0 deletions(-)

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


Re: [PATCH 1/1] atmodem: Add pin retry count support for mbm

2011-02-01 Thread Marcel Holtmann
Hi Jeevaka,

  drivers/atmodem/sim.c |   46 ++
  1 files changed, 46 insertions(+), 0 deletions(-)

and this is conflicting with Remi's patch for the generic CPINR now.

Regards

Marcel


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


Re: [PATCH] atmodem: implement standard PIN retries

2011-02-01 Thread Marcel Holtmann
Hi Remi,

  drivers/atmodem/sim.c |   48 
  1 files changed, 48 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c
 index 0938998..dfd40f8 100644
 --- a/drivers/atmodem/sim.c
 +++ b/drivers/atmodem/sim.c
 @@ -57,6 +57,7 @@ static const char *cpin_prefix[] = { +CPIN:, NULL };
  static const char *clck_prefix[] = { +CLCK:, NULL };
  static const char *huawei_cpin_prefix[] = { ^CPIN:, NULL };
  static const char *xpincnt_prefix[] = { +XPINCNT:, NULL };
 +static const char *cpinr_prefixes[] = { +CPINR:, +CPINRE:, NULL };
  static const char *none_prefix[] = { NULL };

let's leave it like this. Patch has been applied.

Regards

Marcel


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


Re: [PATCH] TODO: SMS Validity Period

2011-02-01 Thread Miia Leinonen

Hi Marcel,

Seems that you are not going to go with me on this. I do understand your
point that this is very marginal feature, me myself I only use it couple
times a year (which also answers to your question) and I might be in a
rare group. But I do appreciate the feature when I need it.

 I am not following here. What is an option good for if it does not give
 anything to the user. In fact it could potentially be actually lying to
 the user since we have no control whatsoever.
What I meant was that if the network does not support the setting, then
it could be hidden from the UI. Then there would not be scenario that
user has option that does nothing. I understand from the specification
(23.040) that this should be possible to know:

The SC shall reject any Unsupported/ Reserved values received by
returning the ‘TP-VP not supported’ TP-FCS value in the Submit SM Report
for RP-Error.

But when it comes to this SMS Validity Period being supported in oFono,
I guess we are done. I asked for it and gave my arguments but you said
no. I don't find I am able to do more to this for now at least.

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


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


[PATCH 0/1] Add pin retry count support for mbm

2011-02-01 Thread Jeevaka Badrappan
Hi,

 Following patch adds pin retry count support for mbm modem.

Regards,
Jeevaka

Jeevaka Badrappan (1):
  atmodem: Add pin retry count support for mbm

 drivers/atmodem/sim.c |   46 ++
 1 files changed, 46 insertions(+), 0 deletions(-)

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


[PATCH 1/1] atmodem: Add pin retry count support for mbm

2011-02-01 Thread Jeevaka Badrappan
---
 drivers/atmodem/sim.c |   46 ++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c
index dfd40f8..d9c0d8d 100644
--- a/drivers/atmodem/sim.c
+++ b/drivers/atmodem/sim.c
@@ -58,6 +58,7 @@ static const char *clck_prefix[] = { +CLCK:, NULL };
 static const char *huawei_cpin_prefix[] = { ^CPIN:, NULL };
 static const char *xpincnt_prefix[] = { +XPINCNT:, NULL };
 static const char *cpinr_prefixes[] = { +CPINR:, +CPINRE:, NULL };
+static const char *epin_prefix[] = { *EPIN:, NULL };
 static const char *none_prefix[] = { NULL };
 
 static void at_crsm_info_cb(gboolean ok, GAtResult *result, gpointer user_data)
@@ -555,6 +556,45 @@ error:
CALLBACK_WITH_FAILURE(cb, NULL, cbd-data);
 }
 
+static void at_epin_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+   struct cb_data *cbd = user_data;
+   ofono_sim_pin_retries_cb_t cb = cbd-cb;
+   const char *final = g_at_result_final_response(result);
+   GAtResultIter iter;
+   struct ofono_error error;
+   int retries[OFONO_SIM_PASSWORD_INVALID];
+   size_t i;
+   static enum ofono_sim_password_type password_types[] = {
+   OFONO_SIM_PASSWORD_SIM_PIN,
+   OFONO_SIM_PASSWORD_SIM_PUK,
+   OFONO_SIM_PASSWORD_SIM_PIN2,
+   OFONO_SIM_PASSWORD_SIM_PUK2,
+   };
+
+   decode_at_error(error, final);
+
+   if (!ok) {
+   cb(error, NULL, cbd-data);
+   return;
+   }
+
+   g_at_result_iter_init(iter, result);
+
+   if (!g_at_result_iter_next(iter, *EPIN:))
+   goto error;
+
+   BUILD_PIN_RETRIES_ARRAY(password_types, ARRAY_SIZE(password_types),
+   retries);
+
+   cb(error, retries, cbd-data);
+
+   return;
+
+error:
+   CALLBACK_WITH_FAILURE(cb, NULL, cbd-data);
+}
+
 static void at_cpinr_cb(gboolean ok, GAtResult *result, gpointer user_data)
 {
struct cb_data *cbd = user_data;
@@ -621,6 +661,12 @@ static void at_pin_retries_query(struct ofono_sim *sim,
return;
 
break;
+   case OFONO_VENDOR_MBM:
+   if (g_at_chat_send(sd-chat, AT*EPIN?, epin_prefix,
+   at_epin_cb, cbd, g_free)  0)
+   return;
+
+   break;
default:
if (g_at_chat_send(sd-chat, AT+CPINR, cpinr_prefixes,
at_cpinr_cb, cbd, g_free)  0)
-- 
1.7.0.4

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


[PATCH v2 0/3] ISI modem version detection with plugin

2011-02-01 Thread Jessica Nilsson
The same patch as before, but split up in three parts as per your suggestion.

As before, please note that this does not build unless the gisi patch
gisi: Updated subscriptions and pipe handling to accomodate additional
isimodem versions is added first. We are currently looking at your comments on
that one and will send in an update as soon as we can.

Best Regards,
Jessica Nilsson

  u8500: add plugin for u8500
  udev: u8500 support and style fix
  isimodem: header updates for ISI2.5

 Makefile.am|4 +
 drivers/isimodem/debug.c   |  132 
 drivers/isimodem/debug.h   |9 +
 drivers/isimodem/mtc.h |   38 
 drivers/isimodem/version.h |   26 +++
 plugins/ofono.rules|3 +
 plugins/u8500.c|  507 
 plugins/udev.c |5 +-
 8 files changed, 723 insertions(+), 1 deletions(-)
 create mode 100644 drivers/isimodem/version.h
 create mode 100644 plugins/u8500.c

--
1.7.3.5

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


[PATCH v2 1/3] u8500: add plugin for u8500

2011-02-01 Thread Jessica Nilsson
---
 Makefile.am |4 +
 plugins/ofono.rules |3 +
 plugins/u8500.c |  507 +++
 3 files changed, 514 insertions(+), 0 deletions(-)
 create mode 100644 plugins/u8500.c

diff --git a/Makefile.am b/Makefile.am
index a38fcb9..4762cc8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -110,6 +110,7 @@ builtin_sources += $(gisi_sources) \
drivers/isimodem/mtc.h \
drivers/isimodem/debug.h \
drivers/isimodem/isiutil.h \
+   drivers/isimodem/version.h \
drivers/isimodem/debug.c \
drivers/isimodem/phonebook.c \
drivers/isimodem/devinfo.c \
@@ -144,6 +145,9 @@ builtin_sources += plugins/isiusb.c
 
 builtin_modules += n900
 builtin_sources += plugins/n900.c plugins/nokia-gpio.h plugins/nokia-gpio.c
+
+builtin_modules += u8500
+builtin_sources += plugins/u8500.c
 endif
 
 if ATMODEM
diff --git a/plugins/ofono.rules b/plugins/ofono.rules
index 111f071..333bff0 100644
--- a/plugins/ofono.rules
+++ b/plugins/ofono.rules
@@ -356,6 +356,9 @@ SUBSYSTEMS==usb, ENV{OFONO_DRIVER}=isiusb, 
ENV{OFONO_ISI_ADDRESS}=16
 # Nokia N900 modem
 SUBSYSTEMS==hsi, ENV{OFONO_DRIVER}=n900, ENV{OFONO_ISI_ADDRESS}=108
 
+# STE u8500
+KERNEL==shrm0, ENV{OFONO_DRIVER}=u8500
+
 LABEL=ofono_isi_end
 
 SUBSYSTEM!=usb, GOTO=ofono_end
diff --git a/plugins/u8500.c b/plugins/u8500.c
new file mode 100644
index 000..3a3b2bc
--- /dev/null
+++ b/plugins/u8500.c
@@ -0,0 +1,507 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2010  Nokia Corporation and/or its subsidiary(-ies).
+ *  Copyright (C) ST-Ericsson SA 2011.
+ *
+ *  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
+
+#include stdio.h
+#include errno.h
+#include stdlib.h
+#include string.h
+#include glib.h
+
+#include gisi/netlink.h
+#include gisi/modem.h
+#include gisi/client.h
+#include gisi/message.h
+
+#define OFONO_API_SUBJECT_TO_CHANGE
+#include ofono/plugin.h
+#include ofono/log.h
+#include ofono/modem.h
+#include ofono/devinfo.h
+#include ofono/phonebook.h
+#include ofono/netreg.h
+#include ofono/voicecall.h
+#include ofono/sms.h
+#include ofono/cbs.h
+#include ofono/sim.h
+#include ofono/ussd.h
+#include ofono/ssn.h
+#include ofono/call-forwarding.h
+#include ofono/call-settings.h
+#include ofono/call-barring.h
+#include ofono/call-meter.h
+#include ofono/radio-settings.h
+#include ofono/gprs.h
+#include ofono/gprs-context.h
+
+#include drivers/isimodem/isimodem.h
+#include drivers/isimodem/isiutil.h
+#include drivers/isimodem/mtc.h
+#include drivers/isimodem/debug.h
+#include drivers/isimodem/version.h
+
+struct isi_data {
+   char const *ifname;
+   GIsiModem *modem;
+   GIsiClient *client;
+   GIsiPhonetNetlink *link;
+   GIsiPhonetLinkState linkstate;
+   unsigned interval;
+   int reported;
+   ofono_bool_t online;
+   struct isi_cb_data *online_cbd;
+};
+
+static const GIsiVersion modemversion = {
+   .major = 2,
+   .minor = 5,
+};
+
+static gboolean check_response_status(const GIsiMessage *msg, uint8_t msgid)
+{
+   if (g_isi_msg_error(msg)  0) {
+   DBG(Error: %s, strerror(-g_isi_msg_error(msg)));
+   return FALSE;
+   }
+
+   if (g_isi_msg_id(msg) != msgid) {
+   DBG(Unexpected msg: %s,
+   mce_message_id_name(g_isi_msg_id(msg)));
+   return FALSE;
+   }
+   return TRUE;
+}
+
+static void report_powered(struct ofono_modem *modem, struct isi_data *isi,
+   ofono_bool_t powered)
+{
+   if (powered == isi-reported)
+   return;
+
+   isi-reported = powered;
+   ofono_modem_set_powered(modem, powered);
+}
+
+static void report_online(struct isi_data *isi, ofono_bool_t online)
+{
+   struct isi_cb_data *cbd = isi-online_cbd;
+   ofono_modem_online_cb_t cb = cbd-cb;
+
+   isi-online_cbd = NULL;
+
+   if (isi-online == online)
+   CALLBACK_WITH_SUCCESS(cb, cbd-data);
+   else
+   CALLBACK_WITH_FAILURE(cb, cbd-data);
+
+   g_free(cbd);
+}
+
+static void set_power_by_mce_state(struct ofono_modem 

[PATCH v2 2/3] udev: u8500 support and style fix

2011-02-01 Thread Jessica Nilsson
---
 plugins/udev.c |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/plugins/udev.c b/plugins/udev.c
index ce1efe6..49b5eb8 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem,
devnode = udev_device_get_devnode(udev_device);
 
if (g_str_has_suffix(type, Application) == TRUE)
-   ofono_modem_set_string(modem, APPLICATION_PORT, 
devnode);
+   ofono_modem_set_string(modem, APPLICATION_PORT,
+   devnode);
else if (g_str_has_suffix(type, Control) == TRUE)
ofono_modem_set_string(modem, CONTROL_PORT, devnode);
} else if (g_str_equal(subsystem, net) == TRUE) {
@@ -636,6 +637,8 @@ done:
add_nokia(modem, udev_device);
else if (g_strcmp0(driver, isiusb) == 0)
add_isi(modem, udev_device);
+   else if (g_strcmp0(driver, u8500) == 0)
+   add_isi(modem, udev_device);
else if (g_strcmp0(driver, n900) == 0)
add_isi(modem, udev_device);
else if (g_strcmp0(driver, gobi) == 0)
-- 
1.7.3.5

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


[PATCH 3/4] nettime: Documentation

2011-02-01 Thread Antti Paila
---
 doc/network-time-api.txt |   36 
 1 files changed, 36 insertions(+), 0 deletions(-)
 create mode 100644 doc/network-time-api.txt

diff --git a/doc/network-time-api.txt b/doc/network-time-api.txt
new file mode 100644
index 000..9133a73
--- /dev/null
+++ b/doc/network-time-api.txt
@@ -0,0 +1,36 @@
+Network time hierarchy
+==
+
+Interface  com.meego.NetworkTime
+Object path[variable]
+
+Methodsvoid Notify(dict info)
+
+   Notifies the service of current time and date
+   as notified by the cellular network.  The info
+   argument contains a dictionary with the
+   following possible keys:
+
+   int64 UTC [optional]
+   Network time in seconds from epoch
+   normalized to device boot time.
+   Reveicing entity obtains current real
+   time by adding the value from monotonic
+   clock e.g.
+   clock_gettime(CLOCK_MONOTONIC,...).
+
+   int32 Timezone [optional]
+   Current timezone offset in seconds from
+   UTC.
+
+   int32 DST [optional]
+   Current daylight saving setting in
+   hours.
+
+   string MobileCountryCode
+   The Mobile country code of the
+   current network operator.
+
+   string MobileNetworkCode
+   The Mobile network code of the
+   current network operator.
-- 
1.7.1

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


[PATCH 4/4] nettime: Mock Timed for testing

2011-02-01 Thread Antti Paila
---
 test/test-nettime |   35 +++
 1 files changed, 35 insertions(+), 0 deletions(-)
 create mode 100755 test/test-nettime

diff --git a/test/test-nettime b/test/test-nettime
new file mode 100755
index 000..908a5db
--- /dev/null
+++ b/test/test-nettime
@@ -0,0 +1,35 @@
+#!/usr/bin/python
+
+import gobject
+import dbus
+import sys
+import time
+import dbus.service
+import dbus.mainloop.glib
+
+
+class NetworkTime(dbus.service.Object):
+   def __init__(self):
+   busName = dbus.service.BusName('com.meego.time',
+   bus = dbus.SystemBus())
+   dbus.service.Object.__init__(self, busName, '/com/meego/time')
+   @dbus.service.method(dbus_interface=com.meego.NetworkTime,
+   in_signature=a{sv}, out_signature=)
+   def Notify(self, arg):
+   print arg
+   print
+   print Time from mobile: %d % arg[UTC]
+   print DST: %d % arg[DST]
+   print Timezone: %d % arg[Timezone]
+   print MNC: %s % arg[MobileNetworkCode]
+   print MCC: %s % arg[MobileCountryCode]
+
+if __name__ == '__main__':
+   dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+   agent = NetworkTime()
+
+   mainloop = gobject.MainLoop()
+   mainloop.run()
+
+
+
-- 
1.7.1

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


[PATCH 2/4] nettime: Makefile.am modification

2011-02-01 Thread Antti Paila
---
 Makefile.am |9 +++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index a38fcb9..2d54025 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -337,6 +337,9 @@ builtin_modules += example_provision
 builtin_sources += examples/provision.c
 endif
 
+builtin_modules += nettime
+builtin_sources += plugins/nettime.c
+
 builtin_modules += smart_messaging
 builtin_sources += plugins/smart-messaging.c
 
@@ -404,7 +407,8 @@ doc_files = doc/overview.txt doc/ofono-paper.txt 
doc/release-faq.txt \
doc/phonebook-api.txt doc/radio-settings-api.txt \
doc/sim-api.txt doc/stk-api.txt \
doc/audio-settings-api.txt doc/text-telephony-api.txt \
-   doc/calypso-modem.txt doc/message-api.txt
+   doc/calypso-modem.txt doc/message-api.txt \
+   doc/network-time-api.txt
 
 
 test_scripts = test/backtrace \
@@ -478,7 +482,8 @@ test_scripts = test/backtrace \
test/cdma-dial-number \
test/cdma-hangup \
test/disable-call-forwarding \
-   test/list-messages
+   test/list-messages \
+   test/test-nettime
 
 if TEST
 testdir = $(pkglibdir)/test
-- 
1.7.1

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


[PATCH] ste: Add support for CBS interface

2011-02-01 Thread Lasse Kunnasluoto
STE modems support standard AT commands in CBS
---
 plugins/ste.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/plugins/ste.c b/plugins/ste.c
index 0b02a0d..cf8aed8 100644
--- a/plugins/ste.c
+++ b/plugins/ste.c
@@ -48,6 +48,7 @@
 #include ofono/netreg.h
 #include ofono/phonebook.h
 #include ofono/sim.h
+#include ofono/cbs.h
 #include ofono/sms.h
 #include ofono/ssn.h
 #include ofono/ussd.h
@@ -373,6 +374,7 @@ static void ste_post_online(struct ofono_modem *modem)
ofono_call_barring_create(modem, 0, atmodem, data-chat);
ofono_ssn_create(modem, 0, atmodem, data-chat);
ofono_call_volume_create(modem, 0, atmodem, data-chat);
+   ofono_cbs_create(modem, 0, atmodem, data-chat);
 
gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM,
atmodem, data-chat);
-- 
1.7.0.4

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


RE: [PATCH 3/4] nettime: Documentation

2011-02-01 Thread Jeevaka.Badrappan
Hi Antti,

ofono-boun...@ofono.org wrote:
 ---
  doc/network-time-api.txt |   36 
  1 files changed, 36 insertions(+), 0 deletions(-)  create
 mode 100644 doc/network-time-api.txt
 
 diff --git a/doc/network-time-api.txt
 b/doc/network-time-api.txt new file mode 100644 index
 000..9133a73 --- /dev/null +++ b/doc/network-time-api.txt
 @@ -0,0 +1,36 @@
 +Network time hierarchy
 +==
 +
 +Interfacecom.meego.NetworkTime
 +Object path  [variable]
 +
 +Methods  void Notify(dict info)
 +
 + Notifies the service of current time and date
 + as notified by the cellular network.  The info
 + argument contains a dictionary with the
 + following possible keys:
 +
 + int64 UTC [optional]
 + Network time in seconds from epoch
 + normalized to device boot time.
 + Reveicing entity obtains current real
 + time by adding the value from monotonic
 + clock e.g.
 + clock_gettime(CLOCK_MONOTONIC,...).
 +
 + int32 Timezone [optional]
 + Current timezone offset in seconds from
 + UTC.
 +
 + int32 DST [optional]
 + Current daylight saving setting in
 + hours.

few hours back I delivered a patch for converting the DST from hours to
seconds in ofono driver code.
are we going to take that into consideration?

Aki??

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


Re: [PATCH 0/3] EF-SPN API to sim-atom

2011-02-01 Thread Denis Kenzior
Hi Marcel,

On 02/01/2011 04:38 AM, Marcel Holtmann wrote:
 Hi Denis,
 
 On Thu, 2011-01-27 at 15:22 +0200, Jukka Saunamaki wrote:
 Here is an asynchronous implementation of SIM Service Provider Name 
 (EF-SPN) getter API.
 The trick is to delay setting sim ready until spn reading is finished.

 Any comments about this? 
 So, yes, it slightly delays SIM initialisation (usually SPN value should
 come from disk cache), but then netreg can use it immediately when it
 registers. 
 Alternative is still to create an asyncronous API now that there is a
 patch for safe SIM file reading.

 So my main problem here is that you require the SPN a handful of times
 in the phone's lifetime, more likely once.  Yet you pay the cost of
 reading and delaying the initialization every time.  In my view this is
 not really acceptable.
 
 does it really matter in the end? It gets read once and after that we
 are caching it on disk anyway.
 

Of course it does, while SIM is initializing everything else is blocked.
 Once we're in sim ready you can have n atoms initializing at the same
time.  On good hardware with proper muxing that can shave tremendous
amount of time off your startup cost.

Regards,
-Denis
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


Re: [PATCH 1/1] atmodem: Add pin retry count support for mbm

2011-02-01 Thread Marcel Holtmann
Hi Jeevaka,

  drivers/atmodem/sim.c |   46 ++
  1 files changed, 46 insertions(+), 0 deletions(-)

patch has been applied. Thanks.

Regards

Marcel


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


Re: [PATCH v2 2/3] udev: u8500 support and style fix

2011-02-01 Thread Marcel Holtmann
Hi Jessica,

  plugins/udev.c |5 -
  1 files changed, 4 insertions(+), 1 deletions(-)

so you wanna combine the udev rule change and the udev change together
actually. They both belong together. The actual modem plugin driver is
not related.

 diff --git a/plugins/udev.c b/plugins/udev.c
 index ce1efe6..49b5eb8 100644
 --- a/plugins/udev.c
 +++ b/plugins/udev.c
 @@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem,
   devnode = udev_device_get_devnode(udev_device);
  
   if (g_str_has_suffix(type, Application) == TRUE)
 - ofono_modem_set_string(modem, APPLICATION_PORT, 
 devnode);
 + ofono_modem_set_string(modem, APPLICATION_PORT,
 + devnode);

What is this part doing here?

   else if (g_str_has_suffix(type, Control) == TRUE)
   ofono_modem_set_string(modem, CONTROL_PORT, devnode);
   } else if (g_str_equal(subsystem, net) == TRUE) {
 @@ -636,6 +637,8 @@ done:
   add_nokia(modem, udev_device);
   else if (g_strcmp0(driver, isiusb) == 0)
   add_isi(modem, udev_device);
 + else if (g_strcmp0(driver, u8500) == 0)
 + add_isi(modem, udev_device);
   else if (g_strcmp0(driver, n900) == 0)
   add_isi(modem, udev_device);
   else if (g_strcmp0(driver, gobi) == 0)

Regards

Marcel


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


Re: [PATCH v2 3/3] isimodem: header updates for ISI2.5

2011-02-01 Thread Marcel Holtmann
Hi Jessica,

  drivers/isimodem/debug.c   |  132 
 
  drivers/isimodem/debug.h   |9 +++
  drivers/isimodem/mtc.h |   38 +
  drivers/isimodem/version.h |   26 +
  4 files changed, 205 insertions(+), 0 deletions(-)
  create mode 100644 drivers/isimodem/version.h

snip

 +enum isi_version {
 + ISI_20 = 0,
 + ISI_25 = 1
 +};

so what is the final decision here now. ISI doing auto-detection and
this gets not exposed to the modem drivers or we do.

Aki, I remember you saying that this is not needed at all.

Regards

Marcel


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


Re: [RFC] voice call API changes (proposal)

2011-02-01 Thread Andras Domokos

Hi Denis,

On 01/31/2011 09:58 PM, ext Denis Kenzior wrote:

Hi Andras,

On 01/31/2011 05:56 AM, Andras Domokos wrote:

Here is a proposal for expanding the VoiceCallManager interface with
call related Supplementary Services signals, and the VoiceCall
interface with new properties.

---
  doc/call-barring-api.txt |   10 --
  doc/voicecall-api.txt|   15 +++
  doc/voicecallmanager-api.txt |   21 +
  3 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/doc/call-barring-api.txt b/doc/call-barring-api.txt
index 41ae4b1..1534494 100644
--- a/doc/call-barring-api.txt
+++ b/doc/call-barring-api.txt
@@ -37,16 +37,6 @@ Signals  PropertyChanged(string property, 
variant value)
Signal is emitted whenever a property has changed.
The new value is passed as the signal argument.

-   IncomingBarringInEffect()
-
-   Signal is emitted when a call is made and an
-   incoming call barring supplementary service is in use.
-
-   OutgoingBarringInEffect()
-
-   Signal is emitted when a call is made and an
-   outgoing call barring supplementary service is in use.
-
  Propertiesstring VoiceIncoming [readwrite]

Contains the value of the barrings for the incoming
diff --git a/doc/voicecall-api.txt b/doc/voicecall-api.txt
index 047b8cb..e7276a3 100644
--- a/doc/voicecall-api.txt
+++ b/doc/voicecall-api.txt
@@ -145,3 +145,18 @@ Properties string LineIdentification [readonly]

Contains the indication if the voice call is an
emergency call or not.
+
+   boolean Forwarded
+
+   Contains the indication whether the voice call is a
+   forwarded call or not.
+

So just to clarify, this is usually set on a local Incoming / Waiting
call, correct?

This property would apply to both, outgoing and incoming calls.

When the incoming call is a forwarded call the call is accompanied
by a forwarded call SS notification.

When the call is an outgoing call and the call is forwarded due to the
remote party having a conditional or unconditional forwarding enabled,
the outgoing call is accompanied by a call has been forwarded
SS notification.

I think would be a good idea, if not mandatory, to have a voice call
property indicating the call direction.

+   boolean RemoteHold
+
+   Contains the indication whether the voice call has been
+   put on hold by the remote party or not.
+

This one is rather tricky, since AT modems do not report the index of
the call.  So the only way you can report this is if you have only a
single call active or your modem supports this properly (I know ISI does).

Indeed, this is a tricky case since the standard AT Supplementary
Services notification don't provide the call index within the notifications.
Although in many cases the call index can be inferred correctly, there
are cases when this is impossible and the call index needs to be
provided explicitly, like in the remote hold/multiparty  cases and
assuming 2 local calls. We do best effort guess for modems not
supporting call indexes.


+   boolean Waiting
+
+   Contains the indication whether the outgoing voice call
+   is waiting or not.

And this is for a local dialing / alerting call.  Correct?

This is an indication from the network in connection with an
outgoing call telling that the remote party is already engaged into
a call and your call is waiting to be answered or rejected (handled).


diff --git a/doc/voicecallmanager-api.txt b/doc/voicecallmanager-api.txt
index 2bf9ded..bbd80db 100644
--- a/doc/voicecallmanager-api.txt
+++ b/doc/voicecallmanager-api.txt
@@ -144,6 +144,27 @@ SignalsCallAdded(object path, dict properties)
Signal is emitted whenever a property has changed.
The new value is passed as the signal argument.

+   UnconditionalForwardingInEffect
+
+   Signal is emitted when a call is made and unconditional
+   call forwarding supplementary service is active.

This is for a local dialing / alerting call.  Correct?

The notification is sent in connection with an outgoing call when
the remote party has unconditional call forwarding enabled that
is enforced by the network.

+
+   ConditionalForwardingInEffect
+
+   Signal is emitted when a call is made and some of the
+   conditional call forwarding supplementary services are
+   active.
+

Same as above?

The notification is sent in connection with an outgoing call when
the remote party has such conditional call forwarding enabled
that is enforced by the network.


+   

Re: [PATCH] ste: Add support for CBS interface

2011-02-01 Thread Marcel Holtmann
Hi Lasse,

 STE modems support standard AT commands in CBS
 ---
  plugins/ste.c |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)

patch has been applied. Thanks.

Regards

Marcel


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


Re: [PATCH v2 2/3] udev: u8500 support and style fix

2011-02-01 Thread Andreas WESTIN

Hi Marcel,

Jessica is out of office.

On 2011-02-01 16:39, Marcel Holtmann wrote:

Hi Jessica,


  plugins/udev.c |5 -
  1 files changed, 4 insertions(+), 1 deletions(-)


so you wanna combine the udev rule change and the udev change together
actually. They both belong together. The actual modem plugin driver is
not related.


Ok, will correct.


diff --git a/plugins/udev.c b/plugins/udev.c
index ce1efe6..49b5eb8 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem,
devnode = udev_device_get_devnode(udev_device);

if (g_str_has_suffix(type, Application) == TRUE)
-   ofono_modem_set_string(modem, APPLICATION_PORT, 
devnode);
+   ofono_modem_set_string(modem, APPLICATION_PORT,
+   devnode);


What is this part doing here?


Style fix, should it be removed ?


else if (g_str_has_suffix(type, Control) == TRUE)
ofono_modem_set_string(modem, CONTROL_PORT, devnode);
} else if (g_str_equal(subsystem, net) == TRUE) {
@@ -636,6 +637,8 @@ done:
add_nokia(modem, udev_device);
else if (g_strcmp0(driver, isiusb) == 0)
add_isi(modem, udev_device);
+   else if (g_strcmp0(driver, u8500) == 0)
+   add_isi(modem, udev_device);
else if (g_strcmp0(driver, n900) == 0)
add_isi(modem, udev_device);
else if (g_strcmp0(driver, gobi) == 0)




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


Re: [PATCH v2 2/3] udev: u8500 support and style fix

2011-02-01 Thread Marcel Holtmann
Hi Andreas,

  diff --git a/plugins/udev.c b/plugins/udev.c
  index ce1efe6..49b5eb8 100644
  --- a/plugins/udev.c
  +++ b/plugins/udev.c
  @@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem,
 devnode = udev_device_get_devnode(udev_device);
 
 if (g_str_has_suffix(type, Application) == TRUE)
  -  ofono_modem_set_string(modem, APPLICATION_PORT, 
  devnode);
  +  ofono_modem_set_string(modem, APPLICATION_PORT,
  +  devnode);
 
  What is this part doing here?
 
 Style fix, should it be removed ?

style fixes should always be a separate patch. Do not intermix totally
unrelated style fixes with actual changes.

Regards

Marcel


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


Re: [PATCH] atmodem: implement standard PIN retries

2011-02-01 Thread Marcel Holtmann
Hi Remi,

  drivers/atmodem/sim.c |   48 
  1 files changed, 48 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c
 index 0938998..dfd40f8 100644
 --- a/drivers/atmodem/sim.c
 +++ b/drivers/atmodem/sim.c
 @@ -57,6 +57,7 @@ static const char *cpin_prefix[] = { +CPIN:, NULL };
  static const char *clck_prefix[] = { +CLCK:, NULL };
  static const char *huawei_cpin_prefix[] = { ^CPIN:, NULL };
  static const char *xpincnt_prefix[] = { +XPINCNT:, NULL };
 +static const char *cpinr_prefixes[] = { +CPINR:, +CPINRE:, NULL };
  static const char *none_prefix[] = { NULL };

any chance we get a patch that also adds this to Phonesim for testing
actually. Since it is a standard, it should be fine to add this as well
to Phonesim.

Lucas, are you willing to have a step here since you wrote the initial
feature?

Regards

Marcel


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


[PATCH 2/9] common: implement initializer for ofono_call

2011-02-01 Thread Lucas De Marchi
---
 src/common.c |7 +++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/common.c b/src/common.c
index 8bf9dbb..f25f105 100644
--- a/src/common.c
+++ b/src/common.c
@@ -762,3 +762,10 @@ const char *ofono_uuid_to_str(const struct ofono_uuid 
*uuid)
 
return encode_hex_own_buf(uuid-uuid, OFONO_SHA1_UUID_LEN, 0, buf);
 }
+
+void ofono_call_init(struct ofono_call *call)
+{
+   memset(call, 0, sizeof(struct ofono_call));
+   call-cnap_validity = CNAP_VALIDITY_NOT_AVAILABLE;
+   call-clip_validity = CLIP_VALIDITY_NOT_AVAILABLE;
+}
-- 
1.7.4

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


[PATCH 4/9] calypsomodem: use ofono_call initializer

2011-02-01 Thread Lucas De Marchi
---
 drivers/calypsomodem/voicecall.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/calypsomodem/voicecall.c b/drivers/calypsomodem/voicecall.c
index 01be990..fed442c 100644
--- a/drivers/calypsomodem/voicecall.c
+++ b/drivers/calypsomodem/voicecall.c
@@ -314,7 +314,7 @@ static void cpi_notify(GAtResult *result, gpointer 
user_data)
g_at_chat_send(vd-chat, AT%N0187, none_prefix,
NULL, NULL, NULL);
 
-   memset(call, 0, sizeof(call));
+   ofono_call_init(call);
 
switch (msgtype) {
case 0:
-- 
1.7.4

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


[PATCH 6/9] huaweimodem: use ofono_call initializer

2011-02-01 Thread Lucas De Marchi
---
 drivers/huaweimodem/voicecall.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/huaweimodem/voicecall.c b/drivers/huaweimodem/voicecall.c
index a30513a..53377d9 100644
--- a/drivers/huaweimodem/voicecall.c
+++ b/drivers/huaweimodem/voicecall.c
@@ -56,10 +56,12 @@ static struct ofono_call *create_call(struct 
ofono_voicecall *vc, int type,
struct ofono_call *call;
 
/* Generate a call structure for the waiting call */
-   call = g_try_new0(struct ofono_call, 1);
+   call = g_try_new(struct ofono_call, 1);
if (call == NULL)
return NULL;
 
+   ofono_call_init(call);
+
call-id = id;
call-type = type;
call-direction = direction;
-- 
1.7.4

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


[PATCH 7/9] ifxmodem: use ofono_call initializer

2011-02-01 Thread Lucas De Marchi
---
 drivers/ifxmodem/voicecall.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/ifxmodem/voicecall.c b/drivers/ifxmodem/voicecall.c
index 716652c..e7f72fc 100644
--- a/drivers/ifxmodem/voicecall.c
+++ b/drivers/ifxmodem/voicecall.c
@@ -87,10 +87,12 @@ static struct ofono_call *create_call(struct 
ofono_voicecall *vc, int type,
struct ofono_call *call;
 
/* Generate a call structure for the waiting call */
-   call = g_try_new0(struct ofono_call, 1);
+   call = g_try_new(struct ofono_call, 1);
if (call == NULL)
return NULL;
 
+   ofono_call_init(call);
+
call-id = ofono_voicecall_get_next_callid(vc);
call-type = type;
call-direction = direction;
-- 
1.7.4

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


[RFC 2/2] doc: Add description for history agent interface

2011-02-01 Thread Marcel Holtmann
---
 doc/history-agent-api.txt |   83 +
 1 files changed, 83 insertions(+), 0 deletions(-)
 create mode 100644 doc/history-agent-api.txt

diff --git a/doc/history-agent-api.txt b/doc/history-agent-api.txt
new file mode 100644
index 000..373974d
--- /dev/null
+++ b/doc/history-agent-api.txt
@@ -0,0 +1,83 @@
+History hierarchy
+=
+
+Serviceorg.ofono
+Interface  org.ofono.History
+Object path[variable prefix]/{modem0,modem1,...}
+
+Methodsvoid RegisterAgent(object path)
+
+   Registers an agent which will be called whenever a
+   new history update is available.
+
+   Possible Errors: [service].Error.InvalidArguments
+[service].Error.InvalidFormat
+
+   void UnregisterAgent(object path)
+
+   Unregisters an agent.
+
+   Possible Errors: [service].Error.InvalidArguments
+
+
+History Agent hierarchy
+===
+
+Serviceunique name
+Interface  org.ofono.HistoryAgent
+Object pathfreely definable
+
+Methodsvoid CallEnded(dict info)
+
+   Call has been established and finished now.
+
+   The info dictionary contains 'Direction', 'Number',
+   'Name', 'StartTime' and 'EndTime' properties.
+
+   Possible Errors: None
+
+   void CallMissed(dict info)
+
+   Call has been missed.
+
+   The info dictionary contains 'Number', 'Name' and
+   'LocalTime' properties.
+
+   Possible Errors: None
+
+   void MessageReceived(dict info)
+
+   Incoming text message.
+
+   The info dictionary contains 'Identifier', 'Sender',
+   'Text', 'LocalTime' and 'RemoteTime' properties.
+
+   Possible Errors: None
+
+   void MessageSubmitted(dict info)
+
+   Outgoing text message that is currently queued up.
+
+   The info dictionary contains 'Identifier', 'Receiver',
+   'Text' and 'LocalTime' properties.
+
+   Possible Errors: None
+
+   void MessageStatus(dict info)
+
+   Update on the status of outgoing messages.
+
+   The info dictionary contains 'Identifier', 'Status'
+   and 'LocalTime' properties.
+
+   Status can be 'pending', 'submitted', 'submit-failed',
+   'delivered' or 'deliver-failed'.
+
+   Possible Errors: None
+
+   void Release() [noreply]
+
+   Agent is being released, possibly because of daemon
+   terminating or modem being turned off.
+
+   No UnregisterAgent call is needed.
-- 
1.7.3.5

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


[RFC 1/2] plugins: Add basic support for history agent interface

2011-02-01 Thread Marcel Holtmann
---
 plugins/history-agent.c |  509 +++
 1 files changed, 509 insertions(+), 0 deletions(-)
 create mode 100644 plugins/history-agent.c

diff --git a/plugins/history-agent.c b/plugins/history-agent.c
new file mode 100644
index 000..42298c1
--- /dev/null
+++ b/plugins/history-agent.c
@@ -0,0 +1,509 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2008-2011  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
+
+#include errno.h
+#include string.h
+#include glib.h
+#include gdbus.h
+#include ofono.h
+
+#define OFONO_API_SUBJECT_TO_CHANGE
+#include ofono/plugin.h
+#include ofono/log.h
+#include ofono/modem.h
+#include ofono/dbus.h
+#include common.h
+
+#define HISTORY_INTERFACE org.ofono.History
+#define AGENT_INTERFACE org.ofono.HistoryAgent
+
+struct history_agent {
+   DBusConnection *conn;
+   const char *path;
+   char *agent_path;
+   char *agent_owner;
+   guint agent_watch;
+};
+
+struct agent_request {
+   struct history_agent *history;
+   DBusMessage *msg;
+   DBusMessageIter iter;
+   DBusPendingCall *call;
+};
+
+static struct agent_request *agent_request_new(struct history_agent *history,
+   const char *method)
+{
+   struct agent_request *req;
+
+   DBG(owner: %s, history-agent_owner);
+
+   if (history-agent_owner == NULL || history-agent_path == NULL)
+   return NULL;
+
+   req = g_try_new0(struct agent_request, 1);
+   if (req == NULL)
+   return NULL;
+
+   req-history = history;
+
+   req-msg = dbus_message_new_method_call(history-agent_owner,
+   history-agent_path,
+   AGENT_INTERFACE, method);
+   if (req-msg == NULL) {
+   g_free(req);
+   return NULL;
+   }
+
+   dbus_message_iter_init_append(req-msg, req-iter);
+
+   return req;
+}
+
+static void agent_request_free(struct agent_request *req)
+{
+   dbus_pending_call_unref(req-call);
+
+   dbus_message_unref(req-msg);
+
+   g_free(req);
+}
+
+static void agent_request_reply_cb(DBusPendingCall *call, void *data)
+{
+   struct agent_request *req = data;
+   DBusMessage *reply = dbus_pending_call_steal_reply(call);
+   DBusError error;
+
+   dbus_error_init(error);
+
+   if (dbus_set_error_from_message(error, reply) == TRUE) {
+   ofono_error(Agent method failed: %s, error.name);
+   dbus_error_free(error);
+   }
+
+   dbus_message_unref(reply);
+
+   agent_request_free(req);
+}
+
+static void agent_request_dispatch(struct agent_request *req)
+{
+   struct history_agent *history = req-history;
+
+   if (dbus_connection_send_with_reply(history-conn, req-msg,
+   req-call, -1) == FALSE) {
+   ofono_error(Sending D-Bus method failed);
+   return;
+   }
+
+   dbus_pending_call_set_notify(req-call, agent_request_reply_cb,
+   req, NULL);
+}
+
+static void free_agent_data(struct history_agent *history)
+{
+   g_free(history-agent_path);
+   history-agent_path = NULL;
+
+   g_free(history-agent_owner);
+   history-agent_owner = NULL;
+}
+
+static void agent_disconnect_cb(DBusConnection *conn, void *data)
+{
+   struct history_agent *history = data;
+
+   history-agent_watch = 0;
+
+   free_agent_data(history);
+}
+
+static DBusMessage *register_agent(DBusConnection *conn,
+   DBusMessage *msg, void *data)
+{
+   struct history_agent *history = data;
+   const char *path, *sender;
+
+   if (history-agent_owner != NULL)
+   return __ofono_error_busy(msg);
+
+   if (dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, path,
+   DBUS_TYPE_INVALID) == FALSE)
+   return __ofono_error_invalid_args(msg);
+
+   if (!__ofono_dbus_valid_object_path(path))
+   return __ofono_error_invalid_format(msg);
+
+   sender = 

Re: [PATCH 1/9] include: define initializer for ofono_call

2011-02-01 Thread Marcel Holtmann
Hi Lucas,

 Some fields in struct ofono_call such as cnap_validity and clip_validity
 are not correctly initialized as 0 since this means they are present. If
 driver does not implement the necessary handlers, it might send to core
 an ofono_call signalling that cnap and clip are available when they are
 actually not.

all 9 patches have been applied. Thanks.

Regards

Marcel


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


[PATCH 2/5] doc: fix misspelling

2011-02-01 Thread Lucas De Marchi
---
 doc/sim-api.txt |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/doc/sim-api.txt b/doc/sim-api.txt
index 65c920d..c8091f7 100644
--- a/doc/sim-api.txt
+++ b/doc/sim-api.txt
@@ -129,7 +129,7 @@ Properties  boolean Present [readonly]
 
string CardIdentifier [readonly]
 
-   Contains the Intergrated Circuit Card Identifer (ICCID)
+   Contains the Integrated Circuit Card Identifer (ICCID)
which is read directly from the SIM.
 
boolean FixedDialing [readonly]
-- 
1.7.4

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


Re: [PATCH v2 3/3] isimodem: header updates for ISI2.5

2011-02-01 Thread Aki Niemi
Hi Marcel,

On Tue, 2011-02-01 at 16:43 +0100, ext Marcel Holtmann wrote:
  +enum isi_version {
  +   ISI_20 = 0,
  +   ISI_25 = 1
  +};
 
 so what is the final decision here now. ISI doing auto-detection and
 this gets not exposed to the modem drivers or we do.

Like I replied earlier, I don't see the need for this. Also, it will not
work well with the isiusb plugin, which has the potential to work with
any ISI modem. I'm not willing to break that potential until we just
absolutely have to.

So, my stance holds: we quirk based on resource ID and based on the
server's ISI version.

I'm starting to think me just saying this out loud is not concrete
enough, so I guess one way forward here could be for me to go ahead and
adapt e.g. the netreg driver to work with N900 and later ISI modems. The
netreg driver would make a good example, as it is one of those where the
resource ID changes post N900, and the messages do vary based on it.

Cheers,
Aki

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


Re: [PATCH 0/3] EF-SPN API to sim-atom

2011-02-01 Thread Jukka Saunamaki
Hi

On Tue, 2011-02-01 at 22:38 +0200, ext Aki Niemi wrote:
 That reminds me, I think there are SIMs out there that use the CPHS ONS
 instead of SPN, and these can be used interchangeably.
 
 Jukka, don't you actually also need the ONS?

In theory maybe, but in practice so far all cases where operator/service
provider name is needed for provisioning have had SPN.

--Jukka
 

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


Re: [PATCH v8] ifx: Adding modem selftest for Infineon modem

2011-02-01 Thread Marcel Holtmann
Hi Robertino,

 Infineon modem selftest, during ifx_enable().
 Two steps trigger, with timeout. In case one
 fails, modem will not power up.
 
 ---
  plugins/ifx.c |   58 ++--
  1 files changed, 51 insertions(+), 7 deletions(-)
 
 diff --git a/plugins/ifx.c b/plugins/ifx.c
 index 411c012..0250f64 100644
 --- a/plugins/ifx.c
 +++ b/plugins/ifx.c
 @@ -524,21 +524,57 @@ static gboolean mux_timeout_cb(gpointer user_data)
   struct ofono_modem *modem = user_data;
   struct ifx_data *data = ofono_modem_get_data(modem);
  
 - ofono_error(Timeout with multiplexer setup);
 + ofono_error(Timeout with modem and multiplexer setup);
  
   data-mux_init_timeout = 0;
  
 - g_at_chat_unref(data-dlcs[AUX_DLC]);
 - data-dlcs[AUX_DLC] = NULL;
 + if(data-dlcs[AUX_DLC]) {
 + g_at_chat_unref(data-dlcs[AUX_DLC]);
 + data-dlcs[AUX_DLC] = NULL;
 + }
  
 - g_io_channel_unref(data-device);
 - data-device = NULL;
 + if(data-device) {
 + g_io_channel_unref(data-device);
 + data-device = NULL;
 + }

what are these suppose to be doing? This is in the timeout handler and
the timeout will only ever be triggered if data-dlcs[AUX_DLC] is
actually valid. If it gets triggered otherwise then you forgot to
disable the timer. So these should not be needed.

However, please follow our coding style. It is ... ifspace( ...

   ofono_modem_set_powered(modem, FALSE);
  
   return FALSE;
  }
  
 +static void dev_ver_selftest_cb(gboolean ok, GAtResult *result,
 + gpointer user_data)
 +{
 +
 + struct ofono_modem *modem = user_data;
 + struct ifx_data *data = ofono_modem_get_data(modem);
 +
 + if (ok)
 + return;
 +
 + ofono_error(ERROR:IFX Selftest at@vers:device_version_id()
 + -FAILED);
 + g_at_chat_cancel_all(data-dlcs[AUX_DLC]);
 + shutdown_device(data);

You do need to watch out for such really simple issues with the coding
style. Please get them fixed before submitting a patch.

Now to the fact of using shutdown_device() here. That is not really a
good idea. That function can only be used after you have the MUX up and
running since it takes care of taking down the MUX or restoring the line
discipline. However you have not done that yet.

 +}
 +
 +static void rtc_gti_selftest_cb(gboolean ok, GAtResult *result,
 + gpointer user_data)
 +{
 + struct ofono_modem *modem = user_data;
 + struct ifx_data *data = ofono_modem_get_data(modem);
 +
 + if (ok)
 + return;
 +
 + ofono_error(ERROR:IFX Selftest
 + at@rtc:rtc_gti_test_verify_32khz()-FAILED);

And I would prefer if you just leave the ERROR:IFX Selftest part out
here. It is clear that it is an error since ofono_error() says so and
also tells syslog about it.

 +
 + g_at_chat_cancel_all(data-dlcs[AUX_DLC]);
 + shutdown_device(data);
 +}
 +
  static int ifx_enable(struct ofono_modem *modem)
  {
   struct ifx_data *data = ofono_modem_get_data(modem);
 @@ -592,13 +628,21 @@ static int ifx_enable(struct ofono_modem *modem)
   g_at_chat_send(chat, ATE0 +CMEE=1, NULL,
   NULL, NULL, NULL);
  
 + /* Execute Modem Self tests */
 + g_at_chat_send(chat, at@rtc:rtc_gti_test_verify_32khz(),
 + NULL, rtc_gti_selftest_cb, modem, NULL);
 +
 + g_at_chat_send(chat, at@vers:device_version_id(),
 + NULL, dev_ver_selftest_cb, modem, NULL);
 +
 + /* Enable  MUX Channels */
   data-frame_size = 1509;
  
   g_at_chat_send(chat, AT+CMUX=0,0,,1509,10,3,30,,, NULL,
   mux_setup_cb, modem, NULL);
  
 - data-mux_init_timeout = g_timeout_add_seconds(5, mux_timeout_cb,
 - modem);
 + data-mux_init_timeout = g_timeout_add_seconds(
 + 10, mux_timeout_cb, modem);

Please keep the original style with 10, mux_timeout_cb in the original
line.

And you might wanna still add the comment about expected execution time
of the selftest commands.

Regards

Marcel


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