Re: [PATCH 3/4] Bearer documentation
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 R&D, Maemo Software, Helsinki ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 05/10] Update documentation for GPRS technology
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 R&D, Maemo Software, Helsinki ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH] phonesim: fix for sigsegv fault
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
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, pa
Segmentation fault on Downlink data transfer
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
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
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 R&D, Maemo Software, Helsinki ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
RE: [RFC 3/5] voicecall: Add ofono_voicecall_tty_notify api
Hi Kai Vehmanen, ofono-boun...@ofono.org wrote: > 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). > I agree but ofono_voicecall_tty_notify is to inform the ME(MO originated ME) that the call is accepted as a TTY call on the remote side. Regards, Jeevaka ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 1/5 v3] nettime: Header file for nettime plugins
--- 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
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
--- 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
--- 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 @@ + + -- 1.7.1 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 2/5 v3] nettime: Network time plugin implementation
--- 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 +#endif + +#include +#include + +#define OFONO_API_SUBJECT_TO_CHANGE +#include +#include +#include +#include +#include +#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 = FALSE; +
[PATCH 4/5 v3] nettime: Documentation
--- 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
--- 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
--- 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 1/6] Distinguish HSUPA and HSDPA
--- src/common.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common.c b/src/common.c index 4d93488..d4e567b 100644 --- a/src/common.c +++ b/src/common.c @@ -702,9 +702,9 @@ const char *registration_tech_to_string(int tech) case ACCESS_TECHNOLOGY_GSM_EGPRS: return "edge"; case ACCESS_TECHNOLOGY_UTRAN_HSDPA: - return "hspa"; + return "hsdpa"; case ACCESS_TECHNOLOGY_UTRAN_HSUPA: - return "hspa"; + return "hsupa"; case ACCESS_TECHNOLOGY_UTRAN_HSDPA_HSUPA: return "hspa"; case ACCESS_TECHNOLOGY_EUTRAN: -- 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
--- 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 5/6] GPRS: document bearer property
--- doc/connman-api.txt | 10 ++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/doc/connman-api.txt b/doc/connman-api.txt index 22e02e5..13f622c 100644 --- a/doc/connman-api.txt +++ b/doc/connman-api.txt @@ -77,6 +77,16 @@ Properties boolean Attached [readonly] be available, e.g. receiving SMS over packet radio or network initiated PDP activation. + string Bearer [readonly, optional] + + Contains the data bearer technology as reported by the + GPRS service registration (if known). + + Possible values are: + "gsm", "edge", "umts", "hsdpa", "hsupa", + "hspa" (HSDPA and HSUPA at the same time) and + "lte" + boolean Suspended [readonly, optional] Contains whether the GPRS service is suspended. -- 1.7.1 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 6/6] atmodem: packet switch bearer support
--- 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
--- 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 +#endif + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include + +#include +#include +#include + +#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, + unsigned int vendor, void *data) +{ +
[PATCH v2 0/1] Add ifxmodem support for enable/disable tty
Hi, Following patch adds the ifxmodem support for enabling/disabling tty mode. Regards, Jeevaka Jeevaka Badrappan (1): ifxmodem: add enable/disable ctm support 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 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
RE: [RFC 3/5] voicecall: Add ofono_voicecall_tty_notify api
Hi, On 13 Jan 2011, jeevaka.badrap...@elektrobit.com wrote: >> 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). > > I agree but ofono_voicecall_tty_notify is to inform the > ME(MO originated ME) that the call is accepted as a TTY call on > the remote side. yup. So this is needed as it's possible that the established voice channel is not fully CTM-compatible (either because of network reasons, or because the called party does not have a TTY device attached, or does not have TTY support at all). In this case, the TTY property for the call would be FALSE (even if a TTY was attempted). And this is still standard procedure (applies to all GSM modems supporting CTM). ___ 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
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? There are a number of AT commands that are required but really do not belong in oFono... For sure nobody wants oFono depend on everything in the world. But at some point, one component will need to do the final job of handling the AT command. Whether it is oFono or something else I personally don't bother. Having it inside oFono through the plugin mechanism will avoid some additional layer of IPC. 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. - 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: [PATCH 00/21] Resubmit Zhenhua Zhang work on DUN server with btio
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 R&D, 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
Hi Antti, 2011/1/13 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; 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
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
[PATCH 1/1] ifxmodem: change AT command for enabling SATK
--- drivers/ifxmodem/stk.c | 11 +-- 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/ifxmodem/stk.c b/drivers/ifxmodem/stk.c index 1a1805c..5951149 100644 --- a/drivers/ifxmodem/stk.c +++ b/drivers/ifxmodem/stk.c @@ -46,7 +46,7 @@ struct stk_data { static const char *none_prefix[] = { NULL }; static const char *sate_prefix[] = { "+SATE:", NULL }; -static const char *cfun_prefix[] = { "+CFUN:", NULL }; +static const char *xsatk_prefix[] = { "+XSATK:", NULL }; static void sate_cb(gboolean ok, GAtResult *result, gpointer user_data) { @@ -244,7 +244,7 @@ static void satf_notify(GAtResult *result, gpointer user_data) ofono_stk_proactive_session_end_notify(stk); } -static void cfun_support_cb(gboolean ok, GAtResult *result, +static void xsatk_support_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct ofono_stk *stk = user_data; @@ -259,8 +259,7 @@ static void cfun_support_cb(gboolean ok, GAtResult *result, g_at_chat_register(sd->chat, "+SATN:", satn_notify, FALSE, stk, NULL); g_at_chat_register(sd->chat, "+SATF:", satf_notify, FALSE, stk, NULL); - g_at_chat_send(sd->chat, "AT+CFUN=6", none_prefix, - NULL, NULL, NULL); + g_at_chat_send(sd->chat, "AT+XSATK=1,1", none_prefix, NULL, NULL, NULL); ofono_stk_register(stk); } @@ -280,8 +279,8 @@ static int ifx_stk_probe(struct ofono_stk *stk, unsigned int vendor, void *data) ofono_stk_set_data(stk, sd); - g_at_chat_send(sd->chat, "AT+CFUN=?", cfun_prefix, - cfun_support_cb, stk, NULL); + g_at_chat_send(sd->chat, "AT+XSATK=?", xsatk_prefix, xsatk_support_cb, + stk, NULL); return 0; } -- 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
Ho Jussi On Thu, Jan 13, 2011 at 6:34 AM, 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
Re: [PATCH 00/21] Resubmit Zhenhua Zhang work on DUN server with btio
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? - 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
[PATCH] AT modem: fix COLR reporting
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
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 R&D, 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
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
--- 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 #include #include +#include #include #include @@ -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
--- 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 +#endif + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include + +#include +#include +#include + +#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, + unsigned int vendor, void *data) +{ +
RE: [RFC 2/4] stk: Handle Launch Browser proactive command
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
Making voice call with Huawei E272 USB Modem
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 python&pyserial. 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 ## Ciao Neels ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [RFC PATCH 4/4] Dummy example GPRS context provisioning driver
Hi Jukka, On 01/13/2011 12:36 AM, Jukka Saunamaki wrote: > Hello > > On Wed, 2011-01-12 at 10:46 -0600, Denis Kenzior wrote: >>> ...SIM EF-SPN... >> >> You're correct that netreg is the only consumer. There was no need for >> anyone else to see this information. However, this begs the question, >> why do you need the SPN data? > > 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. > > 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. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH] phonesim: fix for sigsegv fault
Hi Jeevaka, On 01/13/2011 02:30 AM, Jeevaka Badrappan wrote: > 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(-) > Patch has been applied, thanks. ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH] test: show CalledLinePresentation property
Hi Lucas, On 01/12/2011 07:00 PM, Lucas De Marchi wrote: > --- > test/test-call-settings |2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > Patch has been applied, thanks. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: Making voice call with Huawei E272 USB Modem
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 python&pyserial. > > 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: [PATCH] sim: check if lock is locked after code changing attempt
Hi Jussi, >> >> 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. git-send-email is the only sane approach. Save yourself some time and just use it. Or find a GUI tool to do it for you. > >> >>> 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. > Whatever you do here applies to LockPin and UnlockPin, so you might as well handle them too. >> Have you considered querying the PIN state on a failure instead? If >> the lock/unlock/change pin operation fails, then re-query the current PIN. >> If the CPIN is no longer returning READY and we're in a state >> OFONO_SIM_STATE_READY, then tear us back down to an earlier state. > > Yes, I have. As I answered to Lucas already at least with the modem I'm using > the return value I get seems to be trustable and there is no point to go > querying the information I already know. Also there could be other reasons > why sim state is not ready ( small chance of course ) so to satisfy my pedant > nature I would have to either check the return value anyways or use some > other means to get the reason why the sim is not ready in order to be 100 % > sure that PUK is required. At least Lucas seemed to favor query approach. I > guess that has to mean that return value is not trustable with all modems. I > can change this if required. > >> In general you cannot trust the return value. Most modems simply get this wrong. On a well setup modem driver you do not need to worry about sim readiness conditions. The driver should take care of that. If the modem firmware is buggy, well there's no strategy that will save you anyway. So I'd prefer if we try out the query approach first. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH] AT modem: fix COLR reporting
Hi Rémi, On 01/13/2011 08:18 AM, Rémi Denis-Courmont wrote: > 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(-) > Patch has been applied, thanks. I did reword the commit message slightly. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [RFC 2/4] stk: Handle Launch Browser proactive command
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.
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: Segmentation fault on Downlink data transfer
Hi Carlos, > 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. In general a ring_buffer overflow indicates that the sender is sending garbage or the consumer is doing something wrong. Buffer overflows on GAtIO should not happen. > > > > So on this issue there is 2 points: > > 1- Management of the buffer overflow > > 2- Buffer overflow cause > > > > For the 1^st 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. > > Perhaps, but I think it is too early to speculate what we should do with buffer overflows until we know the cause. What is the exact setup that you're using? Are you using GAtMux or the kernel mux? > > For the 2^nd 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. > The consumer is synchronous with GAtIO. The receive_data function is acting something like this: - non-blocking reads until the buffer is full or nothing more to read - Call the read handler - Check for buffer overflow and kill the channel if it is. > 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. > So to me this is sounding like a problem in GAtRawIP implementation. Can you check whether using synchronous writes to the TUN device fix your problem? E.g. in new_bytes of gatrawip.c. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 8/9] doc: add CalledLinePresentation property to CallSettings
On Wed, Jan 12, 2011 at 9:27 AM, Lucas De Marchi 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
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
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 9/9] gps: add documentation
Hi Rafael, > +Location Reporting hierarchy > += > + > +Service org.ofono > +Interfaceorg.ofono.LocationReporting > +Object path [variable prefix]/{modem0,modem1,...} > + > +Methods dict GetProperties() > + > + Returns all Gps properties. See the > + properties section for available properties. > + > + Possible Errors: [service].Error.InProgress > + [service].Error.Failed > + > + void SetProperty(string name, variant value) > + > + Changes the value of the specified property. Only > + properties that are listed as read-write are > + changeable. On success a PropertyChanged signal > + will be emitted. > + > + Possible Errors: [service].Error.InvalidArguments > + [service].Error.InProgress > + [service].Error.Failed > + > +Signals PropertyChanged(string property, variant value) > + > + This signal indicates a changed value of the given > + property. > + > +Properties boolean Powered [readwrite] > + > + This property will power or disable the GPS feature in > + the modem. > + > + Many modem manufacturers provide a GPS unit with their > + modem hardware. This unit can be turned on or off and > + frequently takes over one of the tty ports that the > + modem provides. So after discussing this some more with Marcel I'd like to change the API slightly. Instead of using a Powered property, let us use an Agent with file descriptor passing instead. The flow will roughly go like this: LocationReporting interface becomes available and the string Type property is known. An external client registers an Agent with this interface. Internally this triggers the driver function to bring up the GPS device and return the file descriptor to the core. The core takes care of calling the Agent with the file descriptor using DBus FD passing mechanisms. Once the remote client receives the file descriptor it can use it to receive e.g. NMEA data. Unregistering the agent or if the remote client exits unexpectedly terminates should close the file descriptor and deactivate the NMEA stream. > + > + dict Settings [readonly] > + This dictionary is no longer necessary. > + Holds the location information settings > + > + string Device [readonly] > + > + Holds the device from which the location > + information can be obtained (e.g. > "/dev/ttyACM2") > + This makes this property unnecessary > + string Type [readonly] > + > + Holds the type of the device (e.g. "nmea") > + And this property should be moved to a top level property instead of being inside the Settings dict. I hope my explanation was pretty clear, if not, find me on IRC. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v2 3/9] gps: add public header
Hi Rafael, > + > +#include > + > +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
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
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 > + > +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
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: 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
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 +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
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. > +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 upda
[PATCH 0/2] Remove unused mpty from ofono_call
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
--- 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
--- 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
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
> 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
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
--- 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 #include +#include #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, 1/2] cdmamodem: Add CDMA devinfo support
--- Makefile.am |3 +- drivers/cdmamodem/cdmamodem.c |2 + drivers/cdmamodem/cdmamodem.h |2 + drivers/cdmamodem/devinfo.c | 188 + 4 files changed, 194 insertions(+), 1 deletions(-) create mode 100644 drivers/cdmamodem/devinfo.c diff --git a/Makefile.am b/Makefile.am index a68fc36..014af8f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -249,7 +249,8 @@ if CDMAMODEM builtin_modules += cdmamodem builtin_sources += drivers/cdmamodem/cdmamodem.h \ drivers/cdmamodem/cdmamodem.c \ - drivers/cdmamodem/voicecall.c + drivers/cdmamodem/voicecall.c \ + drivers/cdmamodem/devinfo.c endif builtin_modules += g1 diff --git a/drivers/cdmamodem/cdmamodem.c b/drivers/cdmamodem/cdmamodem.c index dec44a4..9eddd88 100644 --- a/drivers/cdmamodem/cdmamodem.c +++ b/drivers/cdmamodem/cdmamodem.c @@ -35,6 +35,7 @@ static int cdmamodem_init(void) { cdma_voicecall_init(); + cdma_devinfo_init(); return 0; } @@ -42,6 +43,7 @@ static int cdmamodem_init(void) static void cdmamodem_exit(void) { cdma_voicecall_exit(); + cdma_devinfo_exit(); } OFONO_PLUGIN_DEFINE(cdmamodem, "CDMA AT modem driver", VERSION, diff --git a/drivers/cdmamodem/cdmamodem.h b/drivers/cdmamodem/cdmamodem.h index b085541..3f9a198 100644 --- a/drivers/cdmamodem/cdmamodem.h +++ b/drivers/cdmamodem/cdmamodem.h @@ -23,3 +23,5 @@ extern void cdma_voicecall_init(); extern void cdma_voicecall_exit(); +extern void cdma_devinfo_init(void); +extern void cdma_devinfo_exit(void); diff --git a/drivers/cdmamodem/devinfo.c b/drivers/cdmamodem/devinfo.c new file mode 100644 index 000..540c49f --- /dev/null +++ b/drivers/cdmamodem/devinfo.c @@ -0,0 +1,188 @@ +/* + * + * oFono - Open Source Telephony + * + * Copyright (C) 2008-2010 Intel Corporation. All rights reserved. + * Copyright (C) 2011 Nokia 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 +#endif + +#include +#include + +#include +#include +#include + +#include "gatchat.h" +#include "gatresult.h" + +#include "cdmamodem.h" + +static void attr_cb(gboolean ok, GAtResult *result, gpointer user_data) +{ + struct cb_data *cbd = user_data; + ofono_devinfo_query_cb_t cb = cbd->cb; + const char *prefix = cbd->user; + struct ofono_error error; + const char *attr; + + decode_at_error(&error, g_at_result_final_response(result)); + + if (!ok) { + cb(&error, NULL, cbd->data); + return; + } + + if (at_util_parse_attr(result, prefix, &attr) == FALSE) { + CALLBACK_WITH_FAILURE(cb, NULL, cbd->data); + return; + } + + cb(&error, attr, cbd->data); +} + +static void cdma_query_manufacturer(struct ofono_devinfo *info, + ofono_devinfo_query_cb_t cb, void *data) +{ + struct cb_data *cbd = cb_data_new(cb, data); + GAtChat *chat = ofono_devinfo_get_data(info); + + if (cbd == NULL) + goto error; + + cbd->user = "AT+GMI"; + + if (g_at_chat_send(chat, "AT+GMI", NULL, attr_cb, cbd, g_free) > 0) + return; + +error: + g_free(cbd); + + CALLBACK_WITH_FAILURE(cb, NULL, data); +} + +static void cdma_query_model(struct ofono_devinfo *info, + ofono_devinfo_query_cb_t cb, void *data) +{ + struct cb_data *cbd = cb_data_new(cb, data); + GAtChat *chat = ofono_devinfo_get_data(info); + + if (cbd == NULL) + goto error; + + cbd->user = "AT+GMM"; + + if (g_at_chat_send(chat, "AT+GMM", NULL, attr_cb, cbd, g_free) > 0) + return; + +error: + g_free(cbd); + + CALLBACK_WITH_FAILURE(cb, NULL, data); +} + +static void cdma_query_revision(struct ofono_devinfo *info, + ofono_devinfo_query_cb_t cb, void *data) +{ + struct cb_data *cbd = cb_data_new(cb, data); + GAtChat *chat = ofono_devinfo_get_data(info); + + if (cbd == NULL) + goto error; + + cbd->user = "AT+GMR"; + + if (g_at_chat_send(chat, "AT+GMR", NULL, attr_cb, cbd, g_free) > 0) +
[PATCH v2, 0/2] Add CDMA devinfo support
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
--- 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 -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
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
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 +- 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 + Modem Emulator == -- 1.7.1 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 2/3] include: Introduce message
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 + +#include + +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
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
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
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
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
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" +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; + + 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 u
Re: [PATCH 3/3] message: Code independent of protocol stack
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
Marcel Holtmann 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 02/21] bluetooth: Add Btio library for DUN
Hi Frédéric, On 01/12/2011 11:15 AM, Frédéric Dalleau wrote: > From: Zhenhua Zhang > > Btio library is the low level socket API for BT RFCOMM connection. We > share the same library among BlueZ, Obex and oFono. So make sure you > synchronize to other two projects when you make changes to btio.[ch]. > --- > Makefile.am |8 +- > btio/btio.c | 1299 > ++ > btio/btio.h | 97 + > configure.ac |5 + > 4 files changed, 1407 insertions(+), 2 deletions(-) > create mode 100644 btio/btio.c > create mode 100644 btio/btio.h > This patch has been applied, thanks. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v3 2/2] plugins: add ctm create to ifx plugin
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 > #include > #include > +#include > #include > > #include > @@ -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
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
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
Hi Antti, > Makefile.am|9 +++-- > src/ofono.conf |2 ++ > 2 files changed, 9 insertions(+), 2 deletions(-) > > > + > > > > > + > > > 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
> >#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
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 >> #include >> #include >> +#include >> #include >> >> #include >> @@ -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
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
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
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 R&D, Maemo Software, Helsinki ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono