Re: [PATCH 3/4] Bearer documentation

2011-01-13 Thread Rémi Denis-Courmont
On Wednesday 12 January 2011 18:40:45 ext Marcel Holtmann, you wrote:
 that is what I thought. It is just a stupidity in the AT command
 specification that they give a CID with it.

If that's the understanding, I will rewrite the patch to expose the current 
bearer in the connection manager and keep the network access technology as it 
currently is - in the network registration.

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


Re: [PATCH 05/10] Update documentation for GPRS technology

2011-01-13 Thread Rémi Denis-Courmont
On Wednesday 12 January 2011 18:32:22 ext Marcel Holtmann, you wrote:
 Hi Remi,
 
+   string Technology [readonly, optional]
+
+   Contains the data technology as reported by the
+   GPRS service registration (if known).
+
+   Possible values are the same as for the 
Technology
+   property the NetworkRegistration object.
+
   
   we used to have this value and then we removed it since it ended up
   being not useful. So why do you wanna bring it back?
  
  The network registration only ever tells 2G/3G/4G. We need something to
  tell about EDGE or HS*PA. We cannot rely (only) on the CPSB bearer as it
  is only defined when there is an active context. Technology is set
  whenever we are registered to the GPRS service.
 
 as I said, we took the Technology field from the Connection Manager
 since it was just duplication.
 
 So why are we not feeding the CPSB bearer information into the Network
 Registration and have it just update from GSM - EDGE and UMTS - HSPA
 accordingly.
 
 I think that the UI should only require to monitor one location for this
 information to display them. And if it jumps from 3.5G to 3G and back
 depending if a GPRS context is active or not. That is fine with me.

Unfortunately, it is a bit more complicated. Different people have different 
understandings of what the UI should show... At the root of the issue, we have 
the fact that the network access technology (found in the network registration 
atom at the moment) and the current bearer technology (not currently exposed 
by oFono) have no total order.

It is of course perfectly normal for the access technology to be more 
powerful than the current bearer - for instance if the device is not 
transmitting much if any data. But on some network, we can also have the 
opposite situation because some network cells do not expose their support of 
HS*PA during registration, but only when data transfer occurs.

One view is that the UI should expose the highest of both values. Another 
view si that the UI should expose the current bearer if any, otherwise the 
network registration technology. And then I have seen some more advanced use 
cases where we need both infos separated.


So my take is that oFono should expose both values. If we want to make it 
easy for the user interface, then we should have a third pre-digested value, 
and even then we might need to make the algorithm configurable.

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


[PATCH] phonesim: fix for sigsegv fault

2011-01-13 Thread Jeevaka Badrappan
Fixes the issue in List count handling which might result
in sigsegv during destruction. Also added additional check
for start button handling.
---
 src/control.cpp  |3 ++-
 src/phonesim.cpp |   10 +++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/control.cpp b/src/control.cpp
index 2cbb91a..f2249cb 100644
--- a/src/control.cpp
+++ b/src/control.cpp
@@ -467,7 +467,8 @@ void Control::handleNewApp()
 
 void ControlWidget::simAppStart()
 {
-p-simAppStart( ui-cbSimApps-currentIndex() );
+if ( ui-cbSimApps-currentIndex() = 0 )
+p-simAppStart( ui-cbSimApps-currentIndex() );
 }
 
 void ControlWidget::simAppAbort()
diff --git a/src/phonesim.cpp b/src/phonesim.cpp
index 47425bc..8a9c50e 100644
--- a/src/phonesim.cpp
+++ b/src/phonesim.cpp
@@ -844,13 +844,17 @@ void SimRules::tryReadCommand()
 
 void SimRules::destruct()
 {
+int count = simApps.count();
+
+for ( int i = 0; i  count; i++ )
+simApps.removeAt( 0 );
+
 delete conformanceApp;
+conformanceApp = NULL;
 delete defaultToolkitApp;
+defaultToolkitApp = NULL;
 toolkitApp = NULL;
 
-for ( int i = 0; i  simApps.count(); i++ )
-simApps.removeAt( i );
-
 if ( getMachine() )
 getMachine()-handleNewApp();
 
-- 
1.7.0.4

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


RE: [PATCH] sim: check if lock is locked after code changing attempt

2011-01-13 Thread Jussi.Kangas
Hi Denis, 

On Wed, 2011-01-12 at 07:07 +0200, Denis Kenzior wrote:
 Hi Jussi,
 
 On 01/11/2011 06:17 AM, jussi.kan...@tieto.com wrote:
  Hi,
  
  This is fix to Marit Henriksen's TODO item Check SIM pin status if 
  sim_change_pin fails. I've discussed with Marit and it's ok for her if I 
  fix the issue. Problem here is that issue could perhaps also be fixed with 
  retry counter solution introduced by Lucas De Marchi couple of tasks ago. 
  That would seem however require some extra implementation in ste modem ( at 
  least I was not able get the ofono show correct values without extra 
  modifications ) and I think that isimodems don't have that sort of retry 
  counter at all. Because of that and since I had this solution already 
  implemented I propose it to be added as well. 
  
  Br,
  -Jussi
  
  ---
   src/sim.c |   54 ++
   1 files changed, 54 insertions(+), 0 deletions(-)
  
 
 First, please fix your authorship information.  See the AUTHORS file 
 to see what we expect.  Also, please make sure that you're using tabs 
 for indentation and following the relevant coding style.  See the 
 Submitting Patches section in the HACKING document in oFono git as 
 well as doc/coding-style.txt.

I think whole this chapter should be translated as Do not use Outlook.
I asked around little bit and best guess seems to be that you are using 
something that takes authorship information from mail address. Also since the 
patch passes the checkpatch here with no problems whatsoever I guess Outlook 
ruined the patch. Fine, I'll try Evolution next. If possible, I would like to 
avoid using the git send-email. I prefer tools with GUI. 

 
  diff --git a/src/sim.c b/src/sim.c
  index d627647..789ddde 100644
  --- a/src/sim.c
  +++ b/src/sim.c
  @@ -712,8 +712,60 @@ static DBusMessage 
  *sim_unlock_pin(DBusConnection *conn, DBusMessage *msg,  static void 
  sim_change_pin_cb(const struct ofono_error *error, void *data)  {
 
 So my first concern is that whatever you do here also has to work for 
 LockPin and UnlockPin.

I'm not after total solution here. I would like to implement this so that first 
the ChangePin starts working, i.e fullfill the existing TODO task first. 
Reasoning here is that I thought it would be easier to get the fixes in if I 
keep them small. If u mean that stuff inside (error-error = 12) condition 
should be as separate function to be usable for LockPin and UnlockPin, I agree. 
I was just thinking that separation could be done when fix is extended to 
LockPin and UnlockPin. 

 
   struct ofono_sim *sim = data;
  +DBusConnection *conn = ofono_dbus_get_connection();
  +const char *path = __ofono_atom_get_path(sim-atom);
  +struct ofono_modem *modem = __ofono_atom_get_modem(sim-atom);
  +const char *pin_name;
   
   if (error-type != OFONO_ERROR_TYPE_NO_ERROR) {
  +if (error-error == 12) {
  +sim-locked_pins[sim-pin_type] = TRUE;
  +switch (sim-pin_type) {
  +case OFONO_SIM_PASSWORD_SIM_PIN:
  +sim-pin_type = OFONO_SIM_PASSWORD_SIM_PUK;
  +pin_name = sim_passwd_name(
  +OFONO_SIM_PASSWORD_SIM_PUK);
  +break;
  +case OFONO_SIM_PASSWORD_PHFSIM_PIN:
  +sim-pin_type = OFONO_SIM_PASSWORD_PHFSIM_PUK;
  +pin_name = sim_passwd_name(
  +OFONO_SIM_PASSWORD_PHFSIM_PUK);
  +break;
  +case OFONO_SIM_PASSWORD_PHCORP_PIN:
  +sim-pin_type = OFONO_SIM_PASSWORD_PHCORP_PUK;
  +pin_name = sim_passwd_name(
  +OFONO_SIM_PASSWORD_PHCORP_PUK);
  +break;
  +case OFONO_SIM_PASSWORD_PHNET_PIN:
  +sim-pin_type = OFONO_SIM_PASSWORD_PHNET_PUK;
  +pin_name = sim_passwd_name(
  +OFONO_SIM_PASSWORD_PHNET_PUK);
  +case OFONO_SIM_PASSWORD_PHNETSUB_PIN:
  +sim-pin_type = OFONO_SIM_PASSWORD_PHNETSUB_PUK;
  +pin_name = sim_passwd_name(
  +OFONO_SIM_PASSWORD_PHNETSUB_PUK);
  +break;
  +case OFONO_SIM_PASSWORD_PHSP_PIN:
  +sim-pin_type = OFONO_SIM_PASSWORD_PHSP_PUK;
  +pin_name = sim_passwd_name(
  +OFONO_SIM_PASSWORD_PHSP_PUK);
  +break;
  +case OFONO_SIM_PASSWORD_SIM_PIN2:
  +sim-pin_type = OFONO_SIM_PASSWORD_SIM_PUK2;
  +pin_name = sim_passwd_name(
  +OFONO_SIM_PASSWORD_SIM_PUK2);
  +break;
  +default:
  +break;
  +}
  +ofono_dbus_signal_property_changed(conn, path,
  +OFONO_SIM_MANAGER_INTERFACE,
  +PinRequired, DBUS_TYPE_STRING,
  +pin_name);
 
 Have you considered querying the PIN state on 

Segmentation fault on Downlink data transfer

2011-01-13 Thread Pargada, Carlos
Hi Marcel and Denis

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

Basically, during a data transfer after PDP context activation (long data 
transfer 5MB), a segmentation fault  error could occurs at any time (even it is 
not systematic).
 GLib-CRITICAL **: g_io_channel_write_chars: assertion `channel != NULL' failed

Root cause of this issue is a ring buffer overflow (in gatio received data 
function). The overflow is detected and the DLC3 source context is destroyed in 
dispatch source function. After that the disconnect handler is called and try 
to destroyed the same context.

So on this issue there is 2 points:

1-  Management of the buffer overflow

2-  Buffer overflow cause

For the 1st point, I'm not sure that disconnect DLC channel is the solution in 
case of buffer overflow. I believe that is better to discard ongoing packet in 
the buffer. TCP could survived to packet loss and retransmit the packets. 
Throughput go down but the data pipe is not broken for the application.

For the 2nd point, ring buffer overflow happened because data is not consume in 
this buffer. This is a flow control problem. I suspect that for some reason the 
consumer is blocked (not schedule) during some time.
Ring buffer size is set to 4096 bytes. I realize some test with a ring buffer 
increase to 131072 bytes and I can get long file downlink transfer. Probably 
this size is too much high and  this size  buffer need to be tune.

Could you please give me feedback for this 2 points?

This issue is very similar to bug  track in: 
http://bugs.meego.com/show_bug.cgi?id=11700


Regards

Carlos










-
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: Les Montalets- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
___
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono


RE: [RFC 3/5] voicecall: Add ofono_voicecall_tty_notify api

2011-01-13 Thread Kai.Vehmanen
Hello Marcel,

On 12 Jan 2011, Marcel Holtmann wrote:
 Are we expecting that all modems will just establish a normal voice
 call
 and only later on signal that it is a TTY call? Any input from
 different
 vendors other than IFX. What about STE, ISI?

not later, but as part of standard call setup. E.g. on ISI, CTM is 
a property of a voice call. And this makes sense as TTY calls _are_ 
essentially voice calls, with just a bit indicating to the network that 
the voice circuit should be free of any transcoder/audioprocessing/etc 
that is not compatible with CTM. And this is negotiated as part of standard 
call setup (same way as supported codecs).

My understanding so far has been that TextTelephony.Enabled=TRUE 
means that the CTM bit is set in all subsequent MO calls, and
it is set by default when answering to MT calls. And the one special 
case is receiving a CTM-enabled call when TTY is not enabled (in oFono). 
In this case it should be possible to enable TTY (for at least that
call) and respond to the call (and ifxmodem seems to provide support 
for this scenario).

This should be standard stuff to all modems as this is a heavily 
regulated feature.

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


Re: [PATCH 00/21] Resubmit Zhenhua Zhang work on DUN server with btio

2011-01-13 Thread Rémi Denis-Courmont
On Wednesday 12 January 2011 19:15:43 ext Frédéric Dalleau, you wrote:
 This is rebased as of head of today

This seems quite useless work to me.

There are a number of AT commands that are required but really do not belong 
in oFono. Consider for example AT+CKPD/AT+CTSA/AT+CMEC input emulation and 
AT+CBC* battery notifications. Those things have nothing to do with Cellular 
other than the C in the command prefix.  Then we have commands that are related 
to cellular functionality but higher-level than oFono, like AT+CPB* for 
phonebook.

Now, I recognize this patch only attempts to provide BT DUN profile, not the 
whole 27.007 set. But doing that in userspace in oFono is probably the slowest 
and most inefficient approach to the problem. And MeeGo will have to solve the 
more general problem in any case, if MeeGo cellular devices are to be 
certified.

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


[PATCH 1/5 v3] nettime: Header file for nettime plugins

2011-01-13 Thread Antti Paila
---
 include/nettime.h |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/include/nettime.h b/include/nettime.h
index 0f23cc7..2f73e1a 100644
--- a/include/nettime.h
+++ b/include/nettime.h
@@ -31,6 +31,10 @@ struct ofono_network_time;
 struct ofono_nettime_context {
struct ofono_nettime_driver *driver;
struct ofono_modem *modem;
+   unsigned int timed_watch;
+   gboolean timed_present;
+   struct ofono_netreg *netreg;
+   unsigned int netreg_st_watch;
void *data;
 };
 
-- 
1.7.1

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


[PATCH 0/5 v3] Network Time plugin

2011-01-13 Thread Antti Paila
 This series of patches introduces the network time part of
 the NITZ feature as outlined in 3GPP spec 22.042.
 The plugin is for delivering network indicated time information
 to timed process which is responsible for maintaining the system
 time. The delivery is achieved by timed implementing an interface
 with a method that is called by the nettime plugin with time related
 info as a parameter of the method.

Antti Paila (5):
  nettime: Header file for nettime plugins
  nettime: Network time plugin implementation
  nettime: DBUS and compilation configuration
  nettime: Documentation
  nettime: Mock Timed for testing

 Makefile.am  |9 +-
 doc/network-time-api.txt |   36 +
 include/nettime.h|4 +
 plugins/nettime.c|  317 ++
 src/ofono.conf   |2 +
 test/test-nettime|   35 +
 6 files changed, 401 insertions(+), 2 deletions(-)
 create mode 100644 doc/network-time-api.txt
 create mode 100644 plugins/nettime.c
 create mode 100755 test/test-nettime

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


[PATCH 5/5 v3] nettime: Mock Timed for testing

2011-01-13 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..c215902
--- /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=org.ofono.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 3/5 v3] nettime: DBUS and compilation configuration

2011-01-13 Thread Antti Paila
---
 Makefile.am|9 +++--
 src/ofono.conf |2 ++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index a68fc36..4e30cc9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -321,6 +321,9 @@ builtin_modules += example_nettime
 builtin_sources += examples/nettime.c
 endif
 
+builtin_modules += nettime
+builtin_sources += plugins/nettime.c
+
 builtin_modules += smart_messaging
 builtin_sources += plugins/smart-messaging.c
 
@@ -386,7 +389,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/calypso-modem.txt \
+   doc/network-time-api.txt
 
 
 test_scripts = test/backtrace \
@@ -455,7 +459,8 @@ test_scripts = test/backtrace \
test/set-gsm-band \
test/set-umts-band \
test/lockdown-modem \
-   test/set-call-forwarding
+   test/set-call-forwarding \
+   test/test-nettime
 
 if TEST
 testdir = $(pkglibdir)/test
diff --git a/src/ofono.conf b/src/ofono.conf
index 0dfa038..c7b2e79 100644
--- a/src/ofono.conf
+++ b/src/ofono.conf
@@ -9,10 +9,12 @@
 
   policy user=root
 allow own=org.ofono/
+allow own=com.meego/
 allow send_destination=org.ofono/
 allow send_interface=org.ofono.SimToolkitAgent/
 allow send_interface=org.ofono.PushNotificationAgent/
 allow send_interface=org.ofono.SmartMessagingAgent/
+allow send_interface=org.ofono.NetworkTime/
   /policy
 
   policy at_console=true
-- 
1.7.1

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


[PATCH 2/5 v3] nettime: Network time plugin implementation

2011-01-13 Thread Antti Paila
---
 plugins/nettime.c |  317 +
 1 files changed, 317 insertions(+), 0 deletions(-)
 create mode 100644 plugins/nettime.c

diff --git a/plugins/nettime.c b/plugins/nettime.c
new file mode 100644
index 000..ee24320
--- /dev/null
+++ b/plugins/nettime.c
@@ -0,0 +1,317 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2008-2010  Nokia Corporation and/or its subsidiary(-ies).
+ *
+ *  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 stdlib.h
+#include glib.h
+
+#define OFONO_API_SUBJECT_TO_CHANGE
+#include ofono/plugin.h
+#include ofono/log.h
+#include ofono/nettime.h
+#include ofono/types.h
+#include gdbus.h
+#include ofono.h
+
+#include common.h
+
+#define TIMED_PATH /com/meego/time
+#define TIMED_SERVICE com.meego.time
+
+struct nt_data {
+   gboolean time_available;
+   gboolean time_pending;
+
+   time_t nw_time_utc;
+   time_t received;
+
+   int dst;
+   int time_zone;
+
+   const char *mcc;
+   const char *mnc;
+};
+
+static void nettime_register(struct ofono_nettime_context *);
+
+static gboolean encode_time_format(struct ofono_network_time *time,
+struct tm *tm)
+{
+   if (time-year  0)
+   return FALSE;
+
+   tm-tm_year = time-year - 1900;
+   tm-tm_mon = time-mon - 1;
+   tm-tm_mday = time-mday;
+   tm-tm_hour = time-hour;
+   tm-tm_min = time-min;
+   tm-tm_sec = time-sec;
+   tm-tm_gmtoff = time-utcoff;
+   tm-tm_isdst = time-dst;
+
+   return TRUE;
+}
+
+static time_t get_monotonic_time()
+{
+   struct timespec ts;
+   clock_gettime(CLOCK_MONOTONIC, ts);
+   return ts.tv_sec;
+}
+
+static int fill_time_notification(DBusMessage *msg,
+   struct nt_data *ntd)
+{
+   DBusMessageIter iter, iter_array;
+   time_t utc;
+
+   dbus_message_iter_init_append(msg, iter);
+   dbus_message_iter_open_container(iter,
+   DBUS_TYPE_ARRAY,
+   {sv},
+   iter_array);
+
+   if (ntd-time_pending) {
+   if (ntd-time_available) {
+   utc = ntd-nw_time_utc - ntd-received;
+
+   ofono_dbus_dict_append(iter_array,
+   UTC,
+   DBUS_TYPE_INT64,
+   utc);
+   ofono_dbus_dict_append(iter_array,
+   DST,
+   DBUS_TYPE_UINT32,
+   ntd-dst);
+   }
+
+   ofono_dbus_dict_append(iter_array,
+   Timezone,
+   DBUS_TYPE_INT32,
+   ntd-time_zone);
+   }
+
+   ofono_dbus_dict_append(iter_array,
+   MobileCountryCode,
+   DBUS_TYPE_STRING,
+   ntd-mcc);
+   ofono_dbus_dict_append(iter_array,
+   MobileNetworkCode,
+   DBUS_TYPE_STRING,
+   ntd-mnc);
+
+   dbus_message_iter_close_container(iter, iter_array);
+   return 0;
+}
+
+static DBusMessage *create_time_notification(
+   struct ofono_nettime_context *context)
+{
+   DBusMessage *message;
+   struct nt_data *ntd = context-data;
+   const char *path = ofono_modem_get_path(context-modem);
+
+   if (path == NULL) {
+   ofono_error(Fetching path for modem failed);
+   return NULL;
+   }
+
+   message = dbus_message_new_method_call(TIMED_SERVICE, TIMED_PATH,
+   org.ofono.NetworkTime, Notify);
+   if (message == NULL)
+   return NULL;
+
+   dbus_message_set_no_reply(message, TRUE);
+   fill_time_notification(message, ntd);
+
+   return message;
+}
+
+static void init_time(struct ofono_nettime_context *context)
+{
+   struct nt_data *nt_data = g_new0(struct nt_data, 1);
+
+   nt_data-time_available = FALSE;
+   nt_data-time_pending = 

[PATCH 4/5 v3] nettime: Documentation

2011-01-13 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..bdefed7
--- /dev/null
+++ b/doc/network-time-api.txt
@@ -0,0 +1,36 @@
+Network time hierarchy
+==
+
+Interface  org.ofono.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.
+
+   uint32 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 2/6] Define packet switched bearers

2011-01-13 Thread Rémi Denis-Courmont
---
 src/common.c |   24 
 src/common.h |   13 +
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/src/common.c b/src/common.c
index d4e567b..c58ed5c 100644
--- a/src/common.c
+++ b/src/common.c
@@ -714,6 +714,30 @@ const char *registration_tech_to_string(int tech)
}
 }
 
+const char *packet_bearer_to_string(int bearer)
+{
+   switch (bearer) {
+   case PACKET_BEARER_NONE:
+   return none;
+   case PACKET_BEARER_GPRS:
+   return gprs;
+   case PACKET_BEARER_EGPRS:
+   return egprs;
+   case PACKET_BEARER_UMTS:
+   return umts;
+   case PACKET_BEARER_HSUPA:
+   return hsupa;
+   case PACKET_BEARER_HSDPA:
+   return hsdpa;
+   case PACKET_BEARER_HSUPA_HSDPA:
+   return hspa;
+   case PACKET_BEARER_EPS:
+   return eps;
+   default:
+   return ;
+   }
+}
+
 gboolean is_valid_apn(const char *apn)
 {
int i;
diff --git a/src/common.h b/src/common.h
index 64f297e..0156498 100644
--- a/src/common.h
+++ b/src/common.h
@@ -87,6 +87,18 @@ enum bearer_class {
BEARER_CLASS_PAD = 128
 };
 
+/* 27.007 Section 7.29 */
+enum packet_bearer {
+   PACKET_BEARER_NONE = 0,
+   PACKET_BEARER_GPRS = 1,
+   PACKET_BEARER_EGPRS = 2,
+   PACKET_BEARER_UMTS = 3,
+   PACKET_BEARER_HSUPA = 4,
+   PACKET_BEARER_HSDPA = 5,
+   PACKET_BEARER_HSUPA_HSDPA = 6,
+   PACKET_BEARER_EPS = 7,
+};
+
 /* 22.030 Section 6.5.2 */
 enum ss_control_type {
SS_CONTROL_TYPE_ACTIVATION,
@@ -158,5 +170,6 @@ gboolean is_valid_pin(const char *pin, enum pin_type type);
 
 const char *registration_status_to_string(int status);
 const char *registration_tech_to_string(int tech);
+const char *packet_bearer_to_string(int bearer);
 
 gboolean is_valid_apn(const char *apn);
-- 
1.7.1

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


[PATCH 3/6] Declaration for packet switched bearer notifications

2011-01-13 Thread Rémi Denis-Courmont
---
 include/gprs.h |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/gprs.h b/include/gprs.h
index ad7925c..157a6f9 100644
--- a/include/gprs.h
+++ b/include/gprs.h
@@ -59,6 +59,7 @@ void ofono_gprs_status_notify(struct ofono_gprs *gprs, int 
status);
 void ofono_gprs_detached_notify(struct ofono_gprs *gprs);
 void ofono_gprs_suspend_notify(struct ofono_gprs *gprs, int cause);
 void ofono_gprs_resume_notify(struct ofono_gprs *gprs);
+void ofono_gprs_bearer_notify(struct ofono_gprs *gprs, int bearer);
 
 int ofono_gprs_driver_register(const struct ofono_gprs_driver *d);
 void ofono_gprs_driver_unregister(const struct ofono_gprs_driver *d);
-- 
1.7.1

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


[PATCH 4/6] Core support for packet switched bearer reporting

2011-01-13 Thread Rémi Denis-Courmont
---
 src/gprs.c |   27 +++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/src/gprs.c b/src/gprs.c
index 0e86bdf..7ef81d5 100644
--- a/src/gprs.c
+++ b/src/gprs.c
@@ -67,6 +67,7 @@ struct ofono_gprs {
ofono_bool_t suspended;
int status;
int flags;
+   int bearer;
guint suspend_timeout;
struct idmap *pid_map;
unsigned int last_context_id;
@@ -1319,6 +1320,8 @@ static void gprs_attached_update(struct ofono_gprs *gprs)
OFONO_CONNECTION_CONTEXT_INTERFACE,
Active, DBUS_TYPE_BOOLEAN, value);
}
+
+   gprs-bearer = -1;
}
 
path = __ofono_atom_get_path(gprs-atom);
@@ -1433,6 +1436,13 @@ static DBusMessage *gprs_get_properties(DBusConnection 
*conn,
value = gprs-attached;
ofono_dbus_dict_append(dict, Attached, DBUS_TYPE_BOOLEAN, value);
 
+   if (gprs-bearer != -1) {
+   const char *bearer = packet_bearer_to_string(gprs-bearer);
+
+   ofono_dbus_dict_append(dict, Bearer,
+   DBUS_TYPE_STRING, bearer);
+   }
+
value = gprs-roaming_allowed;
ofono_dbus_dict_append(dict, RoamingAllowed,
DBUS_TYPE_BOOLEAN, value);
@@ -1979,6 +1989,23 @@ void ofono_gprs_add_context(struct ofono_gprs *gprs,
__ofono_atom_register(gc-atom, gprs_context_unregister);
 }
 
+void ofono_gprs_bearer_notify(struct ofono_gprs *gprs, int bearer)
+{
+   DBusConnection *conn = ofono_dbus_get_connection();
+   const char *path;
+   const char *value;
+
+   if (gprs-bearer == bearer)
+   return;
+
+   gprs-bearer = bearer;
+   path = __ofono_atom_get_path(gprs-atom);
+   value = packet_bearer_to_string(bearer);
+   ofono_dbus_signal_property_changed(conn, path,
+   OFONO_CONNECTION_CONTEXT_INTERFACE,
+   Bearer, DBUS_TYPE_STRING, value);
+}
+
 void ofono_gprs_context_deactivated(struct ofono_gprs_context *gc,
unsigned int cid)
 {
-- 
1.7.1

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


[PATCH 6/6] atmodem: packet switch bearer support

2011-01-13 Thread Rémi Denis-Courmont
---
 drivers/atmodem/gprs.c |   33 +
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/drivers/atmodem/gprs.c b/drivers/atmodem/gprs.c
index defb154..daa3933 100644
--- a/drivers/atmodem/gprs.c
+++ b/drivers/atmodem/gprs.c
@@ -200,6 +200,37 @@ static void xdatastat_notify(GAtResult *result, gpointer 
user_data)
}
 }
 
+static void cpsb_notify(GAtResult *result, gpointer user_data)
+{
+   struct ofono_gprs *gprs = user_data;
+   GAtResultIter iter;
+   gint bearer;
+
+   g_at_result_iter_init(iter, result);
+
+   if (!g_at_result_iter_next(iter, +CPSB:))
+   return;
+
+   if (!g_at_result_iter_next_number(iter, NULL))
+   return;
+
+   if (!g_at_result_iter_next_number(iter, bearer))
+   return;
+
+   ofono_gprs_bearer_notify(gprs, bearer);
+}
+
+static void cpsb_set_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+   struct ofono_gprs *gprs = user_data;
+   struct gprs_data *gd = ofono_gprs_get_data(gprs);
+
+   if (!ok)
+   return;
+
+   g_at_chat_register(gd-chat, +CPSB:, cpsb_notify, FALSE, gprs, NULL);
+}
+
 static void gprs_initialized(gboolean ok, GAtResult *result, gpointer 
user_data)
 {
struct ofono_gprs *gprs = user_data;
@@ -208,6 +239,8 @@ static void gprs_initialized(gboolean ok, GAtResult 
*result, gpointer user_data)
g_at_chat_register(gd-chat, +CGEV:, cgev_notify, FALSE, gprs, NULL);
g_at_chat_register(gd-chat, +CGREG:, cgreg_notify,
FALSE, gprs, NULL);
+   g_at_chat_send(gd-chat, AT+CPSB=1, none_prefix,
+   cpsb_set_cb, gprs, NULL);
 
switch (gd-vendor) {
case OFONO_VENDOR_IFX:
-- 
1.7.1

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


[PATCH v2 1/1] ifxmodem: add enable/disable ctm support

2011-01-13 Thread Jeevaka Badrappan
---
 Makefile.am |3 +-
 drivers/ifxmodem/ctm.c  |  194 +++
 drivers/ifxmodem/ifxmodem.c |2 +
 drivers/ifxmodem/ifxmodem.h |3 +
 4 files changed, 201 insertions(+), 1 deletions(-)
 create mode 100644 drivers/ifxmodem/ctm.c

diff --git a/Makefile.am b/Makefile.am
index a68fc36..179ea07 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -222,7 +222,8 @@ builtin_sources += drivers/atmodem/atutil.h \
drivers/ifxmodem/audio-settings.c \
drivers/ifxmodem/radio-settings.c \
drivers/ifxmodem/gprs-context.c \
-   drivers/ifxmodem/stk.c
+   drivers/ifxmodem/stk.c \
+   drivers/ifxmodem/ctm.c
 
 builtin_modules += stemodem
 builtin_sources += drivers/atmodem/atutil.h \
diff --git a/drivers/ifxmodem/ctm.c b/drivers/ifxmodem/ctm.c
new file mode 100644
index 000..b70fe09
--- /dev/null
+++ b/drivers/ifxmodem/ctm.c
@@ -0,0 +1,194 @@
+/*
+ *
+ *  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 ofono/log.h
+#include ofono/modem.h
+#include ofono/ctm.h
+
+#include gatchat.h
+#include gatresult.h
+
+#include ifxmodem.h
+
+static const char *none_prefix[] = { NULL };
+static const char *xctms_prefix[] = { XCTMS:, NULL };
+
+struct ctm_data {
+   GAtChat *chat;
+};
+
+static void xctms_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+   struct cb_data *cbd = user_data;
+   ofono_ctm_query_cb_t cb = cbd-cb;
+   struct ofono_error error;
+   GAtResultIter iter;
+   int value;
+   ofono_bool_t enable;
+
+   decode_at_error(error, g_at_result_final_response(result));
+
+   if (!ok) {
+   cb(error, -1, cbd-data);
+   return;
+   }
+
+   g_at_result_iter_init(iter, result);
+
+   if (g_at_result_iter_next(iter, XCTMS:) == FALSE)
+   goto error;
+
+   if (g_at_result_iter_next_number(iter, value) == FALSE)
+   goto error;
+
+   /* FULL TTY mode status only sent to oFono */
+   enable = (value == 1) ? TRUE : FALSE;
+
+   cb(error, enable, cbd-data);
+
+   return;
+
+error:
+   CALLBACK_WITH_FAILURE(cb, -1, cbd-data);
+}
+
+static void ifx_query_tty(struct ofono_ctm *ctm, ofono_ctm_query_cb_t cb,
+   void *data)
+{
+   struct ctm_data *ctmd = ofono_ctm_get_data(ctm);
+   struct cb_data *cbd = cb_data_new(cb, data);
+
+   if (cbd == NULL)
+   goto error;
+
+   if (g_at_chat_send(ctmd-chat, AT+XCTMS?, xctms_prefix,
+   xctms_query_cb, cbd, g_free)  0)
+   return;
+
+error:
+   g_free(cbd);
+
+   CALLBACK_WITH_FAILURE(cb, -1, data);
+}
+
+static void xctms_modify_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+   struct cb_data *cbd = user_data;
+   ofono_ctm_set_cb_t cb = cbd-cb;
+   struct ofono_error error;
+
+   decode_at_error(error, g_at_result_final_response(result));
+
+   /* TODO: Audio path configuration */
+
+   cb(error, cbd-data);
+}
+
+static void ifx_set_tty(struct ofono_ctm *ctm, ofono_bool_t enable,
+   ofono_ctm_set_cb_t cb, void *data)
+{
+   struct ctm_data *ctmd = ofono_ctm_get_data(ctm);
+   struct cb_data *cbd = cb_data_new(cb, data);
+   char buf[20];
+
+   if (cbd == NULL)
+   goto error;
+
+   /* Only FULL TTY mode enabled/disabled */
+   snprintf(buf, sizeof(buf), AT+XCTMS=%i, enable ? 1 : 0);
+
+   if (g_at_chat_send(ctmd-chat, buf, none_prefix,
+   xctms_modify_cb, cbd, g_free)  0)
+   return;
+
+error:
+   g_free(cbd);
+
+   CALLBACK_WITH_FAILURE(cb, data);
+}
+
+static void xctms_support_cb(gboolean ok, GAtResult *result, gpointer 
user_data)
+{
+   struct ofono_ctm *ctm = user_data;
+
+   if (ok)
+   ofono_ctm_register(ctm);
+}
+
+static int ifx_ctm_probe(struct ofono_ctm *ctm,
+   

Re: [PATCH 00/21] Resubmit Zhenhua Zhang work on DUN server with btio

2011-01-13 Thread Rémi Denis-Courmont
On Thursday 13 January 2011 14:01:16 ext Frédéric Dalleau, you wrote:
 On 01/13/2011 10:18 AM, Rémi Denis-Courmont wrote:
  This seems quite useless work to me.
 
 This patch has been on the list for some time now. Why didn't you
 express your concern before that?

I did point out limitations on some earlier occasion.

I also pointed out the problem to Aki and Marcel privately a long time ago.

   But doing that in userspace in oFono is probably the slowest
  and most inefficient approach to the problem.
 
 Nowadays, relaying a gprs connection at 56k doesn't need to be done in a
 kernel module.

HSPA category certification is achieved with PPP over USB and using the final 
user software. So we are talking about bandwidth in the 10 Mb/s order of 
magnitude on contemporary products.

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


Re: [PATCH 1/5 v3] nettime: Header file for nettime plugins

2011-01-13 Thread Aki Niemi
Hi Antti,

2011/1/13 Antti Paila antti.pa...@nokia.com:
 ---
  include/nettime.h |    4 
  1 files changed, 4 insertions(+), 0 deletions(-)

 diff --git a/include/nettime.h b/include/nettime.h
 index 0f23cc7..2f73e1a 100644
 --- a/include/nettime.h
 +++ b/include/nettime.h
 @@ -31,6 +31,10 @@ struct ofono_network_time;
  struct ofono_nettime_context {
        struct ofono_nettime_driver *driver;
        struct ofono_modem *modem;
 +       unsigned int timed_watch;
 +       gboolean timed_present;
 +       struct ofono_netreg *netreg;
 +       unsigned int netreg_st_watch;
        void *data;

Why are these added to the context as opposed to the plugin's user data?

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


[PATCH 0/1] change ifx command for enabling SATK

2011-01-13 Thread Jeevaka Badrappan
Hi,

 Following patch replaces the AT+CFUN=6 by AT+XSATK=1,1 for enabling SATK

Regards,
Jeevaka

Jeevaka Badrappan (1):
  ifxmodem: change AT command for enabling SATK

 drivers/ifxmodem/stk.c |   11 +--
 1 files changed, 5 insertions(+), 6 deletions(-)

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


Re: [PATCH] sim: check if lock is locked after code changing attempt

2011-01-13 Thread Lucas De Marchi
Ho Jussi

On Thu, Jan 13, 2011 at 6:34 AM,  jussi.kan...@tieto.com wrote:
 On Wed, 2011-01-12 at 07:07 +0200, Denis Kenzior wrote:
 First, please fix your authorship information.  See the AUTHORS file
 to see what we expect.  Also, please make sure that you're using tabs
 for indentation and following the relevant coding style.  See the
 Submitting Patches section in the HACKING document in oFono git as
 well as doc/coding-style.txt.

 I think whole this chapter should be translated as Do not use Outlook.
 I asked around little bit and best guess seems to be that you are using 
 something that takes authorship information from mail

This is `git am'

 address. Also since the patch passes the checkpatch here with no problems 
 whatsoever I guess Outlook ruined the patch. Fine,  I'll try Evolution next. 
 If possible, I would like to avoid using the git send-email. I prefer tools 
 with GUI.

You can use whatever client you want to write email. But for sending
patches, git send-email is the best one since you won't need to copy
and paste, nor attach anything. Give it a try and you'll regret not
using it first.



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


[PATCH] AT modem: fix COLR reporting

2011-01-13 Thread Rémi Denis-Courmont
AT+COLR does not have a local override; it cannot be factored with the
other commands.

This partially reverts commit f2baa88d7577649358f1f8587e5a9b6aa730ca41.
---
 drivers/atmodem/call-settings.c |   29 -
 1 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/drivers/atmodem/call-settings.c b/drivers/atmodem/call-settings.c
index 7b00357..eaab89e 100644
--- a/drivers/atmodem/call-settings.c
+++ b/drivers/atmodem/call-settings.c
@@ -331,7 +331,34 @@ error:
 
 static void colr_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
 {
-   query_template(+COLR:, ok, result, user_data);
+   struct cb_data *cbd = user_data;
+   ofono_call_settings_status_cb_t cb = cbd-cb;
+   struct ofono_error error;
+   GAtResultIter iter;
+   int status;
+
+   decode_at_error(error, g_at_result_final_response(result));
+
+   if (!ok) {
+   cb(error, -1, cbd-data);
+   return;
+   }
+
+   g_at_result_iter_init(iter, result);
+
+   if (g_at_result_iter_next(iter, +COLR:) == FALSE)
+   goto error;
+
+   if (g_at_result_iter_next_number(iter, status) == FALSE)
+   goto error;
+
+   DBG(network: %d, status);
+
+   cb(error, status, cbd-data);
+   return;
+
+error:
+   CALLBACK_WITH_FAILURE(cb, -1, cbd-data);
 }
 
 static void at_colr_query(struct ofono_call_settings *cs,
-- 
1.7.1

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


Re: [PATCH 00/21] Resubmit Zhenhua Zhang work on DUN server with btio

2011-01-13 Thread Rémi Denis-Courmont
On Thursday 13 January 2011 16:07:06 ext Frédéric Dalleau, you wrote:
 On 01/13/2011 01:17 PM, Rémi Denis-Courmont wrote:
  HSPA category certification is achieved with PPP over USB and using the
  final user software. So we are talking about bandwidth in the 10 Mb/s
  order
 
 This is another story. The patch uses the oFono ppp layer. This is the
 author's choice and I respect this choice.
 
 Why do you think it cannot handle your requirements?

I don't know if it can. I am only pointing out that we are not talking about 
orders of magnitude higher bandwidth than V90 which you invoked.

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


[PATCH v3 0/2] Add ifx support for enable/disable tty

2011-01-13 Thread Jeevaka Badrappan
Hi,

 Following patch adds the ifxmodem support for enabling/disabling tty mode.

Regards,
Jeevaka

Jeevaka Badrappan (2):
  ifxmodem: add enable/disable ctm support
  plugins: add ctm create to ifx plugin

 Makefile.am |3 +-
 drivers/ifxmodem/ctm.c  |  194 +++
 drivers/ifxmodem/ifxmodem.c |2 +
 drivers/ifxmodem/ifxmodem.h |3 +
 plugins/ifx.c   |2 +
 5 files changed, 203 insertions(+), 1 deletions(-)
 create mode 100644 drivers/ifxmodem/ctm.c

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


[PATCH v3 2/2] plugins: add ctm create to ifx plugin

2011-01-13 Thread Jeevaka Badrappan
---
 plugins/ifx.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/plugins/ifx.c b/plugins/ifx.c
index c0a69c2..08b0001 100644
--- a/plugins/ifx.c
+++ b/plugins/ifx.c
@@ -57,6 +57,7 @@
 #include ofono/radio-settings.h
 #include ofono/audio-settings.h
 #include ofono/stk.h
+#include ofono/ctm.h
 #include ofono/log.h
 
 #include drivers/atmodem/atutil.h
@@ -700,6 +701,7 @@ static void ifx_post_sim(struct ofono_modem *modem)
 
DBG(%p, modem);
 
+   ofono_ctm_create(modem, 0, ifxmodem, data-dlcs[AUX_DLC]);
ofono_stk_create(modem, 0, ifxmodem, data-dlcs[AUX_DLC]);
ofono_phonebook_create(modem, OFONO_VENDOR_IFX,
atmodem, data-dlcs[AUX_DLC]);
-- 
1.7.0.4

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


[PATCH v3 1/2] ifxmodem: add enable/disable ctm support

2011-01-13 Thread Jeevaka Badrappan
---
 Makefile.am |3 +-
 drivers/ifxmodem/ctm.c  |  194 +++
 drivers/ifxmodem/ifxmodem.c |2 +
 drivers/ifxmodem/ifxmodem.h |3 +
 4 files changed, 201 insertions(+), 1 deletions(-)
 create mode 100644 drivers/ifxmodem/ctm.c

diff --git a/Makefile.am b/Makefile.am
index a68fc36..179ea07 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -222,7 +222,8 @@ builtin_sources += drivers/atmodem/atutil.h \
drivers/ifxmodem/audio-settings.c \
drivers/ifxmodem/radio-settings.c \
drivers/ifxmodem/gprs-context.c \
-   drivers/ifxmodem/stk.c
+   drivers/ifxmodem/stk.c \
+   drivers/ifxmodem/ctm.c
 
 builtin_modules += stemodem
 builtin_sources += drivers/atmodem/atutil.h \
diff --git a/drivers/ifxmodem/ctm.c b/drivers/ifxmodem/ctm.c
new file mode 100644
index 000..b70fe09
--- /dev/null
+++ b/drivers/ifxmodem/ctm.c
@@ -0,0 +1,194 @@
+/*
+ *
+ *  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 ofono/log.h
+#include ofono/modem.h
+#include ofono/ctm.h
+
+#include gatchat.h
+#include gatresult.h
+
+#include ifxmodem.h
+
+static const char *none_prefix[] = { NULL };
+static const char *xctms_prefix[] = { XCTMS:, NULL };
+
+struct ctm_data {
+   GAtChat *chat;
+};
+
+static void xctms_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+   struct cb_data *cbd = user_data;
+   ofono_ctm_query_cb_t cb = cbd-cb;
+   struct ofono_error error;
+   GAtResultIter iter;
+   int value;
+   ofono_bool_t enable;
+
+   decode_at_error(error, g_at_result_final_response(result));
+
+   if (!ok) {
+   cb(error, -1, cbd-data);
+   return;
+   }
+
+   g_at_result_iter_init(iter, result);
+
+   if (g_at_result_iter_next(iter, XCTMS:) == FALSE)
+   goto error;
+
+   if (g_at_result_iter_next_number(iter, value) == FALSE)
+   goto error;
+
+   /* FULL TTY mode status only sent to oFono */
+   enable = (value == 1) ? TRUE : FALSE;
+
+   cb(error, enable, cbd-data);
+
+   return;
+
+error:
+   CALLBACK_WITH_FAILURE(cb, -1, cbd-data);
+}
+
+static void ifx_query_tty(struct ofono_ctm *ctm, ofono_ctm_query_cb_t cb,
+   void *data)
+{
+   struct ctm_data *ctmd = ofono_ctm_get_data(ctm);
+   struct cb_data *cbd = cb_data_new(cb, data);
+
+   if (cbd == NULL)
+   goto error;
+
+   if (g_at_chat_send(ctmd-chat, AT+XCTMS?, xctms_prefix,
+   xctms_query_cb, cbd, g_free)  0)
+   return;
+
+error:
+   g_free(cbd);
+
+   CALLBACK_WITH_FAILURE(cb, -1, data);
+}
+
+static void xctms_modify_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+   struct cb_data *cbd = user_data;
+   ofono_ctm_set_cb_t cb = cbd-cb;
+   struct ofono_error error;
+
+   decode_at_error(error, g_at_result_final_response(result));
+
+   /* TODO: Audio path configuration */
+
+   cb(error, cbd-data);
+}
+
+static void ifx_set_tty(struct ofono_ctm *ctm, ofono_bool_t enable,
+   ofono_ctm_set_cb_t cb, void *data)
+{
+   struct ctm_data *ctmd = ofono_ctm_get_data(ctm);
+   struct cb_data *cbd = cb_data_new(cb, data);
+   char buf[20];
+
+   if (cbd == NULL)
+   goto error;
+
+   /* Only FULL TTY mode enabled/disabled */
+   snprintf(buf, sizeof(buf), AT+XCTMS=%i, enable ? 1 : 0);
+
+   if (g_at_chat_send(ctmd-chat, buf, none_prefix,
+   xctms_modify_cb, cbd, g_free)  0)
+   return;
+
+error:
+   g_free(cbd);
+
+   CALLBACK_WITH_FAILURE(cb, data);
+}
+
+static void xctms_support_cb(gboolean ok, GAtResult *result, gpointer 
user_data)
+{
+   struct ofono_ctm *ctm = user_data;
+
+   if (ok)
+   ofono_ctm_register(ctm);
+}
+
+static int ifx_ctm_probe(struct ofono_ctm *ctm,
+   

RE: [RFC 2/4] stk: Handle Launch Browser proactive command

2011-01-13 Thread Jeevaka.Badrappan
Hi,

 
 So a question about this.  Why are we checking the netreg atom?
 Shouldn't we be checking the gprs atom's attached property?  But this
 brings up an even more interesting question, do we even need to
 assume that we have to be attached to the cellular network to
 perform these operations?  We could in theory go over wifi.
 
 I agree that the modem online property is unrelated to this.
 Also the card may in theory specify a URL that designates a
 local file or something on a local network, not the internet.
 

Agree. It can be anything not only cellular network. Do we need
to check the bearer parameters in that case or can I just remove the
current check code?

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


Re: Making voice call with Huawei E272 USB Modem

2011-01-13 Thread Denis Kenzior
Hi Neels,

On 01/13/2011 09:43 AM, yanni wrote:
 Hi
 
 I've managed to send SMSs and perform USSD etc. with ofono and the E272.
 
 However, I'm unable to make a voice call with ofono.  I can make voice
 call with pythonpyserial.
 
 Any pointers in right direction will be appreciated
 
 #output from list-modem testscrip
 ./list-modems 
 [ /huawei0 ]
 Features = sms gprs cbs net rat sim 
 Powered = 1
 Lockdown = 0
 Interfaces = org.ofono.SmartMessaging org.ofono.PushNotification
 org.ofono.MessageManager org.ofono.ConnectionManager
 org.ofono.CellBroadcast org.ofono.NetworkRegistration
 org.ofono.SupplementaryServices org.ofono.Phonebook
 org.ofono.RadioSettings org.ofono.SimManager 
 Online = 1
 Model = E272
 Manufacturer = huawei
 Serial = 357865013196535

So all USB dongles support voice calls, however 99% of them do not
support audio.  There are two huawei devices that I know of that do.  Is
your device one of these?  Otherwise oFono does not enable the voicecall
functionality on such devices.

If your device does indeed support audio, then check the huawei modem
driver in plugins/huawei.c.  oFono performs some queries to determine if
your Huawei modem supports voice or not.  This magic might not be
working appropriately for your hardware.

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


Re: [RFC 2/4] stk: Handle Launch Browser proactive command

2011-01-13 Thread Denis Kenzior
Hi Jeevaka,

On 01/13/2011 08:56 AM, jeevaka.badrap...@elektrobit.com wrote:
 Hi,
 

 So a question about this.  Why are we checking the netreg atom?
 Shouldn't we be checking the gprs atom's attached property?  But this
 brings up an even more interesting question, do we even need to
 assume that we have to be attached to the cellular network to
 perform these operations?  We could in theory go over wifi.

 I agree that the modem online property is unrelated to this.
 Also the card may in theory specify a URL that designates a
 local file or something on a local network, not the internet.

 
 Agree. It can be anything not only cellular network. Do we need
 to check the bearer parameters in that case or can I just remove the
 current check code?

Good point on the bearer parameters.  My take is that we should either
ignore the bearer parameters or return not-capable if they're set.
Otherwise removing the current checks in the code seems reasonable to me.

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


Re: [PATCH 1/2] Add sim driver call for applications discovery.

2011-01-13 Thread Denis Kenzior
Hi Andrew,

On 01/12/2011 06:12 AM, Andrzej Zaborowski wrote:
 ---
  include/sim.h |   11 +++
  1 files changed, 11 insertions(+), 0 deletions(-)
 
 diff --git a/include/sim.h b/include/sim.h
 index aab981c..e4176e3 100644
 --- a/include/sim.h
 +++ b/include/sim.h
 @@ -77,6 +77,12 @@ enum ofono_sim_state {
   OFONO_SIM_STATE_READY,
  };
  
 +struct ofono_sim_app_record {
 + unsigned char aid[16];
 + unsigned int aid_len;
 + char *label;
 +};
 +
  typedef void (*ofono_sim_file_info_cb_t)(const struct ofono_error *error,
   int filelength,
   enum ofono_sim_file_structure structure,
 @@ -114,6 +120,9 @@ typedef void (*ofono_sim_lock_unlock_cb_t)(const struct 
 ofono_error *error,
  typedef void (*ofono_sim_locked_cb_t)(const struct ofono_error *error,
   int locked, void *data);
  
 +typedef void (*ofono_sim_apps_cb_t)(const struct ofono_error *error,
 + GSList *apps, void *data);
 +

Please remember that we do not use G* types in the ofono public API.

  typedef void (*ofono_sim_file_notify_t)(int id, void *userdata);
  
  struct ofono_sim_driver {
 @@ -159,6 +168,8 @@ struct ofono_sim_driver {
   void (*query_locked)(struct ofono_sim *sim,
   enum ofono_sim_password_type type,
   ofono_sim_locked_cb_t cb, void *data);
 + void (*list_apps)(struct ofono_sim *sim, ofono_sim_apps_cb_t cb,
 + void *data);
  };

Do you think this belongs on a separate atom?  E.g. something like
Pekka's SimAuthentication ?

  
  int ofono_sim_driver_register(const struct ofono_sim_driver *d);

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


Re: [PATCH 8/9] doc: add CalledLinePresentation property to CallSettings

2011-01-13 Thread Lucas De Marchi
On Wed, Jan 12, 2011 at 9:27 AM, Lucas De Marchi
lucas.demar...@profusion.mobi wrote:
 ---
  doc/call-settings-api.txt |   15 +++
  1 files changed, 15 insertions(+), 0 deletions(-)

 diff --git a/doc/call-settings-api.txt b/doc/call-settings-api.txt
 index b6dc1cc..44e0dbb 100644
 --- a/doc/call-settings-api.txt
 +++ b/doc/call-settings-api.txt
 @@ -30,6 +30,21 @@ Properties   string CallingLinePresentation [readonly]
                                enabled,
                                unknown

 +Properties     string CalledLinePresentation [readonly]

hunmn... This Properties shouldn't be here



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


Re: [PATCH v2 1/9] gps: define new dbus interface

2011-01-13 Thread Denis Kenzior
Hi Rafael,

On 01/10/2011 09:23 PM, Rafael Ignacio Zurita wrote:
 ---
  include/dbus.h |1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
 

Patch has been applied, thanks.

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


Re: [PATCH v2 2/9] gps: add new interface to feature map

2011-01-13 Thread Denis Kenzior
Hi Rafael,

On 01/10/2011 09:23 PM, Rafael Ignacio Zurita wrote:
 ---
  src/modem.c |1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
 

Patch has been applied, thanks.

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


Re: [PATCH v2 3/9] gps: add public header

2011-01-13 Thread Denis Kenzior
Hi Rafael,

 +
 +#include ofono/types.h
 +
 +struct ofono_gps;
 +
 +enum ofono_gps_device_type {
 + OFONO_GPS_DEVICE_TYPE_NMEA = 0,
 +};
 +
 +typedef void (*ofono_gps_enable_cb_t)(const struct ofono_error *error,
 + enum ofono_gps_device_type type,
 + const char *device,
 + void *data);

This function's signature would be modified to receive an int fd instead
of type and device.

 +typedef void (*ofono_gps_disable_cb_t)(const struct ofono_error *error,
 + void *data);
 +
 +struct ofono_gps_driver {
 + const char *name;

This structure should contain enum ofono_gps_device_type type member.

 + int (*probe)(struct ofono_gps *gps, unsigned int vendor, void *data);
 + void (*remove)(struct ofono_gps *gps);
 + void (*enable)(struct ofono_gps *gps,
 + ofono_gps_enable_cb_t cb, void *data);
 + void (*disable)(struct ofono_gps *gps,
 + ofono_gps_disable_cb_t cb, void *data);
 +};
 +

The rest is left more or less as is.

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


Re: [PATCH 1/3] doc: Add message state API

2011-01-13 Thread Denis Kenzior
Hi Faiyaz,

On 01/06/2011 01:50 PM, Faiyaz Baxamusa wrote:
 ---
  Makefile.am   |2 +-
  doc/cdma-message-api.txt  |5 +
  doc/message-api.txt   |   24 +---

Please rename this file into doc/messagemanager-api.txt

  doc/message-state-api.txt |   27 +++

And this one can be message-api.txt

  4 files changed, 34 insertions(+), 24 deletions(-)
  create mode 100644 doc/message-state-api.txt
 
 diff --git a/Makefile.am b/Makefile.am
 index 09dc9ad..14f53ef 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -369,7 +369,7 @@ 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/calypso-modem.txt doc/message-state-api.txt
  
  
  test_scripts = test/backtrace \
 diff --git a/doc/cdma-message-api.txt b/doc/cdma-message-api.txt
 index 8e6b9ea..c3d03f8 100644
 --- a/doc/cdma-message-api.txt
 +++ b/doc/cdma-message-api.txt
 @@ -110,3 +110,8 @@ Propertiesboolean UseDeliveryAcknowledgement
   The call back number for the user.  If the number is
   empty, then the optional field is not included
   in the encoded PDU.
 +
 +Message hierarchy
 +===
 +
 +Please refer to message-state-api.txt

Please get rid of this chunk.

 diff --git a/doc/message-api.txt b/doc/message-api.txt
 index f7ab22a..e6c8522 100644
 --- a/doc/message-api.txt
 +++ b/doc/message-api.txt
 @@ -90,26 +90,4 @@ Properties string ServiceCenterAddress
  Message hierarchy
  ===
  
 -Service  org.ofono
 -Interfaceorg.ofono.Message
 -Object path  [variable prefix]/{modem0,modem1,...}/{message_01,...}
 -
 -Methods  dict GetProperties()
 -
 - Returns properties for the message object. See
 - the properties section for available properties.
 -
 - Possible Errors: [service].Error.InvalidArguments
 -
 -Signals  PropertyChanged(string name, variant value)
 -
 - This signal indicates a changed value of the given
 - property.
 -
 -Properties   string State
 -
 - Contains the state of the message object.  Possible
 - values are:
 - pending,
 - sent,
 - failed
 +Please refer to message-state-api.txt
 diff --git a/doc/message-state-api.txt b/doc/message-state-api.txt
 new file mode 100644
 index 000..edd0cbf
 --- /dev/null
 +++ b/doc/message-state-api.txt
 @@ -0,0 +1,27 @@
 +Message hierarchy
 +===
 +
 +Service  org.ofono
 +Interfaceorg.ofono.Message
 +Object path  [variable prefix]/{modem0,modem1,...}/{message_01,...}
 +
 +Methods  dict GetProperties()
 +
 + Returns properties for the message object. See
 + the properties section for available properties.
 +
 + Possible Errors: [service].Error.InvalidArguments
 +
 +Signals  PropertyChanged(string name, variant value)
 +
 + This signal indicates a changed value of the given
 + property.
 +
 +Properties   string State
 +
 + Contains the state of the message object.  Possible
 + values are:
 + pending,
 + sent,
 + failed
 + invalid

Please get rid of this invalid state.

Regards,
-Denis

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


Re: [PATCH 2/3] include: Introduce message

2011-01-13 Thread Denis Kenzior
Hi Faiyaz,

On 01/06/2011 01:50 PM, Faiyaz Baxamusa wrote:
 ---
  Makefile.am   |2 +-
  include/message.h |   67 
 +
  2 files changed, 68 insertions(+), 1 deletions(-)
  create mode 100644 include/message.h

This is not an atom, it is an implementation detail inside the core.  So
please don't put this into include/ (this is where the public API, for
e.g. plugins and drivers goes)

Moving this inside src/message.h is the way to go.

 
 diff --git a/Makefile.am b/Makefile.am
 index 14f53ef..8b19eef 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -15,7 +15,7 @@ include_HEADERS = include/log.h include/plugin.h 
 include/history.h \
   include/radio-settings.h include/stk.h \
   include/audio-settings.h include/nettime.h \
   include/ctm.h include/cdma-voicecall.h \
 - include/cdma-sms.h
 + include/cdma-sms.h include/message.h
  
  nodist_include_HEADERS = include/version.h
  
 diff --git a/include/message.h b/include/message.h
 new file mode 100644
 index 000..7c60390
 --- /dev/null
 +++ b/include/message.h
 @@ -0,0 +1,67 @@
 +/*
 + *
 + *  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
 + *
 + */
 +
 +#ifndef __OFONO_MESSAGE_H
 +#define __OFONO_MESSAGE_H
 +
 +#ifdef __cplusplus
 +extern C {
 +#endif
 +
 +#include ofono/types.h
 +
 +enum message_state {
 + MESSAGE_STATE_PENDING,
 + MESSAGE_STATE_SENT,
 + MESSAGE_STATE_FAILED
 +};
 +
 +struct message;
 +
 +struct message *ofono_message_create(const struct ofono_uuid *uuid,
 + void *data);

Please use message_set_data to be symmetrical with the rest of the codebase.

 +
 +gboolean ofono_message_dbus_register(const char *atompath, struct message 
 *m);
 +void ofono_message_dbus_unregister(const char *atompath, struct message *m);
 +
 +const struct ofono_uuid *ofono_message_get_uuid(const struct message *m);
 +
 +void ofono_message_set_state(const char *atompath, struct message *m,
 + enum message_state new_state);
 +
 +void ofono_message_append_properties(struct message *m, DBusMessageIter 
 *dict);
 +
 +void ofono_emit_message_added(const char *atompath, const char *interface,
 + struct message *m);
 +
 +void ofono_emit_message_removed(const char *atompath, const char *interface,
 + struct message *m);
 +
 +void *ofono_message_get_data(struct message *m);
 +
 +const char *ofono_message_path_from_uuid(const char *atompath,
 + const struct ofono_uuid *uuid);
 +

Since this is not public API please don't use the ofono_ prefix for
this.  Using e.g. message_emit_removed, message_append_properties, etc
is good enough.

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


Re: [PATCH v5, 2/5] test: Add CDMA MO Call Support

2011-01-13 Thread Dara Spieker-Doyle

Hi Denis

On 01/12/2011 09:25 PM, ext Denis Kenzior wrote:

Hi Dara,

On 01/10/2011 07:45 PM, Dara Spieker-Doyle wrote:

---
  Makefile.am   |5 -
  test/cdma-dial-number |   25 +
  test/cdma-hangup  |   20 
  test/cdma-list-call   |   31 +++
  4 files changed, 80 insertions(+), 1 deletions(-)
  create mode 100755 test/cdma-dial-number
  create mode 100755 test/cdma-hangup
  create mode 100755 test/cdma-list-call


This patch does not apply:

Applying: test: Add CDMA MO Call Support
error: patch failed: Makefile.am:445
error: Makefile.am: patch does not apply
/home/denkenz/ofono-master/.git/rebase-apply/patch:32: new blank line at
EOF.
+
/home/denkenz/ofono-master/.git/rebase-apply/patch:89: new blank line at
EOF.
+
Patch failed at 0001 test: Add CDMA MO Call Support
When you have resolved this problem run git am --resolved.
If you would prefer to skip this patch, instead run git am --skip.
To restore the original branch and stop patching run git am --abort.

Also:

snip



diff --git a/test/cdma-list-call b/test/cdma-list-call
new file mode 100755
index 000..8a2e04e
--- /dev/null
+++ b/test/cdma-list-call
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+   'org.ofono.Manager')
+
+modems = manager.GetModems()
+
+for path, properties in modems:
+   print [ %s ] % (path)
+
+   if org.ofono.cdma.VoiceCallManager not in properties[Interfaces]:
+   continue
+
+   mgr = dbus.Interface(bus.get_object('org.ofono', path),
+   'org.ofono.cdma.VoiceCallManager')
+
+   properties = mgr.GetProperties()
+
+   for key in properties.keys():
+   if key in [Interfaces, Features]:
+   val = 
+   for i in properties[key]:
+   val += i +  


You might want to remove this if statement.  There are no Interfaces or
Features properties in cdma.VoiceCallManager


+   else:
+   val = str(properties[key])
+   print %s = %s % (key, val)
+


Regards,
-Denis


Thank you, yes I'll fix this up and resubmit. The info re: naming style 
of the atom methods has been passed on to the other guys too to include 
in future/current CDMA patches.


Cheers
Dara


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


Re: [PATCH 2/3] cdmamodem: Add CDMA devinfo support

2011-01-13 Thread Dara Spieker-Doyle

Hi Denis

On 01/12/2011 10:03 PM, ext Denis Kenzior wrote:

Hi Dara,

On 01/11/2011 03:45 PM, Dara Spieker-Doyle wrote:

---
  Makefile.am   |3 +-
  drivers/cdmamodem/cdmamodem.c |2 +
  drivers/cdmamodem/cdmamodem.h |2 +
  drivers/cdmamodem/devinfo.c   |  169 +
  4 files changed, 175 insertions(+), 1 deletions(-)
  create mode 100644 drivers/cdmamodem/devinfo.c



Can you please rebase and resubmit this patch?  Further comments below:


diff --git a/drivers/cdmamodem/cdmamodem.h b/drivers/cdmamodem/cdmamodem.h
index a5991cf..ef4fad3 100644
--- a/drivers/cdmamodem/cdmamodem.h
+++ b/drivers/cdmamodem/cdmamodem.h
@@ -23,3 +23,5 @@

  extern void cdma_at_voicecall_init();
  extern void cdma_at_voicecall_exit();
+extern void cdma_at_devinfo_init();
+extern void cdma_at_devinfo_exit();


Please name this cdma_devinfo_init/exit


snip


+static struct ofono_devinfo_driver driver = {
+   .name   = cdmamodem,
+   .probe  = cdma_at_devinfo_probe,
+   .remove = cdma_at_devinfo_remove,
+   .query_manufacturer = cdma_at_query_manufacturer,
+   .query_model= cdma_at_query_model,
+   .query_revision = cdma_at_query_revision,
+   .query_serial   = cdma_at_query_serial


Please drop the 'at' from these.  Use cdma_devinfo_probe, etc.


+};
+


Regards,
-Denis


Yes, I will fix up and resubmit today.

Thank you
Dara


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


Re: [PATCH 3/3] message: Code independent of protocol stack

2011-01-13 Thread Denis Kenzior
Hi Faiyaz,

 +static const char *message_state_to_string(enum message_state s)
 +{
 + switch (s) {
 + case MESSAGE_STATE_PENDING:
 + return pending;
 + case MESSAGE_STATE_SENT:
 + return sent;
 + case MESSAGE_STATE_FAILED:
 + return failed;
 + }
 +
 + return invalid;

As mentioned previously, don't return invalid here.

snip

 +gboolean ofono_message_dbus_register(const char *atompath, struct message *m)
 +{
 + DBusConnection *conn = ofono_dbus_get_connection();
 + const char *path;
 +
 + if ((atompath == NULL) || (m == NULL))
 + return FALSE;

Please get rid of these parentheses, they're not needed.  Also, in
general we prefer not to use null checking in the core.  The earlier we
crash the easier it is to find the bugs.

 +
 + path = ofono_message_path_from_uuid(atompath, m-uuid);
 +
 + if (!g_dbus_register_interface(conn, path, OFONO_MESSAGE_INTERFACE,
 + message_methods, message_signals,
 + NULL, m, message_destroy)) {
 + ofono_error(Could not register Message %s, path);
 + message_destroy(m);
 +
 + return FALSE;
 + }
 +
 + return TRUE;
 +}
 +
 +void ofono_message_dbus_unregister(const char *atompath, struct message *m)
 +{
 + DBusConnection *conn = ofono_dbus_get_connection();
 + const char *path;
 +
 + if ((atompath == NULL) || (m == NULL))
 + return;

Same comment as above about the parentheses.

 +
 + path = ofono_message_path_from_uuid(atompath, m-uuid);
 +
 + g_dbus_unregister_interface(conn, path, OFONO_MESSAGE_INTERFACE);
 +
 + return;
 +}
 +
 +const struct ofono_uuid *ofono_message_get_uuid(const struct message *m)
 +{
 + if (m == NULL)
 + return NULL;
 +
 + return m-uuid;
 +}
 +
 +void ofono_message_set_state(const char *atompath,
 + struct message *m, enum message_state new_state)
 +{
 + DBusConnection *conn = ofono_dbus_get_connection();
 + const char *state;
 + const char *path;
 +
 + if ((atompath == NULL) || (m == NULL))
 + return;
 +

And again the comment about parentheses.

 + if (m-state == new_state)
 + return;
 +
 + path = ofono_message_path_from_uuid(atompath, m-uuid);
 +
 + m-state = new_state;
 + state = message_state_to_string(m-state);
 +
 + ofono_dbus_signal_property_changed(conn, path, OFONO_MESSAGE_INTERFACE,
 + State, DBUS_TYPE_STRING,
 + state);
 +}
 +
 +void ofono_message_append_properties(struct message *m, DBusMessageIter 
 *dict)
 +{
 + const char *state;
 +
 + if (m == NULL)
 + return;
 +
 + state = message_state_to_string(m-state);
 + ofono_dbus_dict_append(dict, State, DBUS_TYPE_STRING, state);
 +}
 +
 +void ofono_emit_message_added(const char *atompath, const char *interface,
 + struct message *m)
 +{
 + DBusMessage *signal;
 + DBusMessageIter iter;
 + DBusMessageIter dict;
 + const char *path;
 +
 + if ((atompath == NULL) || (m == NULL))
 + return;
 +

And here

 + signal = dbus_message_new_signal(atompath, interface, MessageAdded);
 + if (signal == NULL)
 + return;
 +
 + path = ofono_message_path_from_uuid(atompath, m-uuid);
 +
 + dbus_message_iter_init_append(signal, iter);
 +
 + dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, path);
 +
 + dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
 + OFONO_PROPERTIES_ARRAY_SIGNATURE,
 + dict);
 + ofono_message_append_properties(m, dict);
 + dbus_message_iter_close_container(iter, dict);
 +
 + g_dbus_send_message(ofono_dbus_get_connection(), signal);
 +}
 +
 +void ofono_emit_message_removed(const char *atompath, const char *interface,
 + struct message *m)
 +{
 + DBusConnection *conn = ofono_dbus_get_connection();
 + const char *path;
 +
 + if ((atompath == NULL) || (m == NULL))
 + return;
 +

And here ;)

 + path = ofono_message_path_from_uuid(atompath, m-uuid);
 +
 + g_dbus_emit_signal(conn, atompath, interface,
 + MessageRemoved, DBUS_TYPE_OBJECT_PATH, path,
 + DBUS_TYPE_INVALID);
 +}
 +
 +const char *ofono_message_path_from_uuid(const char *atompath,
 + const struct ofono_uuid *uuid)

Please keep this as an internal API (e.g.
__ofono_message_path_from_uuid) and update ofono.h appropriately.

 +{
 + static char path[256];
 +
 + snprintf(path, sizeof(path), %s/message_%s, atompath,
 + 

[PATCH 0/2] Remove unused mpty from ofono_call

2011-01-13 Thread Jeevaka Badrappan
Hi,

 Following patch removes the unused internal mpty variable from ofono_call.

Regards,
Jeevaka

Jeevaka Badrappan (2):
  atutil: remove unused mpty
  include: remove unused mpty from ofono_call

 drivers/atmodem/atutil.c |1 -
 include/types.h  |1 -
 2 files changed, 0 insertions(+), 2 deletions(-)

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


[PATCH 2/2] include: remove unused mpty from ofono_call

2011-01-13 Thread Jeevaka Badrappan
---
 include/types.h |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/include/types.h b/include/types.h
index 9fd174d..1b95eaa 100644
--- a/include/types.h
+++ b/include/types.h
@@ -97,7 +97,6 @@ struct ofono_call {
int type;
int direction;
int status;
-   ofono_bool_t mpty;
struct ofono_phone_number phone_number;
char name[OFONO_MAX_CALLER_NAME_LENGTH + 1];
int clip_validity;
-- 
1.7.0.4

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


[PATCH 1/2] atutil: remove unused mpty

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

diff --git a/drivers/atmodem/atutil.c b/drivers/atmodem/atutil.c
index 0726da0..da17253 100644
--- a/drivers/atmodem/atutil.c
+++ b/drivers/atmodem/atutil.c
@@ -140,7 +140,6 @@ GSList *at_util_parse_clcc(GAtResult *result)
call-direction = dir;
call-status = status;
call-type = type;
-   call-mpty = mpty;
strncpy(call-phone_number.number, str,
OFONO_MAX_PHONE_NUMBER_LENGTH);
call-phone_number.type = number_type;
-- 
1.7.0.4

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


Re: [PATCH 0/2] Remove unused mpty from ofono_call

2011-01-13 Thread Denis Kenzior
Hi Jeevaka,

On 01/13/2011 12:29 PM, Jeevaka Badrappan wrote:
 Hi,
 
  Following patch removes the unused internal mpty variable from ofono_call.
 
 Regards,
 Jeevaka
 

Both patches have been applied, thanks.

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


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


[PATCH v6] test: Add CDMA MO Call Support

2011-01-13 Thread Dara Spieker-Doyle
Rebasing and adding CDMA MO Call test scripts
---
 Makefile.am   |5 -
 test/cdma-dial-number |   24 
 test/cdma-hangup  |   20 
 test/cdma-list-call   |   25 +
 4 files changed, 73 insertions(+), 1 deletions(-)
 create mode 100755 test/cdma-dial-number
 create mode 100755 test/cdma-hangup
 create mode 100755 test/cdma-list-call

diff --git a/Makefile.am b/Makefile.am
index a68fc36..abdf5ac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -455,7 +455,10 @@ test_scripts = test/backtrace \
test/set-gsm-band \
test/set-umts-band \
test/lockdown-modem \
-   test/set-call-forwarding
+   test/set-call-forwarding \
+   test/cdma-list-call \
+   test/cdma-dial-number \
+   test/cdma-hangup
 
 if TEST
 testdir = $(pkglibdir)/test
diff --git a/test/cdma-dial-number b/test/cdma-dial-number
new file mode 100755
index 000..54a67b3
--- /dev/null
+++ b/test/cdma-dial-number
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+   'org.ofono.Manager')
+
+if len(sys.argv)  2:
+   path = sys.argv[1]
+   number = sys.argv[2]
+else:
+   modems = manager.GetModems()
+   path, properties = modems[0]
+   number = sys.argv[1]
+
+print Using modem %s % path
+
+manager = dbus.Interface(bus.get_object('org.ofono', path),
+   
'org.ofono.cdma.VoiceCallManager')
+
+manager.Dial(number)
diff --git a/test/cdma-hangup b/test/cdma-hangup
new file mode 100755
index 000..f8e631e
--- /dev/null
+++ b/test/cdma-hangup
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+   'org.ofono.Manager')
+
+if len(sys.argv)  2:
+   path = sys.argv[1]
+else:
+   modems = manager.GetModems()
+   path, properties = modems[0]
+
+manager = dbus.Interface(bus.get_object('org.ofono', path),
+   
'org.ofono.cdma.VoiceCallManager')
+
+manager.Hangup()
diff --git a/test/cdma-list-call b/test/cdma-list-call
new file mode 100755
index 000..c941383
--- /dev/null
+++ b/test/cdma-list-call
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+
+import dbus
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+   'org.ofono.Manager')
+
+modems = manager.GetModems()
+
+for path, properties in modems:
+   print [ %s ] % (path)
+
+   if org.ofono.cdma.VoiceCallManager not in properties[Interfaces]:
+   continue
+
+   mgr = dbus.Interface(bus.get_object('org.ofono', path),
+   'org.ofono.cdma.VoiceCallManager')
+
+   properties = mgr.GetProperties()
+
+   for key in properties.keys():
+   val = str(properties[key])
+   print %s = %s % (key, val)
-- 
1.7.0.4

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


[PATCH v2, 2/2] nokiacdma: Add CDMA devinfo support

2011-01-13 Thread Dara Spieker-Doyle
---
 plugins/nokiacdma.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/plugins/nokiacdma.c b/plugins/nokiacdma.c
index e05c012..7bd224d 100644
--- a/plugins/nokiacdma.c
+++ b/plugins/nokiacdma.c
@@ -43,6 +43,7 @@
 
 #include drivers/atmodem/atutil.h
 #include ofono/cdma-voicecall.h
+#include ofono/devinfo.h
 
 #include common.h
 
@@ -137,6 +138,7 @@ static void nokiacdma_pre_sim(struct ofono_modem *modem)
struct nokiacdma_data *data = ofono_modem_get_data(modem);
 
ofono_cdma_voicecall_create(modem, 0, cdmamodem, data-chat);
+   ofono_devinfo_create(modem, 0, cdmamodem, data-chat);
 }
 
 static void nokiacdma_post_sim(struct ofono_modem *modem)
-- 
1.7.0.4

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


[PATCH v2, 0/2] Add CDMA devinfo support

2011-01-13 Thread Dara Spieker-Doyle
This is v2 of the series of patches to provide CDMA AT support device info.
It re-uses the GSM atom interface and provides cdmamodem driver support, moving
common utilities to atutil.[ch] for sharing with the atmodem driver.

HW support for testing is implemented in the nokiacdma plugin.

These patches have been tested against the Nokia 7205 CDMA device in a tethered
mode.

Dara Spieker-Doyle (2):
  cdmamodem: Add CDMA devinfo support
  nokiacdma: Add CDMA devinfo support

 Makefile.am   |3 +-
 drivers/cdmamodem/cdmamodem.c |2 +
 drivers/cdmamodem/cdmamodem.h |2 +
 drivers/cdmamodem/devinfo.c   |  188 +
 plugins/nokiacdma.c   |2 +
 5 files changed, 196 insertions(+), 1 deletions(-)
 create mode 100644 drivers/cdmamodem/devinfo.c

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


[PATCH] cdmamodem: M15 Coding style fix

2011-01-13 Thread Dara Spieker-Doyle
---
 drivers/cdmamodem/cdmamodem.h |4 ++--
 drivers/cdmamodem/voicecall.c |4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/cdmamodem/cdmamodem.h b/drivers/cdmamodem/cdmamodem.h
index b085541..5011ade 100644
--- a/drivers/cdmamodem/cdmamodem.h
+++ b/drivers/cdmamodem/cdmamodem.h
@@ -21,5 +21,5 @@
 
 #include drivers/atmodem/atutil.h
 
-extern void cdma_voicecall_init();
-extern void cdma_voicecall_exit();
+extern void cdma_voicecall_init(void);
+extern void cdma_voicecall_exit(void);
diff --git a/drivers/cdmamodem/voicecall.c b/drivers/cdmamodem/voicecall.c
index 5b4f3cc..a0fa79f 100644
--- a/drivers/cdmamodem/voicecall.c
+++ b/drivers/cdmamodem/voicecall.c
@@ -147,12 +147,12 @@ static struct ofono_cdma_voicecall_driver driver = {
.hangup = cdma_hangup,
 };
 
-void cdma_voicecall_init()
+void cdma_voicecall_init(void)
 {
ofono_cdma_voicecall_driver_register(driver);
 }
 
-void cdma_voicecall_exit()
+void cdma_voicecall_exit(void)
 {
ofono_cdma_voicecall_driver_unregister(driver);
 }
-- 
1.7.0.4

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


Re: [PATCH 1/3] doc: Add message state API

2011-01-13 Thread Faiyaz Baxamusa

Hi Denis,

On 01/13/2011 10:04 AM, ext Denis Kenzior wrote:

Hi Faiyaz,

On 01/06/2011 01:50 PM, Faiyaz Baxamusa wrote:

---
  Makefile.am   |2 +-
  doc/cdma-message-api.txt  |5 +
  doc/message-api.txt   |   24 +---


Please rename this file into doc/messagemanager-api.txt


I will rename current doc/message-api.txt to
doc/messagemanager-api.txt file and also rename doc/cdma-message-api.txt 
to doc/cdma-messagemanager-api.txt





  doc/message-state-api.txt |   27 +++


And this one can be message-api.txt


I will rename the new file to doc/message-api.txt




  4 files changed, 34 insertions(+), 24 deletions(-)
  create mode 100644 doc/message-state-api.txt

diff --git a/Makefile.am b/Makefile.am
index 09dc9ad..14f53ef 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -369,7 +369,7 @@ 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/calypso-modem.txt doc/message-state-api.txt


  test_scripts = test/backtrace \
diff --git a/doc/cdma-message-api.txt b/doc/cdma-message-api.txt
index 8e6b9ea..c3d03f8 100644
--- a/doc/cdma-message-api.txt
+++ b/doc/cdma-message-api.txt
@@ -110,3 +110,8 @@ Properties  boolean UseDeliveryAcknowledgement
The call back number for the user.  If the number is
empty, then the optional field is not included
in the encoded PDU.
+
+Message hierarchy
+===
+
+Please refer to message-state-api.txt


Please get rid of this chunk.



Sure.


diff --git a/doc/message-api.txt b/doc/message-api.txt
index f7ab22a..e6c8522 100644
--- a/doc/message-api.txt
+++ b/doc/message-api.txt
@@ -90,26 +90,4 @@ Properties   string ServiceCenterAddress
  Message hierarchy
  ===

-Serviceorg.ofono
-Interface  org.ofono.Message
-Object path[variable prefix]/{modem0,modem1,...}/{message_01,...}
-
-Methodsdict GetProperties()
-
-   Returns properties for the message object. See
-   the properties section for available properties.
-
-   Possible Errors: [service].Error.InvalidArguments
-
-SignalsPropertyChanged(string name, variant value)
-
-   This signal indicates a changed value of the given
-   property.
-
-Properties string State
-
-   Contains the state of the message object.  Possible
-   values are:
-   pending,
-   sent,
-   failed
+Please refer to message-state-api.txt
diff --git a/doc/message-state-api.txt b/doc/message-state-api.txt
new file mode 100644
index 000..edd0cbf
--- /dev/null
+++ b/doc/message-state-api.txt
@@ -0,0 +1,27 @@
+Message hierarchy
+===
+
+Serviceorg.ofono
+Interface  org.ofono.Message
+Object path[variable prefix]/{modem0,modem1,...}/{message_01,...}
+
+Methodsdict GetProperties()
+
+   Returns properties for the message object. See
+   the properties section for available properties.
+
+   Possible Errors: [service].Error.InvalidArguments
+
+SignalsPropertyChanged(string name, variant value)
+
+   This signal indicates a changed value of the given
+   property.
+
+Properties string State
+
+   Contains the state of the message object.  Possible
+   values are:
+   pending,
+   sent,
+   failed
+   invalid


Please get rid of this invalid state.



Sure, will remove invalid


Regards,
-Denis



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


[PATCH] TODO: Add task for adding EFcsp support

2011-01-13 Thread Aki Niemi
This task will add support for CPHS Customer Service Profile (CSP),
and specifically for the CSP PLMN mode bit therein.
---
 TODO |   13 +
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/TODO b/TODO
index 6ad972e..1c0392f 100644
--- a/TODO
+++ b/TODO
@@ -97,6 +97,19 @@ SIM / SIM File system
   Complexity: C1
   Owner: Marit Henriksen marit.henrik...@stericsson.com
 
+- Add support for CPHS Customer Service Profile (CSP).  This task adds support
+  for reading the EFcsp file and in particular, interpreting the PLMN mode bit
+  within the 'Value Added Services' service group.
+
+  Based on the PLMN mode value, manual network selection needs to either be
+  enabled or disabled in the netreg atom.  Also to accommodate this, there
+  probably needs to be a new 'forced' mode to indicate that manual network
+  selection is disabled.
+
+  Priority: Medium
+  Complexity: C1
+  Owner: Aki Niemi aki.ni...@nokia.com
+
 Modem Emulator
 ==
 
-- 
1.7.1

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


Re: [PATCH 2/3] include: Introduce message

2011-01-13 Thread Faiyaz Baxamusa

Hi Denis:

On 01/13/2011 10:08 AM, ext Denis Kenzior wrote:

Hi Faiyaz,

On 01/06/2011 01:50 PM, Faiyaz Baxamusa wrote:

---
  Makefile.am   |2 +-
  include/message.h |   67 +
  2 files changed, 68 insertions(+), 1 deletions(-)
  create mode 100644 include/message.h


This is not an atom, it is an implementation detail inside the core.  So
please don't put this into include/ (this is where the public API, for
e.g. plugins and drivers goes)

Moving this inside src/message.h is the way to go.


Will move the file to src/message.h





diff --git a/Makefile.am b/Makefile.am
index 14f53ef..8b19eef 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,7 +15,7 @@ include_HEADERS = include/log.h include/plugin.h 
include/history.h \
include/radio-settings.h include/stk.h \
include/audio-settings.h include/nettime.h \
include/ctm.h include/cdma-voicecall.h \
-   include/cdma-sms.h
+   include/cdma-sms.h include/message.h

  nodist_include_HEADERS = include/version.h

diff --git a/include/message.h b/include/message.h
new file mode 100644
index 000..7c60390
--- /dev/null
+++ b/include/message.h
@@ -0,0 +1,67 @@
+/*
+ *
+ *  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
+ *
+ */
+
+#ifndef __OFONO_MESSAGE_H
+#define __OFONO_MESSAGE_H
+
+#ifdef __cplusplus
+extern C {
+#endif
+
+#includeofono/types.h
+
+enum message_state {
+   MESSAGE_STATE_PENDING,
+   MESSAGE_STATE_SENT,
+   MESSAGE_STATE_FAILED
+};
+
+struct message;
+
+struct message *ofono_message_create(const struct ofono_uuid *uuid,
+   void *data);


Please use message_set_data to be symmetrical with the rest of the codebase.


Sure will initialize data param using message_set_data.



+
+gboolean ofono_message_dbus_register(const char *atompath, struct message *m);
+void ofono_message_dbus_unregister(const char *atompath, struct message *m);
+
+const struct ofono_uuid *ofono_message_get_uuid(const struct message *m);
+
+void ofono_message_set_state(const char *atompath, struct message *m,
+   enum message_state new_state);
+
+void ofono_message_append_properties(struct message *m, DBusMessageIter *dict);
+
+void ofono_emit_message_added(const char *atompath, const char *interface,
+   struct message *m);
+
+void ofono_emit_message_removed(const char *atompath, const char *interface,
+   struct message *m);
+
+void *ofono_message_get_data(struct message *m);
+
+const char *ofono_message_path_from_uuid(const char *atompath,
+   const struct ofono_uuid *uuid);
+


Since this is not public API please don't use the ofono_ prefix for
this.  Using e.g. message_emit_removed, message_append_properties, etc
is good enough.


Will rename all the functions to message_XXX.

Thank you
Faiyaz




Regards,
-Denis


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


Re: [PATCH v6] test: Add CDMA MO Call Support

2011-01-13 Thread Denis Kenzior
Hi Dara,

On 01/13/2011 02:19 PM, Dara Spieker-Doyle wrote:
 Rebasing and adding CDMA MO Call test scripts
 ---
  Makefile.am   |5 -
  test/cdma-dial-number |   24 
  test/cdma-hangup  |   20 
  test/cdma-list-call   |   25 +
  4 files changed, 73 insertions(+), 1 deletions(-)
  create mode 100755 test/cdma-dial-number
  create mode 100755 test/cdma-hangup
  create mode 100755 test/cdma-list-call
 

Patch has been applied, thanks.

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


Re: [PATCH] Add CDIP support

2011-01-13 Thread Denis Kenzior
Hi Lucas,

On 01/12/2011 05:07 AM, Lucas De Marchi wrote:
 With CDIP phonesim can tell the Called Line Identification within the
 RING comand according to 27.007 section 7.9.
 ---
  src/callmanager.cpp   |   21 +++--
  src/callmanager.h |8 +---
  src/control.cpp   |8 ++--
  src/control.h |2 +-
  src/default.xml   |   19 +++
  src/hardwaremanipulator.h |2 +-
  src/phonesim.cpp  |4 ++--
  7 files changed, 49 insertions(+), 15 deletions(-)
 

Patch has been applied, thanks.

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


Re: [PATCH] cdmamodem: M15 Coding style fix

2011-01-13 Thread Denis Kenzior
Hi Dara,

On 01/13/2011 03:02 PM, Dara Spieker-Doyle wrote:
 ---
  drivers/cdmamodem/cdmamodem.h |4 ++--
  drivers/cdmamodem/voicecall.c |4 ++--
  2 files changed, 4 insertions(+), 4 deletions(-)
 

Patch has been applied, thanks.

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


Re: [PATCH v2, 0/2] Add CDMA devinfo support

2011-01-13 Thread Denis Kenzior
Hi Dara,

On 01/13/2011 02:52 PM, Dara Spieker-Doyle wrote:
 This is v2 of the series of patches to provide CDMA AT support device info.
 It re-uses the GSM atom interface and provides cdmamodem driver support, 
 moving
 common utilities to atutil.[ch] for sharing with the atmodem driver.
 
 HW support for testing is implemented in the nokiacdma plugin.
 
 These patches have been tested against the Nokia 7205 CDMA device in a 
 tethered
 mode.
 

Both of these have been applied as well.

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


Re: [PATCH 3/3] message: Code independent of protocol stack

2011-01-13 Thread Faiyaz Baxamusa

Hi Denis:

On 01/13/2011 10:20 AM, ext Denis Kenzior wrote:

Hi Faiyaz,


+static const char *message_state_to_string(enum message_state s)
+{
+   switch (s) {
+   case MESSAGE_STATE_PENDING:
+   return pending;
+   case MESSAGE_STATE_SENT:
+   return sent;
+   case MESSAGE_STATE_FAILED:
+   return failed;
+   }
+
+   return invalid;


As mentioned previously, don't return invalid here.


Will remove invalid



snip


+gboolean ofono_message_dbus_register(const char *atompath, struct message *m)
+{
+   DBusConnection *conn = ofono_dbus_get_connection();
+   const char *path;
+
+   if ((atompath == NULL) || (m == NULL))
+   return FALSE;


Please get rid of these parentheses, they're not needed.  Also, in
general we prefer not to use null checking in the core.  The earlier we
crash the easier it is to find the bugs.


will fix all the occurrences.




+
+   path = ofono_message_path_from_uuid(atompath,m-uuid);
+
+   if (!g_dbus_register_interface(conn, path, OFONO_MESSAGE_INTERFACE,
+   message_methods, message_signals,
+   NULL, m, message_destroy)) {
+   ofono_error(Could not register Message %s, path);
+   message_destroy(m);
+
+   return FALSE;
+   }
+
+   return TRUE;
+}
+
+void ofono_message_dbus_unregister(const char *atompath, struct message *m)
+{
+   DBusConnection *conn = ofono_dbus_get_connection();
+   const char *path;
+
+   if ((atompath == NULL) || (m == NULL))
+   return;


Same comment as above about the parentheses.


+
+   path = ofono_message_path_from_uuid(atompath,m-uuid);
+
+   g_dbus_unregister_interface(conn, path, OFONO_MESSAGE_INTERFACE);
+
+   return;
+}
+
+const struct ofono_uuid *ofono_message_get_uuid(const struct message *m)
+{
+   if (m == NULL)
+   return NULL;
+
+   returnm-uuid;
+}
+
+void ofono_message_set_state(const char *atompath,
+   struct message *m, enum message_state new_state)
+{
+   DBusConnection *conn = ofono_dbus_get_connection();
+   const char *state;
+   const char *path;
+
+   if ((atompath == NULL) || (m == NULL))
+   return;
+


And again the comment about parentheses.


+   if (m-state == new_state)
+   return;
+
+   path = ofono_message_path_from_uuid(atompath,m-uuid);
+
+   m-state = new_state;
+   state = message_state_to_string(m-state);
+
+   ofono_dbus_signal_property_changed(conn, path, OFONO_MESSAGE_INTERFACE,
+   State, DBUS_TYPE_STRING,
+   state);
+}
+
+void ofono_message_append_properties(struct message *m, DBusMessageIter *dict)
+{
+   const char *state;
+
+   if (m == NULL)
+   return;
+
+   state = message_state_to_string(m-state);
+   ofono_dbus_dict_append(dict, State, DBUS_TYPE_STRING,state);
+}
+
+void ofono_emit_message_added(const char *atompath, const char *interface,
+   struct message *m)
+{
+   DBusMessage *signal;
+   DBusMessageIter iter;
+   DBusMessageIter dict;
+   const char *path;
+
+   if ((atompath == NULL) || (m == NULL))
+   return;
+


And here


+   signal = dbus_message_new_signal(atompath, interface, MessageAdded);
+   if (signal == NULL)
+   return;
+
+   path = ofono_message_path_from_uuid(atompath,m-uuid);
+
+   dbus_message_iter_init_append(signal,iter);
+
+   dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH,path);
+
+   dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
+   OFONO_PROPERTIES_ARRAY_SIGNATURE,
+   dict);
+   ofono_message_append_properties(m,dict);
+   dbus_message_iter_close_container(iter,dict);
+
+   g_dbus_send_message(ofono_dbus_get_connection(), signal);
+}
+
+void ofono_emit_message_removed(const char *atompath, const char *interface,
+   struct message *m)
+{
+   DBusConnection *conn = ofono_dbus_get_connection();
+   const char *path;
+
+   if ((atompath == NULL) || (m == NULL))
+   return;
+


And here ;)


+   path = ofono_message_path_from_uuid(atompath,m-uuid);
+
+   g_dbus_emit_signal(conn, atompath, interface,
+   MessageRemoved, DBUS_TYPE_OBJECT_PATH,path,
+   DBUS_TYPE_INVALID);
+}
+
+const char *ofono_message_path_from_uuid(const char *atompath,
+   const struct ofono_uuid *uuid)


Please keep this as an internal API (e.g.
__ofono_message_path_from_uuid) and update ofono.h appropriately.


Based on a 

Re: [PATCH 3/3] message: Code independent of protocol stack

2011-01-13 Thread Denis Kenzior
Hi Faiyaz,

 Please keep this as an internal API (e.g.
 __ofono_message_path_from_uuid) and update ofono.h appropriately.
 
 Based on a comment in Patch 2/3, message.h and message.c are internal to
 core and to me they look more of a utility/helper functions to sms.c
 file (and in future cdma-sms.c file).  So should I even include
 message.h in ofono.h file. I could only rename the function to be
 message_XXX.
 
 The sms.h still maintains the API __ofono_sms_message_path_from_uuid
 which is shared with smart-messaging.c and is defined in ofono.h
 
 

That would be fine as well.

 -if (message_dbus_register(sms, m) == FALSE)
 +if (ofono_message_dbus_register(
 +__ofono_atom_get_path(sms-atom),
 +m) == FALSE)

 This looks a bit ugly, can you find a better way to do this?  Perhaps
 message_create should simply take an atom as well.
 I think we can go with
 1) Pass sms-atom, add struct ofono_atom *atom in the message struct
 and initialize the reference of the same in message_create. But I am not
 sure if it will be okay to pass a reference to a private data member
 from struct ofono_sms.
 struct message {
 struct ofono_uuid uuid;
 enum message_state state;
 void *data;
 struct ofono_atom *atom;
 };
 
 2) Pass __ofono_atom_get_path(sms-atom) and use malloc in
 message_create to initialize atompath. Just use atompath through the
 code. But a general observation I had was that in ofono we used static
 char xxx[] instead of doing malloc. Hence did not go this route in the
 initial patch.
 
 struct message {
 struct ofono_uuid uuid;
 enum message_state state;
 void *data;
 char *atompath;
 };
 
 Please let me know your thoughts on the same.
 

I don't think there's a huge difference between the two.  Use the atom
member for now and I will have a closer look when you resubmit.

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


Re: [RFC PATCHv2 1/4] Automatic provisioning of GPRS context settings

2011-01-13 Thread Kalle Valo
Marcel Holtmann mar...@holtmann.org writes:

 Hi Kalle,

Hi Marcel,

 Even better, maybe just a bit trickier to implement. But at least
 mobile-broadband-provider-info already supports pkgconfig so the
 location of the xml should be easy to detect automatically during
 configure.

 so I assume you take yo the task to add support for it once we have the
 rest of framework merged.

Sure. But I can't promise when I get the task finished :)

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


Re: [PATCH v3 2/2] plugins: add ctm create to ifx plugin

2011-01-13 Thread Marcel Holtmann
Hi Jeevaka,

  plugins/ifx.c |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)
 
 diff --git a/plugins/ifx.c b/plugins/ifx.c
 index c0a69c2..08b0001 100644
 --- a/plugins/ifx.c
 +++ b/plugins/ifx.c
 @@ -57,6 +57,7 @@
  #include ofono/radio-settings.h
  #include ofono/audio-settings.h
  #include ofono/stk.h
 +#include ofono/ctm.h
  #include ofono/log.h
  
  #include drivers/atmodem/atutil.h
 @@ -700,6 +701,7 @@ static void ifx_post_sim(struct ofono_modem *modem)
  
   DBG(%p, modem);
  
 + ofono_ctm_create(modem, 0, ifxmodem, data-dlcs[AUX_DLC]);

