RE: [PATCH] plugin: add plugin for Linktop/Teracom LW273 data card
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
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
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
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
--- 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
--- 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
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
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
--- 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
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
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
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
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
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?
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?
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