RE: [PATCH] plugin: add plugin for Linktop/Teracom LW273 data card

2011-02-10 Thread Jeevaka.Badrappan
Hi Amit,

ofono-boun...@ofono.org wrote:
 Hi Amit,
 
 On 02/09/2011 10:56 AM, Amit Mendapara wrote:
 Hi Danis,
 
 I have submitted three patches as you suggested but no one has
 reviewed it. Would you tell me what else I can do to ensure it's
 been integrated in ofono? 
 
 
 So it looks like GMail is losing patches again.  Your patches
 do show up on the mailing list archives but not in my
 mailbox.  Can you resend them again, and CC my private Email as well:
 denk...@gmail.com. 

Your patches neither showed up in my GMail nor in my company outlook.
Only place it can be seen is in ofono mail archives. :(

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


Re: [RFC PATCH 1/3] call-barring: removed +CSSI type SS notifications

2011-02-10 Thread Andras Domokos

Hi Denis,

On 02/10/2011 05:04 AM, ext Denis Kenzior wrote:

Hi Andras

On 02/09/2011 04:33 AM, Andras Domokos wrote:

---
  src/call-barring.c |   74 
  1 files changed, 0 insertions(+), 74 deletions(-)

diff --git a/src/call-barring.c b/src/call-barring.c
index 649826e..84ed277 100644
--- a/src/call-barring.c
+++ b/src/call-barring.c
@@ -58,9 +58,6 @@ struct ofono_call_barring {
int ss_req_lock;
struct ofono_ssn *ssn;

You forgot to remove this part in your patch.  I applied your patch and
fixed this in a follow on patch.

Indeed I did. Thanks a lot for the fix!

struct ofono_ussd *ussd;
-   unsigned int incoming_bar_watch;
-   unsigned int outgoing_bar_watch;
-   unsigned int ssn_watch;
unsigned int ussd_watch;
const struct ofono_call_barring_driver *driver;
void *driver_data;

Regards,
-Denis

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


RE: [RFCv2] doc: Proposal for LTE/IMS API

2011-02-10 Thread Kjetil ASDAL
Hi Rémi,

Rémi wrote:
  +   The registered application is tracked, if the
  +   application exits the registration will be
  +   automatically released.
  +
  +   Related AT command: AT+EISR.
 
 Is this a standard command? As it is not in the 3GPP namespace
 (AT+C...), it
 might be nice to provide a reference pointer.

We should remove the reference above as it is incorrect. There is 
no standard AT command specified for this as of today, however, we 
will be entering a CR on 3GPP TS 27.007 in the upcoming meeting to 
address the lack of such a command.

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


Re: [PATCH] plugin: add plugin for Linktop/Teracom LW273 data card

2011-02-10 Thread Amit Mendapara
I have have sent the patches again this morning (with cc to Denis). Would
you please tell me what could be the reason here? I am sending the patches
with git-send-email like this:

git send-email --to ofono@ofono.org origin

I have configured `msmtp-mta` to send email through my GMail account.

Regards
--
Amit Mendapara

On Thu, Feb 10, 2011 at 1:32 PM, jeevaka.badrap...@elektrobit.com wrote:

 Hi Amit,

 ofono-boun...@ofono.org wrote:
  Hi Amit,
 
  On 02/09/2011 10:56 AM, Amit Mendapara wrote:
  Hi Danis,
 
  I have submitted three patches as you suggested but no one has
  reviewed it. Would you tell me what else I can do to ensure it's
  been integrated in ofono?
 
 
  So it looks like GMail is losing patches again.  Your patches
  do show up on the mailing list archives but not in my
  mailbox.  Can you resend them again, and CC my private Email as well:
  denk...@gmail.com.

 Your patches neither showed up in my GMail nor in my company outlook.
 Only place it can be seen is in ofono mail archives. :(

 Regards,
 Jeevaka


 
 Please note: This e-mail may contain confidential information
 intended solely for the addressee. If you have received this
 e-mail in error, please do not disclose it to anyone, notify
 the sender promptly, and delete the message from your system.
 Thank you.


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


[PATCH] Gprs context settings provisioning plugin

2011-02-10 Thread Jukka Saunamaki
---
 Makefile.am|3 +
 plugins/context-provisioning.c |  418 
 2 files changed, 421 insertions(+), 0 deletions(-)
 create mode 100644 plugins/context-provisioning.c

diff --git a/Makefile.am b/Makefile.am
index 42ad86f..18938b6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -347,6 +347,9 @@ builtin_sources += plugins/smart-messaging.c
 builtin_modules += push_notification
 builtin_sources += plugins/push-notification.c
 
+builtin_modules += context_provisioning
+builtin_sources += plugins/context-provisioning.c
+
 sbin_PROGRAMS = src/ofonod
 
 src_ofonod_SOURCES = $(gdbus_sources) $(builtin_sources) src/ofono.ver \
diff --git a/plugins/context-provisioning.c b/plugins/context-provisioning.c
new file mode 100644
index 000..4dcb373
--- /dev/null
+++ b/plugins/context-provisioning.c
@@ -0,0 +1,418 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2011  Nokia Corporation and/or its subsidiary(-ies).
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include config.h
+#endif
+
+#include stdlib.h
+#include string.h
+#include glib.h
+
+#include errno.h
+
+#define OFONO_API_SUBJECT_TO_CHANGE
+
+#include ofono.h
+#include ofono/modem.h
+#include ofono/gprs-provision.h
+#include ofono/types.h
+#include ofono/plugin.h
+#include ofono/log.h
+
+#define OPERATOR_SETTINGS_DIR operator-settings
+
+struct parser_data {
+   const gchar *mcc;
+   const gchar *mnc;
+   GSList *candidates;
+};
+
+struct candidate_data {
+   struct ofono_gprs_provision_data *entry;
+   gchar *spn;
+};
+
+static void candidate_data_free(struct candidate_data *cand)
+{
+   if (cand == NULL)
+   return;
+
+   if (cand-entry)
+   __ofono_gprs_provision_free_settings(cand-entry, 1);
+
+   g_free(cand-spn);
+   g_free(cand);
+}
+
+static enum ofono_gprs_context_type string_to_gprs_context_type(const char 
*str)
+{
+   if (str != NULL) {
+   if (strcasecmp(str, internet) == 0)
+   return OFONO_GPRS_CONTEXT_TYPE_INTERNET;
+   if (strcasecmp(str, mms) == 0)
+   return OFONO_GPRS_CONTEXT_TYPE_MMS;
+   if (strcasecmp(str, wap) == 0)
+   return OFONO_GPRS_CONTEXT_TYPE_WAP;
+   if (strcasecmp(str, ims) == 0)
+   return OFONO_GPRS_CONTEXT_TYPE_IMS;
+   }
+
+   return OFONO_GPRS_CONTEXT_TYPE_ANY;
+}
+
+static enum ofono_gprs_proto string_to_gprs_proto(const char *str)
+{
+   if (str != NULL) {
+   if (strcasecmp(str, ipv6) == 0)
+   return OFONO_GPRS_PROTO_IPV6;
+   if (strcasecmp(str, ipv4v6) == 0)
+   return OFONO_GPRS_PROTO_IPV6; // FIXME when possible
+   }
+
+   return OFONO_GPRS_PROTO_IP;
+}
+
+static struct candidate_data *candidate_data_new(const char *spn,
+   const struct ofono_gprs_provision_data *data)
+{
+   struct candidate_data *cand;
+   cand = g_try_malloc0(sizeof(*cand));
+   if (cand == NULL)
+   return NULL;
+
+   cand-entry = g_try_malloc0(sizeof(*cand-entry));
+   if (cand-entry == NULL) {
+   g_free(cand);
+   return NULL;
+   }
+
+   cand-spn = g_strdup(spn);
+   cand-entry-type = data-type;
+   cand-entry-apn = g_strdup(data-apn);
+   cand-entry-name = g_strdup(data-name);
+   cand-entry-username = g_strdup(data-username);
+   cand-entry-password = g_strdup(data-password);
+   cand-entry-proto = data-proto;
+   cand-entry-message_proxy = g_strdup(data-message_proxy);
+   cand-entry-message_center = g_strdup(data-message_center);
+
+   return cand;
+}
+
+/*
+ * Parse access element.
+ * Mandatory attributes in access: mcc, mnc, type, name
+ * If MCC/MNC matches, add entry to candidate entry list.
+ */
+static void settings_start_element_handler (GMarkupParseContext *context,
+   const gchar *element_name,
+   const gchar **attribute_names,
+   const gchar **attribute_values,
+   gpointer user_data,
+  

[PATCH 1/1] gatserver: Add ATS5 command feature

2011-02-10 Thread Olivier Guiter
---
 gatchat/gatserver.c |7 ++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/gatchat/gatserver.c b/gatchat/gatserver.c
index be9f79a..25b7ba4 100644
--- a/gatchat/gatserver.c
+++ b/gatchat/gatserver.c
@@ -796,6 +796,7 @@ static char *extract_line(GAtServer *p, struct ring_buffer 
*rbuf)
int line_length = 0;
gboolean in_string = FALSE;
char s3 = p-v250.s3;
+   char s5 = p-v250.s5;
char *line;
int i;
 
@@ -837,7 +838,11 @@ static char *extract_line(GAtServer *p, struct ring_buffer 
*rbuf)
if (*buf == '')
in_string = !in_string;
 
-   if ((*buf == ' ' || *buf == '\t')  in_string == FALSE)
+   if (*buf == s5) {
+   if (i != 0)
+   i -= 1;
+   }
+   else if ((*buf == ' ' || *buf == '\t')  in_string == FALSE)
; /* Skip */
else if (*buf != s3)
line[i++] = *buf;
-- 
1.7.1

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


[PATCHv2] doc: Assisted Satellite Navigation API and Agent API

2011-02-10 Thread Simon LETHBRIDGE
Hi Fred,

 + void ResetAssistanceData()
 +
 + A request has been received from the network that all
 + assistance data should be reset.  This is used for 3gpp
 + performance tests.

 Sorry to come back so late of this. By assistance data reset, you meant a 
 reset of all positioning stored information? Like used in 3GPP conformance 
 testing (44.014 ? 8.15 for instance)?
 The knowledge of positioning information is somehow Assistance information, 
 but this is not the wording I'm used to.

Yes.  Since this is a 3GPP performance test most of the stored information will 
have been received from the network as assistance data. 

The recs that I have in mind are 34.123 and 51.10 Section 70

Regards,

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


[PATCH] ifx: Remove modem selftest

2011-02-10 Thread Jeevaka Badrappan
Command used for self test is not working for all
versions of the modem firmware.
---
 plugins/ifx.c |   65 +---
 1 files changed, 2 insertions(+), 63 deletions(-)

diff --git a/plugins/ifx.c b/plugins/ifx.c
index a41fc36..527a8c4 100644
--- a/plugins/ifx.c
+++ b/plugins/ifx.c
@@ -524,7 +524,7 @@ static gboolean mux_timeout_cb(gpointer user_data)
struct ofono_modem *modem = user_data;
struct ifx_data *data = ofono_modem_get_data(modem);
 
-   ofono_error(Timeout with modem or multiplexer setup);
+   ofono_error(Timeout with multiplexer setup);
 
data-mux_init_timeout = 0;
 
@@ -539,56 +539,6 @@ static gboolean mux_timeout_cb(gpointer user_data)
return FALSE;
 }
 
-static void dev_ver_selftest_cb(gboolean ok, GAtResult *result,
-   gpointer user_data)
-{
-   struct ofono_modem *modem = user_data;
-   struct ifx_data *data = ofono_modem_get_data(modem);
-
-   if (ok)
-   return;
-
-   ofono_error(at@vers:device_version_id()-FAILED);
-
-   if (data-mux_init_timeout  0) {
-   g_source_remove(data-mux_init_timeout);
-   data-mux_init_timeout = 0;
-   }
-
-   g_at_chat_unref(data-dlcs[AUX_DLC]);
-   data-dlcs[AUX_DLC] = NULL;
-
-   g_io_channel_unref(data-device);
-   data-device = NULL;
-
-   ofono_modem_set_powered(modem, FALSE);
-}
-
-static void rtc_gti_selftest_cb(gboolean ok, GAtResult *result,
-   gpointer user_data)
-{
-   struct ofono_modem *modem = user_data;
-   struct ifx_data *data = ofono_modem_get_data(modem);
-
-   if (ok)
-   return;
-
-   ofono_error(at@rtc_drv:rtc_gti_test_verify_32khz()-FAILED);
-
-   if (data-mux_init_timeout  0) {
-   g_source_remove(data-mux_init_timeout);
-   data-mux_init_timeout = 0;
-   }
-
-   g_at_chat_unref(data-dlcs[AUX_DLC]);
-   data-dlcs[AUX_DLC] = NULL;
-
-   g_io_channel_unref(data-device);
-   data-device = NULL;
-
-   ofono_modem_set_powered(modem, FALSE);
-}
-
 static int ifx_enable(struct ofono_modem *modem)
 {
struct ifx_data *data = ofono_modem_get_data(modem);
@@ -642,24 +592,13 @@ static int ifx_enable(struct ofono_modem *modem)
g_at_chat_send(chat, ATE0 +CMEE=1, NULL,
NULL, NULL, NULL);
 
-   /* Execute modem self tests */
-   g_at_chat_send(chat, at@rtc_drv:rtc_gti_test_verify_32khz(), NULL,
-   rtc_gti_selftest_cb, modem, NULL);
-
-   g_at_chat_send(chat, at@vers:device_version_id(), NULL,
-   dev_ver_selftest_cb, modem, NULL);
-
/* Enable multiplexer */
data-frame_size = 1509;
 
g_at_chat_send(chat, AT+CMUX=0,0,,1509,10,3,30,,, NULL,
mux_setup_cb, modem, NULL);
 
-   /*
-* Total self test execution time is around 2 seconds. Use
-* 10 seconds timeout to cover self tests and multiplexer setup.
-*/
-   data-mux_init_timeout = g_timeout_add_seconds(10, mux_timeout_cb,
+   data-mux_init_timeout = g_timeout_add_seconds(5, mux_timeout_cb,
modem);
 
data-dlcs[AUX_DLC] = chat;
-- 
1.7.0.4

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


[PATCH] ifxmodem: add CNAP support

2011-02-10 Thread Jeevaka Badrappan
---
 drivers/ifxmodem/voicecall.c |   51 ++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/drivers/ifxmodem/voicecall.c b/drivers/ifxmodem/voicecall.c
index 30e6991..87a48e6 100644
--- a/drivers/ifxmodem/voicecall.c
+++ b/drivers/ifxmodem/voicecall.c
@@ -630,6 +630,56 @@ static void clip_notify(GAtResult *result, gpointer 
user_data)
ofono_voicecall_notify(vc, call);
 }
 
+static void cnap_notify(GAtResult *result, gpointer user_data)
+{
+   struct ofono_voicecall *vc = user_data;
+   struct voicecall_data *vd = ofono_voicecall_get_data(vc);
+   GAtResultIter iter;
+   const char *name;
+   int validity;
+   GSList *l;
+   struct ofono_call *call;
+
+   /*
+* Currently, its not clear which URC will contain the
+* calling party name for the waiting call.
+*/
+   l = g_slist_find_custom(vd-calls,
+   GINT_TO_POINTER(CALL_STATUS_INCOMING),
+   at_util_call_compare_by_status);
+   if (l == NULL) {
+   ofono_error(CNAP for unknown call);
+   return;
+   }
+
+   g_at_result_iter_init(iter, result);
+
+   if (!g_at_result_iter_next(iter, +CNAP:))
+   return;
+
+   if (!g_at_result_iter_next_string(iter, name))
+   return;
+
+   if (strlen(name)  0)
+   validity = CNAP_VALIDITY_VALID;
+   else
+   validity = CNAP_VALIDITY_NOT_AVAILABLE;
+
+   /* If we have CNI validity field, override our guessed value */
+   g_at_result_iter_next_number(iter, validity);
+
+   DBG(%s %d, name, validity);
+
+   call = l-data;
+
+   strncpy(call-name, name, OFONO_MAX_CALLER_NAME_LENGTH);
+   call-name[OFONO_MAX_CALLER_NAME_LENGTH] = '\0';
+   call-cnap_validity = validity;
+
+   if (call-type == 0)
+   ofono_voicecall_notify(vc, call);
+}
+
 static void ccwa_notify(GAtResult *result, gpointer user_data)
 {
struct ofono_voicecall *vc = user_data;
@@ -746,6 +796,7 @@ static void ifx_voicecall_initialized(gboolean ok, 
GAtResult *result,
 
g_at_chat_register(vd-chat, +CRING:, cring_notify, FALSE, vc, NULL);
g_at_chat_register(vd-chat, +CLIP:, clip_notify, FALSE, vc, NULL);
+   g_at_chat_register(vd-chat, +CNAP:, cnap_notify, FALSE, vc, NULL);
g_at_chat_register(vd-chat, +CCWA:, ccwa_notify, FALSE, vc, NULL);
g_at_chat_register(vd-chat, +XEM:, xem_notify, FALSE, vc, NULL);
g_at_chat_register(vd-chat, +XCALLSTAT:, xcallstat_notify,
-- 
1.7.0.4

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


Re: [PATCH] ifx: Remove modem selftest

2011-02-10 Thread Marcel Holtmann
Hi Jeevaka,

 Command used for self test is not working for all
 versions of the modem firmware.
 ---
  plugins/ifx.c |   65 +---
  1 files changed, 2 insertions(+), 63 deletions(-)

patch has been applied. Thanks for taking care of this.

Regards

Marcel


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


[PATCH] hfp: Don't reply to crashed bluetoothd

2011-02-10 Thread Daniel Wagner
In case bluetoothd crashes randomly the data pointer can
be NULL. So we shouldn't derefernce it.
---
 plugins/hfp.c |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/plugins/hfp.c b/plugins/hfp.c
index 12d3457..acb297f 100644
--- a/plugins/hfp.c
+++ b/plugins/hfp.c
@@ -569,6 +569,9 @@ static void hfp_connect_reply(DBusPendingCall *call, 
gpointer user_data)
 
DBG(Connect reply: %s, derr.message);
 
+   if (data == NULL)
+   goto poweroff;
+
if (dbus_error_has_name(derr, DBUS_ERROR_NO_REPLY)) {
msg = dbus_message_new_method_call(BLUEZ_SERVICE,
data-handsfree_path,
@@ -579,6 +582,7 @@ static void hfp_connect_reply(DBusPendingCall *call, 
gpointer user_data)
g_dbus_send_message(connection, msg);
}
 
+poweroff:
ofono_modem_set_powered(modem, FALSE);
 
dbus_error_free(derr);
-- 
1.7.3.3

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


[RFCv3] doc: Proposal for LTE/IMS API

2011-02-10 Thread Sjur Brændeland
From: Sjur Brændeland sjur.brandel...@stericsson.com

With latest changes the P-CSCF addresses from ISIM can be read
from the IpMultimediaIdentity objects and the P-CSCF addresses
returned as dynamic parameters for the PDN Connection are avilable
in the ConnectionContext object.

I have also added LocalAddress to the IMS QoS SIP PreCondiction check.
The Local IP address identifies the APN, so that PreCondition check
in effect can be done per IMS APN.

Changes from RFC-v2:
- Moved P-CSCF addresses to the IpMultimediaIdentity object
- Fixed object path descriptions
- IMS Registration types is now an array of strings
- Fixed bad parameters to UnRegister
- Added LocalAddress to PreConditionCheck
- Added P-CSCF addresses to the ConnectionContext object
---
 doc/connman-api.txt |   18 ++
 doc/ims-api.txt |  148 +++
 2 files changed, 166 insertions(+), 0 deletions(-)
 create mode 100644 doc/ims-api.txt

diff --git a/doc/connman-api.txt b/doc/connman-api.txt
index 22c59dc..314c018 100644
--- a/doc/connman-api.txt
+++ b/doc/connman-api.txt
@@ -249,3 +249,21 @@ Properties boolean Active [readwrite]
string MessageCenter [readwrite, MMS only]
 
Holds the MMSC setting.
+
+   array{string} PcscfAddresses [readonly,optional]
+
+   For ConnectionContext with Type = ims this
+   property holds the Domain Names or IP Addresses
+   of the SIP Proxy, called Proxy Call Session Control
+   Function (P-CSCF).
+
+   The P-CSCF addresses are returned in EPS signaling as
+   part of the Default Bearer setup for the IMS APN. The
+   addresses may be of type IPv4 and/or IPv6.
+
+   Related AT command: AT+CGCONTRDP
+
+   NOTE:   The P-CSCF addresses read from ISIM, is
+   available in the IpMultimediaIdentity
+   object. It is up to the IMS application to
+   choose the P-CSCF to use.
diff --git a/doc/ims-api.txt b/doc/ims-api.txt
new file mode 100644
index 000..9030457
--- /dev/null
+++ b/doc/ims-api.txt
@@ -0,0 +1,148 @@
+Ip Multimedia Subsystem hierarchy [experimental]
+=
+
+Serviceorg.ofono
+Interface  org.ofono.IpMultimediaSubsystem
+Object path[variable prefix]/{modem0,modem1,...}
+
+Methodsdict GetProperties()
+
+   Returns all IMS properties. See the
+   properties section for available properties.
+
+   void Register(array{string} types)
+
+   Registers an IMS Application. It must register
+   with at least one of the types: voice or messaging.
+   In future video (Conversational Video, Live
+   Streaming) should be added. This registration will
+   inform the modem's radio stack that the IMS application
+   has registered for Voice and/or Messaging over IMS.
+   This registration may impact UE Mode of operation
+   and the ISR feature in the radio stack.
+
+   The registered application is tracked, if the
+   application exits the registration will be
+   automatically released.
+
+   Possible Errors: [service].Error.InvalidArguments
+
+   void UnRegister()
+
+   Un-registers a previously registered IMS application.
+
+   boolean PreConditionCheck(string Type, string PeerAddress,
+   uint16 PeerPort, string LocalAddress,
+   uint16 LocalPort)
+
+   This method is used by the IMS application to check
+   if the QoS SIP precondition is fulfilled.
+
+   The IMS application should call this method when
+   receiving a PreConditionChanged() signal.
+   The IMS Application is not allowed to start alerting
+   before it has confirmed that it has a voice-ready
+   Dedicated Bearer and QoS set up in the network.
+
+   The legal parameter for Type currently is currently
+   voice only. In future video (Conversational Video,
+   Live Streaming) will be added.
+
+   PeerAddress and LocalAddress can be IPv4 or IPv6
+   address. PeerPort and LocalPort is the RTP port
+   used for the media stream.
+
+   This method returns true if the Traffic Flow Template
+

[RFC v2] ifxmodem: Integration with n_gsm kernel mux and its line discipline

2011-02-10 Thread Robertino Benis
RFC v2: Suggested way of integrating Infineon MAL with upcoming kernel mux 
(n_gsm)

---
 drivers/ifxmodem/gprs-context.c |   70 +-
 include/gsmmux.h|   40 ++
 plugins/ifx.c   |   70 +++---
 3 files changed, 165 insertions(+), 15 deletions(-)
 create mode 100644 include/gsmmux.h

diff --git a/drivers/ifxmodem/gprs-context.c b/drivers/ifxmodem/gprs-context.c
index 2c68b44..3217492 100644
--- a/drivers/ifxmodem/gprs-context.c
+++ b/drivers/ifxmodem/gprs-context.c
@@ -27,8 +27,14 @@
 #include string.h
 #include stdlib.h
 #include stdio.h
+#include string.h
 #include errno.h
 #include sys/stat.h
+#include sys/ioctl.h
+#include net/if.h
+#include linux/types.h
+#include arpa/inet.h
+#include linux/if_ether.h
 
 #include glib.h
 
@@ -40,6 +46,7 @@
 #include gatresult.h
 #include gatrawip.h
 
+#include gsmmux.h
 #include ifxmodem.h
 
 #define TUN_SYSFS_DIR /sys/devices/virtual/misc/tun
@@ -63,6 +70,7 @@ struct gprs_context_data {
char username[OFONO_GPRS_MAX_USERNAME_LENGTH + 1];
char password[OFONO_GPRS_MAX_PASSWORD_LENGTH + 1];
GAtRawIP *rawip;
+   gboolean use_ofono_mux;
enum state state;
char address[32];
char dns1[32];
@@ -79,7 +87,43 @@ static void rawip_debug(const char *str, void *data)
ofono_info(%s: %s, (const char *) data, str);
 }
 
-static const char *setup_rawip(struct ofono_gprs_context *gc)
+static const char *setup_rawip_kmux(struct ofono_gprs_context *gc)
+{
+   struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
+   struct gsm_netconfig netconfig = { 0 };
+   int fd;
+   int n;
+   char *interface = NULL;
+   char ifname[IFNAMSIZ];
+
+   DBG();
+   memset(netconfig, 0, sizeof(struct gsm_netconfig));
+
+   fd = g_io_channel_unix_get_fd(g_at_chat_get_channel(gcd-chat));
+   ofono_info(Got file descriptor: %d, fd);
+
+   g_at_chat_suspend(gcd-chat);
+
+   netconfig.adaption = 3;
+   netconfig.protocol = htons(ETH_P_IP);
+   n = ioctl(fd, GSMIOC_ENABLE_NET, netconfig);
+   if (n  0) {
+   ofono_error(Cannot enable network on the mux: %d, n);
+   return NULL;
+   }
+   ofono_info(Net index: %d, n);
+
+   interface = if_indextoname(n, ifname);
+   if (interface == NULL) {
+   ofono_error(Interface index %d error %d error msg %s, n, 
errno, strerror(errno));
+   return NULL;
+   }
+   ofono_info(Interface name: %s, interface);
+
+   return interface;
+}
+
+static const char *setup_rawip_internal(struct ofono_gprs_context *gc)
 {
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
GAtIO *io;
@@ -153,7 +197,14 @@ static void session_cb(gboolean ok, GAtResult *result, 
gpointer user_data)
dns[1] = gcd-dns2;
dns[2] = 0;
 
-   interface = setup_rawip(gc);
+   if (gcd-use_ofono_mux == FALSE) {
+   ofono_info(Calling setup_rawip_kmux());
+   interface = setup_rawip_kmux(gc);
+   }
+   else {
+   ofono_info(Calling setup_rawip_internal());
+   interface = setup_rawip_internal(gc);
+   }
if (interface == NULL)
interface = invalid;
 
@@ -436,7 +487,9 @@ static int ifx_gprs_context_probe(struct ofono_gprs_context 
*gc,
unsigned int vendor, void *data)
 {
GAtChat *chat = data;
+   const char *ldisc;
struct gprs_context_data *gcd;
+   struct ofono_modem *modem;
struct stat st;
 
DBG();
@@ -455,6 +508,19 @@ static int ifx_gprs_context_probe(struct 
ofono_gprs_context *gc,
 
gcd-chat = g_at_chat_clone(chat);
 
+   modem = ofono_gprs_context_get_modem(gc);
+   ldisc = ofono_modem_get_string(modem, LineDiscipline);
+
+   ofono_info(Got LineDiscipline variable from udev: %s, ldisc);
+   if (ldisc != NULL) {
+   ofono_info(setting up to use kernel mux for data);
+   gcd-use_ofono_mux = FALSE;
+   }
+   else {
+   ofono_info(setting up to use user space mux for data);
+   gcd-use_ofono_mux = TRUE;
+   }
+
ofono_gprs_context_set_data(gc, gcd);
 
chat = g_at_chat_get_slave(gcd-chat);
diff --git a/include/gsmmux.h b/include/gsmmux.h
new file mode 100644
index 000..d1880e7
--- /dev/null
+++ b/include/gsmmux.h
@@ -0,0 +1,40 @@
+#ifndef _LINUX_GSMMUX_H
+#define _LINUX_GSMMUX_H
+
+// #include linux/if.h
+#if !defined(IFNAMSIZ)
+#define IFNAMSIZ16
+#endif
+
+struct gsm_config {
+   unsigned int adaption;
+   unsigned int encapsulation;
+   unsigned int initiator;
+   unsigned int t1;
+   unsigned int t2;
+   unsigned int t3;
+   unsigned int n2;
+   unsigned int mru;
+   unsigned int mtu;
+   unsigned int k;
+   unsigned int i;
+   

use phonesim to receive incoming call

2011-02-10 Thread cy xie
Hi,
  I have some questions about phonesim.
I want to create voice call in emulator, and receive the call in the
emulator also.
Can phonesim  do that? if the phonesim can finish this, please help me or
give some details.
Thanks very much.



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


Issue with GPRS not attached?

2011-02-10 Thread Robertino Benis
Hi there,

Has anyone seen this issue with oFono:
Error activating /ifx0/context1: org.ofono.Error.NotAttached: GPRS is
not attached

I am using IFX modem with specific hardware board. I have not seen this
issue before. I was using latest oFono from git (cloned sometimes on
Thursday, Feb 10, 2011). Maybe SIM card changed features? :-) 

[root@localhost test]# ./list-contexts
[ /ifx0 ]
[ /ifx0/context1 ]
Username = 
Protocol = ip
Name = Internet
Settings = { }
Active = 0
AccessPointName = wap.cingular
Password = 
Type = internet
[root@localhost test]# 

Context has been created, and APN was added. Log file did not look
suspicious, so it should run fine. 

However, when I try 
[root@localhost test]# ./enable-gprs 
Connecting modem /ifx0...
[root@localhost test]#

- no error

But

[root@localhost test]# ./activate-context 
Error activating /ifx0/context1: org.ofono.Error.NotAttached: GPRS is
not attached

GPRS driver was successful loaded, and several GPRS channels created
during the ifx_enable(), from plugin. Each GPRS context seems to be
added properly. 

I have not seen any particular error in the log, that would hint
something more solid. 

Connman does not see the celular profile, as well.

Thanks for hints,
-- r.  

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


Re: Issue with GPRS not attached?

2011-02-10 Thread Marcel Holtmann
Hi Robertino,

 Has anyone seen this issue with oFono:
 Error activating /ifx0/context1: org.ofono.Error.NotAttached: GPRS is
 not attached

this normally does mean exactly what it says. You are not attached to
the GPRS network. If not attached you can not establish any GPRS
connection.

 I am using IFX modem with specific hardware board. I have not seen this
 issue before. I was using latest oFono from git (cloned sometimes on
 Thursday, Feb 10, 2011). Maybe SIM card changed features? :-) 
 
 [root@localhost test]# ./list-contexts
 [ /ifx0 ]
 [ /ifx0/context1 ]
 Username = 
 Protocol = ip
 Name = Internet
 Settings = { }
 Active = 0
 AccessPointName = wap.cingular
 Password = 
 Type = internet
 [root@localhost test]# 
 
 Context has been created, and APN was added. Log file did not look
 suspicious, so it should run fine. 
 
 However, when I try 
 [root@localhost test]# ./enable-gprs 
 Connecting modem /ifx0...
 [root@localhost test]#
 
 - no error
 
 But
 
 [root@localhost test]# ./activate-context 
 Error activating /ifx0/context1: org.ofono.Error.NotAttached: GPRS is
 not attached

You might wanna check with list-modem if you are actually registered to
the CS network and then if so if the PS network is attached or not.

 GPRS driver was successful loaded, and several GPRS channels created
 during the ifx_enable(), from plugin. Each GPRS context seems to be
 added properly. 

Of course that is just fine. This does not involve any network activity.
It just adds the atoms.

Regards

Marcel


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