so no emergency calls with CTM are possible? Or do we have to
potentially also handle that?

Regards

Marcel


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


Re: [PATCH v3 1/2] ifxmodem: add enable/disable ctm support

2011-01-13 Thread Marcel Holtmann
Hi Jeevaka,

  Makefile.am |3 +-
  drivers/ifxmodem/ctm.c  |  194 
 +++
  drivers/ifxmodem/ifxmodem.c |2 +
  drivers/ifxmodem/ifxmodem.h |3 +
  4 files changed, 201 insertions(+), 1 deletions(-)
  create mode 100644 drivers/ifxmodem/ctm.c

patch has been applied. Thanks.

Regards

Marcel


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


Re: [PATCH 1/1] ifxmodem: change AT command for enabling SATK

2011-01-13 Thread Marcel Holtmann
Hi Jeevaka,

  drivers/ifxmodem/stk.c |   11 +--
  1 files changed, 5 insertions(+), 6 deletions(-)

patch has been applied. Thanks.

Regards

Marcel


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


Re: [PATCH 3/5 v3] nettime: DBUS and compilation configuration

2011-01-13 Thread Marcel Holtmann
Hi Antti,

  Makefile.am|9 +++--
  src/ofono.conf |2 ++
  2 files changed, 9 insertions(+), 2 deletions(-)

