[PATCH 00/12] Basic E911 support
by Jarko Poutiainen
Hi,
This is third attempt to provide implementation for basic E911 support.
Br,
Jarko
Jarko Poutiainen (12):
dbus: add gnss interface definition
include: add gnss.h file
src: add atom type for gnss
src: add gnss atom and agent implementation
gatchat: introduce send for +CPOS
gatchat: new hint to handle +CPOS
gatchat: implementation for +CPOS send
gatchat: fix gatsyntax to support +CPOS
atmodem: add gnss driver
ste: add support for gnss
ofono.conf: add positioning agent interface
test: add test-gnss
Makefile.am | 12 +-
drivers/atmodem/atmodem.c | 2 +
drivers/atmodem/atmodem.h | 3 +
drivers/atmodem/gnss.c | 282 +++++++++++++++++++++++++++++++++
gatchat/gatchat.c | 37 ++++-
gatchat/gatchat.h | 8 +
gatchat/gatsyntax.c | 27 +++
gatchat/gatsyntax.h | 3 +-
include/dbus.h | 2 +
include/gnss.h | 69 ++++++++
plugins/ste.c | 8 +-
src/gnss.c | 386 +++++++++++++++++++++++++++++++++++++++++++++
src/gnssagent.c | 158 ++++++++++++++++++
src/gnssagent.h | 43 +++++
src/ofono.conf | 1 +
src/ofono.h | 2 +
test/test-gnss | 91 +++++++++++
17 files changed, 1123 insertions(+), 11 deletions(-)
create mode 100644 drivers/atmodem/gnss.c
create mode 100644 include/gnss.h
create mode 100644 src/gnss.c
create mode 100644 src/gnssagent.c
create mode 100644 src/gnssagent.h
create mode 100755 test/test-gnss
11 years, 3 months
(no subject)
by Mika Liljeberg
Hi,
Subject says it all.
MikaL
[PATCH 1/1] isimodem: fix operator name reading with old ISI modems
11 years, 3 months
[PATCH] Update overview.txt: add GPS/Location Services feature information
by Bertrand Aygon
---
doc/overview.txt | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/doc/overview.txt b/doc/overview.txt
index 1924875..7a234ce 100644
--- a/doc/overview.txt
+++ b/doc/overview.txt
@@ -145,6 +145,12 @@ Current implemented features:
supplementary service control string and user/network initiated
unstructured supplementary service data (USSD).
+ GPS/Location Services
+
+ oFono provide a Location Reporting interface and an Assisted
+ Satellite Navigation interface to take advantage of GPS
+ capabilities of latest modem.
+
Work in progress features:
GPRS
--
1.7.1
---------------------------------------------------------------------
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.
11 years, 3 months
[PATCH 4/4] test-stk-menu: Extend to support DisplayAbortableActionInfo
by Philippe Nunes
---
test/test-stk-menu | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/test/test-stk-menu b/test/test-stk-menu
index 639fe77..6c1774f 100755
--- a/test/test-stk-menu
+++ b/test/test-stk-menu
@@ -198,6 +198,16 @@ class StkAgent(dbus.service.Object):
print "Text: %s" % (text)
print "Icon: %d" % (icon)
+ @dbus.service.method("org.ofono.SimToolkitAgent",
+ in_signature="sy", out_signature="")
+ def DisplayAbortableActionInfo(self, text, icon):
+ print "Text: (%s)" % (text)
+ print "Icon: (%d)" % (icon)
+ key = raw_input("Press 't' to terminate the session ")
+
+ if key == 't':
+ raise EndSession("User wishes to terminate session")
+
def property_changed(name, value):
print "SimToolKit property: %s changed to '%s'" % (name, value)
--
1.7.1
11 years, 3 months
[PATCH 3/4] stkagent: Call the new display method when user termination is allowed
by Philippe Nunes
---
src/stkagent.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/stkagent.h | 10 +++++++++
2 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/src/stkagent.c b/src/stkagent.c
index 2395182..bbc10fe 100644
--- a/src/stkagent.c
+++ b/src/stkagent.c
@@ -1081,3 +1081,65 @@ int stk_agent_confirm_launch_browser(struct stk_agent *agent, const char *text,
return 0;
}
+
+static void abortable_action_info_cb(DBusPendingCall *call, void *data)
+{
+ struct stk_agent *agent = data;
+ stk_agent_user_termination_cb cb = agent->user_cb;
+ DBusMessage *reply = dbus_pending_call_steal_reply(call);
+ enum stk_agent_result result;
+ gboolean remove_agent;
+
+ if (check_error(agent, reply,
+ ALLOWED_ERROR_TERMINATE, &result) == -EINVAL) {
+ remove_agent = TRUE;
+ goto error;
+ }
+
+ if (dbus_message_get_args(reply, NULL, DBUS_TYPE_INVALID) == FALSE) {
+ ofono_error("Can't parse the reply to "
+ "DisplayAbortableActionInfo()");
+ remove_agent = TRUE;
+ goto error;
+ }
+
+ cb(result, agent->user_data);
+ goto done;
+
+ CALLBACK_END();
+}
+
+int stk_agent_display_abortable_action_info(struct stk_agent *agent,
+ const char *text,
+ const struct stk_icon_id *icon,
+ stk_agent_user_termination_cb cb,
+ void *user_data,
+ ofono_destroy_func destroy)
+{
+ DBusConnection *conn = ofono_dbus_get_connection();
+
+ agent->msg = dbus_message_new_method_call(agent->bus, agent->path,
+ OFONO_SIM_APP_INTERFACE,
+ "DisplayAbortableActionInfo");
+ if (agent->msg == NULL)
+ return -ENOMEM;
+
+ dbus_message_append_args(agent->msg,
+ DBUS_TYPE_STRING, &text,
+ DBUS_TYPE_BYTE, &icon->id,
+ DBUS_TYPE_INVALID);
+
+ if (dbus_connection_send_with_reply(conn, agent->msg, &agent->call,
+ 0) == FALSE ||
+ agent->call == NULL)
+ return -EIO;
+
+ agent->user_cb = cb;
+ agent->user_data = user_data;
+ agent->user_destroy = destroy;
+
+ dbus_pending_call_set_notify(agent->call, abortable_action_info_cb,
+ agent, NULL);
+
+ return 0;
+}
diff --git a/src/stkagent.h b/src/stkagent.h
index 1f0c4fa..ec6fa9b 100644
--- a/src/stkagent.h
+++ b/src/stkagent.h
@@ -60,6 +60,9 @@ typedef void (*stk_agent_string_cb)(enum stk_agent_result result,
typedef void (*stk_agent_tone_cb)(enum stk_agent_result result,
void *user_data);
+typedef void (*stk_agent_user_termination_cb)(enum stk_agent_result result,
+ void *user_data);
+
struct stk_agent *stk_agent_new(const char *path, const char *sender,
ofono_bool_t remove_on_terminate);
@@ -147,3 +150,10 @@ int stk_agent_confirm_launch_browser(struct stk_agent *agent, const char *text,
void *user_data,
ofono_destroy_func destroy,
int timeout);
+
+int stk_agent_display_abortable_action_info(struct stk_agent *agent,
+ const char *text,
+ const struct stk_icon_id *icon,
+ stk_agent_user_termination_cb cb,
+ void *user_data,
+ ofono_destroy_func destroy);
--
1.7.1
11 years, 3 months
[PATCH 0/4] Introduce a new method to display abortable information
by Philippe Nunes
When an alpha Id is provided by the UICC, the proactive commands such as
Send DTMF, Open Channel, Close Channel, Send Data, Receive Data require to
display this information but also to handle a possible user termination
(user decides to end the session). A new method is added for this purpose.
Philippe Nunes (4):
stk-api.txt: Introduce a new API to display abortable information
stk: Handle user termination for Send DTMF.
stkagent: Call the new display method when user termination is
allowed
test-stk-menu: Extend to support the new method
DisplayAbortableActionInfo
doc/stk-api.txt | 11 +++++++++
src/stk.c | 30 ++++++++++++++++++++-----
src/stkagent.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/stkagent.h | 10 ++++++++
test/test-stk-menu | 10 ++++++++
5 files changed, 117 insertions(+), 6 deletions(-)
11 years, 3 months
[PATCH] Update overview.txt: add SIM retry counter support information.
by Bertrand Aygon
---
doc/overview.txt | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/doc/overview.txt b/doc/overview.txt
index 6b53f14..1924875 100644
--- a/doc/overview.txt
+++ b/doc/overview.txt
@@ -109,7 +109,8 @@ Current implemented features:
SIM PIN handling
SIM PIN locks, network and service provider locks are
- supported.
+ supported. The SIM Manager also handles retry counter for PIN,
+ PIN2, PUK and PUK2.
Cell Broadcast
--
1.7.1
---------------------------------------------------------------------
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.
11 years, 3 months
[PATCH] Update overview.txt: update GPRS features with IPv6 context support in progress.
by Bertrand Aygon
---
doc/overview.txt | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/doc/overview.txt b/doc/overview.txt
index 244b4ff..6b53f14 100644
--- a/doc/overview.txt
+++ b/doc/overview.txt
@@ -120,8 +120,8 @@ Current implemented features:
GPRS
GPRS data connections are fully supported by oFono. Multiple
- active GPRS contexts are supported, but IPv6 context support is
- currently missing.
+ active GPRS contexts are supported. IPv6 context support is
+ in progress.
Radio Access Settings
@@ -146,6 +146,8 @@ Current implemented features:
Work in progress features:
+ GPRS
+ IPv6 PS context support is under development.
Not implemented features:
--
1.7.1
---------------------------------------------------------------------
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.
11 years, 3 months
[PATCH] Update overview.txt: move USSD from work in progress section to implemented section.
by Bertrand Aygon
---
doc/overview.txt | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/doc/overview.txt b/doc/overview.txt
index 2a30e0b..244b4ff 100644
--- a/doc/overview.txt
+++ b/doc/overview.txt
@@ -138,12 +138,15 @@ Current implemented features:
operation status. Information on the Sim Toolkit feature
list can be found in features.txt.
+ Supplementary Services
+
+ The Supplementary Services interface handles both recognized
+ supplementary service control string and user/network initiated
+ unstructured supplementary service data (USSD).
+
Work in progress features:
- USSD
- User initiated USSD support is available, but not
- network-initiated USSD support.
Not implemented features:
--
1.7.1
---------------------------------------------------------------------
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.
11 years, 3 months
[PATCH] dun: Add ATX command in emulator (X0 only)
by Olivier Guiter
---
src/emulator.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 56 insertions(+), 1 deletions(-)
diff --git a/src/emulator.c b/src/emulator.c
index c84f0a9..101d6b8 100644
--- a/src/emulator.c
+++ b/src/emulator.c
@@ -177,6 +177,59 @@ error:
g_at_server_send_final(em->server, G_AT_SERVER_RESULT_ERROR);
}
+static gboolean get_result_value(GAtServer *server, GAtResult *result,
+ int min, int max, int *value)
+{
+ GAtResultIter iter;
+ int val;
+
+ g_at_result_iter_init(&iter, result);
+
+ if (!g_at_result_iter_next(&iter, ""))
+ return FALSE;
+
+ if (!g_at_result_iter_next_number(&iter, &val))
+ return FALSE;
+
+ if (val < min || val > max)
+ return FALSE;
+
+ if (value != NULL)
+ *value = val;
+
+ return TRUE;
+}
+
+static void at_x_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
+{
+ switch (type) {
+ case G_AT_SERVER_REQUEST_TYPE_SET:
+ if (!get_result_value(server, result, 0, 0, NULL)) {
+ g_at_server_send_final(server,
+ G_AT_SERVER_RESULT_ERROR);
+ return;
+ }
+ /* the value is not stored, as there's only one choice */
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
+ break;
+
+ case G_AT_SERVER_REQUEST_TYPE_QUERY:
+ g_at_server_send_info(server, "000", TRUE);
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
+ break;
+
+ case G_AT_SERVER_REQUEST_TYPE_SUPPORT:
+ g_at_server_send_info(server, "X: (0-0)", TRUE);
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
+ break;
+
+ default:
+ g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
+ break;
+ }
+}
+
static void brsf_cb(GAtServer *server, GAtServerRequestType type,
GAtResult *result, gpointer user_data)
{
@@ -466,8 +519,10 @@ void ofono_emulator_register(struct ofono_emulator *em, int fd)
__ofono_atom_register(em->atom, emulator_unregister);
- if (em->type == OFONO_EMULATOR_TYPE_DUN)
+ if (em->type == OFONO_EMULATOR_TYPE_DUN) {
g_at_server_register(em->server, "D", dial_cb, em, NULL);
+ g_at_server_register(em->server, "X", at_x_cb, em, NULL);
+ }
else if (em->type == OFONO_EMULATOR_TYPE_HFP)
g_at_server_set_echo(em->server, FALSE);
}
--
1.7.1
11 years, 3 months