snip
 
policy user=root
  allow own=org.ofono/
 +allow own=com.meego/
  allow send_destination=org.ofono/
  allow send_interface=org.ofono.SimToolkitAgent/
  allow send_interface=org.ofono.PushNotificationAgent/
  allow send_interface=org.ofono.SmartMessagingAgent/
 +allow send_interface=org.ofono.NetworkTime/
/policy
  
policy at_console=true

I am now lost in what you are trying to achieve here. I thought we
agreed that we send a D-Bus method to timed. For that you neither have
to have a well known name nor have a D-Bus interface present.

And surely ofonod will not claim com.meego as service name.

Regards

Marcel


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


RE: Making voice call with Huawei E272 USB Modem

2011-01-13 Thread Li, Zhigang

#output from list-modem testscrip
./list-modems
[ /huawei0 ]
Features = sms gprs cbs net rat sim

There was no voicecall manager interface at all, it mean your modem did not 
support voice call.


Powered = 1
Lockdown = 0
Interfaces = org.ofono.SmartMessaging org.ofono.PushNotification
org.ofono.MessageManager org.ofono.ConnectionManager
org.ofono.CellBroadcast org.ofono.NetworkRegistration
org.ofono.SupplementaryServices org.ofono.Phonebook
org.ofono.RadioSettings org.ofono.SimManager
Online = 1
Model = E272
Manufacturer = huawei
Serial = 357865013196535

B,R
Zhigang

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


RE: [PATCH v3 2/2] plugins: add ctm create to ifx plugin

2011-01-13 Thread Jeevaka.Badrappan
Hi Marcel,

ofono-boun...@ofono.org wrote:
 Hi Jeevaka,
 
  plugins/ifx.c |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)
 
 diff --git a/plugins/ifx.c b/plugins/ifx.c index c0a69c2..08b0001
 100644 --- a/plugins/ifx.c
 +++ b/plugins/ifx.c
 @@ -57,6 +57,7 @@
  #include ofono/radio-settings.h
  #include ofono/audio-settings.h
  #include ofono/stk.h
 +#include ofono/ctm.h
  #include ofono/log.h
 
  #include drivers/atmodem/atutil.h
 @@ -700,6 +701,7 @@ static void ifx_post_sim(struct ofono_modem
 *modem) 
 
  DBG(%p, modem);
 
 +ofono_ctm_create(modem, 0, ifxmodem, data-dlcs[AUX_DLC]);
 
 so no emergency calls with CTM are possible? Or do we have to
 potentially also handle that? 
 

Emergency calls are possible. I'll move the ctm_create to pre_sim state.

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


Band selection issue

2011-01-13 Thread Li, Zhigang
Hi,
With HuaWei Em77W and Em1152 modems, I only can set band once in tow modems; it 
always return the call back error, with debugging, it seems was modems self 
issue.
Does it known issue?
Could you list which Hua wei modem are you using for debugging?
Thanks
Zhigang


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


Re: [RFC PATCH 4/4] Dummy example GPRS context provisioning driver

2011-01-13 Thread Jukka Saunamaki
Hello Denis,

On Thu, 2011-01-13 at 09:57 -0600, Denis Kenzior wrote:
  Some virtual operators are using the same MCC/MNC as their host, or some
  operators have several different trade names, and these can have
  different access settings (at least different UI visible name). 
  SPN in SIM typically tells these cases apart. This is why I included
  reading SPN to that example provisioning.
 
 Do you have specific examples?  To my knowledge the MVNOs should be
 provisioning the SIM with a different MNC from the host but the network
 used (and thus the network's MCC/MNC) are their host's.

I was not sure if all MVNOs have their own MNC, but in any case some
operators use different trade names. Off the top of my hat I know our
local Finnish operators Elisa and Sonera use trade names like Kolumbus
and TeleFinland, and their name shown in UI needs to be correct.

  All provisioning plugins might not care about SPN (e.g. the previously
  discussed one using mobile-broadband-provider-info?), so I would suggest
  not creating specific SIM API yet. Of cause it can be added later, if so
  wished.
 
 You might be able to get away with reading of EFspn just because it is
 cached nicely on disk.  But you will have to carefully consider your
 plugin design if you wish to do so to avoid any race conditions and be
 able to properly clean up.

You mean that if plugin gets removed/unregistered before SPN-reading
callback comes in? 
That is a good point, and I also have to check how to handle this in
GPRS atom, since calling provisioning is asynchronous, and GPRS might
get removed while provisioning is running... I might need some help
figuring out solution to that. 
Alternative is of cause to make provisioning synchronous, but that would
limit what plugin can do (like asking SPN with ofono_sim_read())

--Jukka
 

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


Re: [RFC PATCH 4/4] Dummy example GPRS context provisioning driver

2011-01-13 Thread Rémi Denis-Courmont
On Friday 14 January 2011 08:53:03 ext Jukka Saunamaki, you wrote:
 Alternative is of cause to make provisioning synchronous, but that would
 limit what plugin can do (like asking SPN with ofono_sim_read())

Just because the plugin would be synchronous won't magically fix the physical 
race conditions. The user can still take the SIM out, and the network can 
still fail.

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