* Read/Write EFcfis/EFcphs-cff files
@ 2010-11-26 6:23 Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 1/7] simutil: Add EFcfis and EFcphs-cff file Ids Jeevaka Badrappan
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1038 bytes --]
Hi,
This patch reads and writes the call forwarding unconditional status
from and to the SIM depending on the SIM file availability.
New property needs to be added due to the fact that number won't be
available from the cphs-cff file.
Incase of SIM, EFcphs-cff file holds call forwarding status and it
is represented as a flag. In case of USIM(EFcfis), we have the status
flag and also number.So, adding new property for status and using the
existing VoiceUnconditional with number will work for both SIM and USIM cases.
Other option is to have 2 properties, "VoiceUnconditional" and "Number".
"VoiceUnconditional" will have the status of the call forwarding( "enabled",
"disabled") whereas the "Number" property will have the call forwared number.
offline-online state transitions results in caching the call forwaring status
every time. To avoid this, call forwarding atom is moved to the post sim and
its moved also due to the fact that call forwarding status doesn't change in
roaming.
Regards,
Jeevaka
^ permalink raw reply [flat|nested] 11+ messages in thread
* [RFC 1/7] simutil: Add EFcfis and EFcphs-cff file Ids
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
@ 2010-11-26 6:23 ` Jeevaka Badrappan
2010-11-27 17:50 ` Denis Kenzior
2010-11-26 6:23 ` [RFC 2/7] call-forwarding: Read/Write cfis/cphs-cff Jeevaka Badrappan
` (5 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 750 bytes --]
---
src/simutil.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/simutil.h b/src/simutil.h
index 5b56099..92b2e0f 100644
--- a/src/simutil.h
+++ b/src/simutil.h
@@ -25,6 +25,7 @@ enum sim_fileid {
SIM_EFIMG_FILEID = 0x4F20,
SIM_EFLI_FILEID = 0x6f05,
SIM_EF_CPHS_MWIS_FILEID = 0x6f11,
+ SIM_EF_CPHS_CFF_FILEID = 0x6f13,
SIM_EF_CPHS_INFORMATION_FILEID = 0x6f16,
SIM_EF_CPHS_MBDN_FILEID = 0x6f17,
SIM_EFUST_FILEID = 0x6f38,
@@ -42,6 +43,7 @@ enum sim_fileid {
SIM_EFMBDN_FILEID = 0x6fc7,
SIM_EFMBI_FILEID = 0x6fc9,
SIM_EFMWIS_FILEID = 0x6fca,
+ SIM_EFCFIS_FILEID = 0x6fcb,
SIM_EFSPDI_FILEID = 0x6fcd,
SIM_EFECC_FILEID = 0x6fb7,
SIM_EFCBMIR_FILEID = 0x6f50,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC 2/7] call-forwarding: Read/Write cfis/cphs-cff
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 1/7] simutil: Add EFcfis and EFcphs-cff file Ids Jeevaka Badrappan
@ 2010-11-26 6:23 ` Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 3/7] ifx: Move call forwarding to post sim Jeevaka Badrappan
` (4 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 10994 bytes --]
---
src/call-forwarding.c | 260 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 248 insertions(+), 12 deletions(-)
diff --git a/src/call-forwarding.c b/src/call-forwarding.c
index 715ce02..6d65400 100644
--- a/src/call-forwarding.c
+++ b/src/call-forwarding.c
@@ -34,6 +34,7 @@
#include "ofono.h"
#include "common.h"
+#include "simutil.h"
#define CALL_FORWARDING_FLAG_CACHED 0x1
@@ -58,6 +59,12 @@ struct ofono_call_forwarding {
int query_next;
int query_end;
struct cf_ss_request *ss_req;
+ struct ofono_sim *sim;
+ unsigned char cfis_record_id;
+ unsigned char cfis_indicator;
+ ofono_bool_t cphs_cff_present;
+ ofono_bool_t voiceunconditional;
+ ofono_bool_t online;
struct ofono_ussd *ussd;
unsigned int ussd_watch;
const struct ofono_call_forwarding_driver *driver;
@@ -202,6 +209,70 @@ static const char *cf_type_lut[] = {
"AllConditional"
};
+static void sim_set_cf_indicator(struct ofono_call_forwarding *cf)
+{
+ gboolean cfu_voice = FALSE;
+ struct ofono_call_forwarding_condition *cond = NULL;
+ GSList *l;
+
+ /*
+ * For now we only support Voice, although Fax & all Data
+ * basic services are applicable as well.
+ */
+ for (l = cf->cf_conditions[0]; l; l = l->next) {
+ cond = l->data;
+
+ if ((cond->cls & BEARER_CLASS_VOICE) &&
+ (strlen(cond->phone_number.number) > 0)) {
+ cfu_voice = TRUE;
+ break;
+ }
+ }
+
+ if (cfu_voice == cf->voiceunconditional)
+ return;
+
+ cf->voiceunconditional = cfu_voice;
+
+ if (cf->cfis_record_id) {
+ unsigned char data[16];
+ int number_len;
+
+ memset(data, 0xff, sizeof(data));
+
+ /* Profile Identifier */
+ data[0] = 0x01;
+
+ if (cfu_voice) {
+ number_len = strlen(cond->phone_number.number);
+
+ /* CFU indicator Status - Voice */
+ data[1] = (cf->cfis_indicator |= 0x01);
+ number_len = (number_len + 1) / 2;
+ data[2] = number_len + 1;
+ data[3] = cond->phone_number.type;
+
+ sim_encode_bcd_number(cond->phone_number.number,
+ data + 4);
+
+ } else
+ data[1] = (cf->cfis_indicator &= 0xFE);
+
+ ofono_sim_write(cf->sim, SIM_EFCFIS_FILEID,
+ NULL, OFONO_SIM_FILE_STRUCTURE_FIXED,
+ cf->cfis_record_id, data, sizeof(data), cf);
+ return;
+ }
+
+ if (cf->cphs_cff_present) {
+ unsigned char cff_voice = cfu_voice ? 0x0A : 0x05;
+
+ ofono_sim_write(cf->sim, SIM_EF_CPHS_CFF_FILEID,
+ NULL, OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
+ 0, &cff_voice, sizeof(cff_voice), cf);
+ }
+}
+
static void set_new_cond_list(struct ofono_call_forwarding *cf,
int type, GSList *list)
{
@@ -365,6 +436,7 @@ static DBusMessage *cf_get_properties_reply(DBusMessage *msg,
DBusMessageIter iter;
DBusMessageIter dict;
int i;
+ dbus_bool_t status;
reply = dbus_message_new_method_return(msg);
@@ -382,6 +454,10 @@ static DBusMessage *cf_get_properties_reply(DBusMessage *msg,
BEARER_CLASS_VOICE,
cf_type_lut[i]);
+ status = cf->voiceunconditional;
+ ofono_dbus_dict_append(&dict, "VoiceUnconditionalStatus", DBUS_TYPE_BOOLEAN,
+ &status);
+
dbus_message_iter_close_container(&iter, &dict);
return reply;
@@ -406,7 +482,15 @@ static void get_query_cf_callback(const struct ofono_error *error, int total,
}
if (cf->query_next == CALL_FORWARDING_TYPE_NOT_REACHABLE) {
- DBusMessage *reply = cf_get_properties_reply(cf->pending, cf);
+ DBusMessage *reply;
+
+ /*
+ * This is to make sure the information received from
+ * network is in sync with the information present in SIM/USIM
+ */
+ sim_set_cf_indicator(cf);
+
+ reply = cf_get_properties_reply(cf->pending, cf);
__ofono_dbus_pending_reply(&cf->pending, reply);
return;
}
@@ -436,6 +520,9 @@ static DBusMessage *cf_get_properties(DBusConnection *conn, DBusMessage *msg,
__ofono_ussd_is_busy(cf->ussd))
return __ofono_error_busy(msg);
+ if (!cf->online)
+ return __ofono_error_not_available(msg);
+
cf->pending = dbus_message_ref(msg);
cf->query_next = 0;
@@ -515,18 +602,18 @@ static void set_query_cf_callback(const struct ofono_error *error, int total,
return;
}
- if (cf->query_next == cf->query_end) {
- reply = dbus_message_new_method_return(cf->pending);
- __ofono_dbus_pending_reply(&cf->pending, reply);
- }
-
l = cf_cond_list_create(total, list);
set_new_cond_list(cf, cf->query_next, l);
DBG("%s conditions:", cf_type_lut[cf->query_next]);
cf_cond_list_print(l);
- if (cf->query_next != cf->query_end) {
+ if (cf->query_next == cf->query_end) {
+ sim_set_cf_indicator(cf);
+
+ reply = dbus_message_new_method_return(cf->pending);
+ __ofono_dbus_pending_reply(&cf->pending, reply);
+ } else {
cf->query_next++;
set_query_next_cf_cond(cf);
}
@@ -590,6 +677,9 @@ static DBusMessage *cf_set_property(DBusConnection *conn, DBusMessage *msg,
int cls;
int type;
+ if (!cf->online)
+ return __ofono_error_not_available(msg);
+
if (__ofono_call_forwarding_is_busy(cf) ||
__ofono_ussd_is_busy(cf->ussd))
return __ofono_error_busy(msg);
@@ -845,16 +935,16 @@ static void ss_set_query_cf_callback(const struct ofono_error *error, int total,
cf->ss_req->cf_list[cf->query_next] = l;
+ set_new_cond_list(cf, cf->query_next, l);
+
if (cf->query_next == cf->query_end) {
+ sim_set_cf_indicator(cf);
+
reply = cf_ss_control_reply(cf, cf->ss_req);
__ofono_dbus_pending_reply(&cf->pending, reply);
g_free(cf->ss_req);
cf->ss_req = NULL;
- }
-
- set_new_cond_list(cf, cf->query_next, l);
-
- if (cf->query_next != cf->query_end) {
+ } else {
cf->query_next++;
ss_set_query_next_cf_cond(cf);
}
@@ -1105,6 +1195,130 @@ gboolean __ofono_call_forwarding_is_busy(struct ofono_call_forwarding *cf)
return cf->pending ? TRUE : FALSE;
}
+static void sim_cfis_read_cb(int ok, int total_length, int record,
+ const unsigned char *data,
+ int record_length, void *userdata)
+{
+ struct ofono_call_forwarding *cf = userdata;
+ DBusConnection *conn = ofono_dbus_get_connection();
+ const char *path = __ofono_atom_get_path(cf->atom);
+
+ if (!ok || record_length < 16 || total_length < record_length) {
+ cf->cfis_indicator = 0;
+ cf->cfis_record_id = 0;
+ return;
+ }
+
+ /*
+ * Multiple Subscriber Profile number which can have values 1-4.
+ * Profile id 1 is assumed as the current profile.
+ */
+ if (data[0] != 1)
+ return;
+
+ cf->cfis_record_id = record;
+
+ /* CFU indicator status */
+ cf->cfis_indicator = data[1];
+
+ /*
+ * For now we only support Voice, although Fax & all Data
+ * basic services are applicable as well.
+ */
+ if (cf->cfis_indicator & 0x01) {
+ int ton_npi;
+ int number_len;
+ const char *number;
+ char attr[64];
+ struct ofono_call_forwarding_condition *cond;
+ GSList *l = NULL;
+ dbus_bool_t status;
+
+ number_len = data[2];
+ ton_npi = data[3];
+
+ if (number_len > 11 || ton_npi == 0xff)
+ return;
+
+ cond = g_try_new0(struct ofono_call_forwarding_condition, 1);
+ if (!cond)
+ return;
+
+ status = cf->voiceunconditional = TRUE;
+ cond->status = status;
+ cond->cls = BEARER_CLASS_VOICE;
+ cond->time = 0;
+ cond->phone_number.type = ton_npi;
+
+ sim_extract_bcd_number(data + 4, number_len - 1,
+ cond->phone_number.number);
+ number = phone_number_to_string(&cond->phone_number);
+
+ snprintf(attr, sizeof(attr), "%s%s",
+ bearer_class_to_string(BEARER_CLASS_VOICE),
+ cf_type_lut[CALL_FORWARDING_TYPE_UNCONDITIONAL]);
+
+ cf->cf_conditions[CALL_FORWARDING_TYPE_UNCONDITIONAL] = g_slist_append(l, cond);
+
+ cf->flags |= CALL_FORWARDING_FLAG_CACHED;
+
+ ofono_dbus_signal_property_changed(conn, path,
+ OFONO_CALL_FORWARDING_INTERFACE,
+ attr, DBUS_TYPE_STRING,
+ &number);
+
+ ofono_dbus_signal_property_changed(conn, path,
+ OFONO_CALL_FORWARDING_INTERFACE,
+ "VoiceUnconditionalStatus",
+ DBUS_TYPE_BOOLEAN,
+ &status);
+ }
+}
+
+static void sim_cphs_cff_read_cb(int ok, int total_length, int record,
+ const unsigned char *data,
+ int record_length, void *userdata)
+{
+ struct ofono_call_forwarding *cf = userdata;
+ DBusConnection *conn = ofono_dbus_get_connection();
+ const char *path = __ofono_atom_get_path(cf->atom);
+ dbus_bool_t cfu_voice;
+
+ if (!ok || total_length < 1) {
+ cf->cphs_cff_present = FALSE;
+ return;
+ }
+
+ cf->cphs_cff_present = TRUE;
+
+ /*
+ * For now we only support Voice, although Fax & all Data
+ * basic services are applicable as well.
+ */
+ cfu_voice = cf->voiceunconditional = ((data[0] & 0xf) == 0xa);
+
+ ofono_dbus_signal_property_changed(conn, path,
+ OFONO_CALL_FORWARDING_INTERFACE,
+ "VoiceUnconditionalStatus",
+ DBUS_TYPE_BOOLEAN,
+ &cfu_voice);
+}
+
+static void sim_read_cf_indicator(struct ofono_call_forwarding *cf)
+{
+ if (ofono_sim_get_phase(cf->sim) == OFONO_SIM_PHASE_3G) {
+ if (__ofono_sim_service_available(cf->sim,
+ SIM_UST_SERVICE_CFIS,
+ SIM_UST_SERVICE_CFIS))
+ ofono_sim_read(cf->sim, SIM_EFCFIS_FILEID,
+ OFONO_SIM_FILE_STRUCTURE_FIXED,
+ sim_cfis_read_cb, cf);
+ } else
+ ofono_sim_read(cf->sim, SIM_EF_CPHS_CFF_FILEID,
+ OFONO_SIM_FILE_STRUCTURE_TRANSPARENT,
+ sim_cphs_cff_read_cb, cf);
+}
+
int ofono_call_forwarding_driver_register(const struct ofono_call_forwarding_driver *d)
{
DBG("driver: %p, name: %s", d, d->name);
@@ -1191,9 +1405,18 @@ struct ofono_call_forwarding *ofono_call_forwarding_create(struct ofono_modem *m
break;
}
+ cf->online = 0;
+
return cf;
}
+static void modem_online_status_changed(ofono_bool_t online, void *data)
+{
+ struct ofono_call_forwarding *cf = data;
+
+ cf->online = online;
+}
+
static void ussd_watch(struct ofono_atom *atom,
enum ofono_atom_watch_condition cond, void *data)
{
@@ -1213,6 +1436,7 @@ void ofono_call_forwarding_register(struct ofono_call_forwarding *cf)
DBusConnection *conn = ofono_dbus_get_connection();
const char *path = __ofono_atom_get_path(cf->atom);
struct ofono_modem *modem = __ofono_atom_get_modem(cf->atom);
+ struct ofono_atom *sim_atom;
struct ofono_atom *ussd_atom;
if (!g_dbus_register_interface(conn, path,
@@ -1227,6 +1451,18 @@ void ofono_call_forwarding_register(struct ofono_call_forwarding *cf)
ofono_modem_add_interface(modem, OFONO_CALL_FORWARDING_INTERFACE);
+ sim_atom = __ofono_modem_find_atom(modem, OFONO_ATOM_TYPE_SIM);
+
+ if (sim_atom) {
+ cf->sim = __ofono_atom_get_data(sim_atom);
+
+ if (ofono_sim_get_state(cf->sim) == OFONO_SIM_STATE_READY)
+ sim_read_cf_indicator(cf);
+ }
+
+ __ofono_modem_add_online_watch(modem, modem_online_status_changed,
+ cf, NULL);
+
cf->ussd_watch = __ofono_modem_add_atom_watch(modem,
OFONO_ATOM_TYPE_USSD,
ussd_watch, cf, NULL);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC 3/7] ifx: Move call forwarding to post sim
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 1/7] simutil: Add EFcfis and EFcphs-cff file Ids Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 2/7] call-forwarding: Read/Write cfis/cphs-cff Jeevaka Badrappan
@ 2010-11-26 6:23 ` Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 4/7] isigen: " Jeevaka Badrappan
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1080 bytes --]
---
plugins/ifx.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/plugins/ifx.c b/plugins/ifx.c
index 037273a..cd6e667 100644
--- a/plugins/ifx.c
+++ b/plugins/ifx.c
@@ -703,6 +703,7 @@ static void ifx_post_sim(struct ofono_modem *modem)
ofono_stk_create(modem, 0, "ifxmodem", data->dlcs[AUX_DLC]);
ofono_phonebook_create(modem, OFONO_VENDOR_IFX,
"atmodem", data->dlcs[AUX_DLC]);
+ ofono_call_forwarding_create(modem, 0, "atmodem", data->dlcs[AUX_DLC]);
}
static void ifx_post_online(struct ofono_modem *modem)
@@ -724,7 +725,6 @@ static void ifx_post_online(struct ofono_modem *modem)
ofono_ussd_create(modem, 0, "atmodem", data->dlcs[AUX_DLC]);
ofono_ssn_create(modem, 0, "atmodem", data->dlcs[AUX_DLC]);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->dlcs[AUX_DLC]);
ofono_call_settings_create(modem, 0, "atmodem", data->dlcs[AUX_DLC]);
ofono_call_meter_create(modem, 0, "atmodem", data->dlcs[AUX_DLC]);
ofono_call_barring_create(modem, 0, "atmodem", data->dlcs[AUX_DLC]);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC 4/7] isigen: Move call forwarding to post sim
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
` (2 preceding siblings ...)
2010-11-26 6:23 ` [RFC 3/7] ifx: Move call forwarding to post sim Jeevaka Badrappan
@ 2010-11-26 6:23 ` Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 5/7] plugins/n900: " Jeevaka Badrappan
` (2 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1080 bytes --]
---
plugins/isigen.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/plugins/isigen.c b/plugins/isigen.c
index fad4e20..f75ec0a 100644
--- a/plugins/isigen.c
+++ b/plugins/isigen.c
@@ -402,6 +402,7 @@ static void isigen_post_sim(struct ofono_modem *modem)
DBG("(%p) with %s", modem, isi->ifname);
ofono_phonebook_create(isi->modem, 0, "isimodem", isi->idx);
+ ofono_call_forwarding_create(isi->modem, 0, "isimodem", isi->idx);
}
static void isigen_post_online(struct ofono_modem *modem)
@@ -418,7 +419,6 @@ static void isigen_post_online(struct ofono_modem *modem)
ofono_cbs_create(isi->modem, 0, "isimodem", isi->idx);
ofono_ssn_create(isi->modem, 0, "isimodem", isi->idx);
ofono_ussd_create(isi->modem, 0, "isimodem", isi->idx);
- ofono_call_forwarding_create(isi->modem, 0, "isimodem", isi->idx);
ofono_call_settings_create(isi->modem, 0, "isimodem", isi->idx);
ofono_call_barring_create(isi->modem, 0, "isimodem", isi->idx);
ofono_call_meter_create(isi->modem, 0, "isimodem", isi->idx);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC 5/7] plugins/n900: Move call forwarding to post sim
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
` (3 preceding siblings ...)
2010-11-26 6:23 ` [RFC 4/7] isigen: " Jeevaka Badrappan
@ 2010-11-26 6:23 ` Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 6/7] phonesim: " Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 7/7] doc: Add new property to call forwarding Jeevaka Badrappan
6 siblings, 0 replies; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1032 bytes --]
---
plugins/n900.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/plugins/n900.c b/plugins/n900.c
index a9e6b59..3f6aa39 100644
--- a/plugins/n900.c
+++ b/plugins/n900.c
@@ -491,6 +491,7 @@ static void n900_post_sim(struct ofono_modem *modem)
DBG("");
ofono_phonebook_create(isi->modem, 0, "isimodem", isi->idx);
+ ofono_call_forwarding_create(isi->modem, 0, "isimodem", isi->idx);
}
static void n900_post_online(struct ofono_modem *modem)
@@ -506,7 +507,6 @@ static void n900_post_online(struct ofono_modem *modem)
ofono_cbs_create(isi->modem, 0, "isimodem", isi->idx);
ofono_ssn_create(isi->modem, 0, "isimodem", isi->idx);
ofono_ussd_create(isi->modem, 0, "isimodem", isi->idx);
- ofono_call_forwarding_create(isi->modem, 0, "isimodem", isi->idx);
ofono_call_settings_create(isi->modem, 0, "isimodem", isi->idx);
ofono_call_barring_create(isi->modem, 0, "isimodem", isi->idx);
ofono_call_meter_create(isi->modem, 0, "isimodem", isi->idx);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC 6/7] phonesim: Move call forwarding to post sim
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
` (4 preceding siblings ...)
2010-11-26 6:23 ` [RFC 5/7] plugins/n900: " Jeevaka Badrappan
@ 2010-11-26 6:23 ` Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 7/7] doc: Add new property to call forwarding Jeevaka Badrappan
6 siblings, 0 replies; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 879 bytes --]
---
plugins/phonesim.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/plugins/phonesim.c b/plugins/phonesim.c
index d2faf42..e29d04d 100644
--- a/plugins/phonesim.c
+++ b/plugins/phonesim.c
@@ -470,6 +470,8 @@ static void phonesim_post_sim(struct ofono_modem *modem)
if (!data->calypso)
ofono_stk_create(modem, OFONO_VENDOR_PHONESIM,
"atmodem", data->chat);
+
+ ofono_call_forwarding_create(modem, 0, "atmodem", data->chat);
}
static void phonesim_post_online(struct ofono_modem *modem)
@@ -482,7 +484,6 @@ static void phonesim_post_online(struct ofono_modem *modem)
DBG("%p", modem);
ofono_ussd_create(modem, 0, "atmodem", data->chat);
- ofono_call_forwarding_create(modem, 0, "atmodem", data->chat);
ofono_call_settings_create(modem, 0, "atmodem", data->chat);
if (data->calypso)
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC 7/7] doc: Add new property to call forwarding
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
` (5 preceding siblings ...)
2010-11-26 6:23 ` [RFC 6/7] phonesim: " Jeevaka Badrappan
@ 2010-11-26 6:23 ` Jeevaka Badrappan
2010-11-26 6:31 ` Sankar
6 siblings, 1 reply; 11+ messages in thread
From: Jeevaka Badrappan @ 2010-11-26 6:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 579 bytes --]
---
doc/call-forwarding-api.txt | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/doc/call-forwarding-api.txt b/doc/call-forwarding-api.txt
index 067531a..5dfb48e 100644
--- a/doc/call-forwarding-api.txt
+++ b/doc/call-forwarding-api.txt
@@ -57,3 +57,8 @@ Properties string VoiceUnconditional [readwrite]
Contains the value of the voice "Not Reachable" call
forwarding rule.
+
+ boolean VoiceUnconditionalStatus [readonly]
+
+ Boolean representing the voice unconditional call
+ forwarding rule status.
--
1.7.0.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC 7/7] doc: Add new property to call forwarding
2010-11-26 6:23 ` [RFC 7/7] doc: Add new property to call forwarding Jeevaka Badrappan
@ 2010-11-26 6:31 ` Sankar
2010-11-26 6:55 ` Jeevaka.Badrappan
0 siblings, 1 reply; 11+ messages in thread
From: Sankar @ 2010-11-26 6:31 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 1295 bytes --]
Hi Jeevaka,
On Fri, Nov 26, 2010 at 11:53 AM, Jeevaka Badrappan <
jeevaka.badrappan@elektrobit.com> wrote:
> ---
> doc/call-forwarding-api.txt | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/doc/call-forwarding-api.txt b/doc/call-forwarding-api.txt
> index 067531a..5dfb48e 100644
> --- a/doc/call-forwarding-api.txt
> +++ b/doc/call-forwarding-api.txt
> @@ -57,3 +57,8 @@ Properties string VoiceUnconditional [readwrite]
>
> Contains the value of the voice "Not Reachable" call
> forwarding rule.
> +
> + boolean VoiceUnconditionalStatus [readonly]
> +
> + Boolean representing the voice unconditional call
> + forwarding rule status.
>
As per the specification, querying of group of supplementary services is not
allowed. Do you propose a solution where core queries all the three call
forwardings namely CF busy, CF Not Reachable, CF noreply and updating the
clients with the status using the above property after receiving the status
for all the three?
> --
> 1.7.0.4
>
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> http://lists.ofono.org/listinfo/ofono
>
[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 1854 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [RFC 7/7] doc: Add new property to call forwarding
2010-11-26 6:31 ` Sankar
@ 2010-11-26 6:55 ` Jeevaka.Badrappan
0 siblings, 0 replies; 11+ messages in thread
From: Jeevaka.Badrappan @ 2010-11-26 6:55 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 886 bytes --]
Hi Sankar,
> As per the specification, querying of group of supplementary services
is not allowed. Do you propose a solution where core queries all the
three call forwardings namely
> CF busy, CF Not Reachable, CF noreply and updating the clients with
the status using the above property after receiving the status for all
the three?
Query logic is already taken care in the oFono core. Check the
get_query_next_cf_cond function in src/call-forwarding.c.
"VoiceUnconditionalStatus" property is only about the VoiceUnconditional
call forwarding rule. VoiceUnconditional status can be also known from
the sim files EFcfis and EFcphs-cff(Note: Files are optional). This
patch reads the SIM files(if present) and updates the status. Patch also
takes care of updating the sim files when the user activates
VoiceUnconditional call forwarding rule.
Regards,
Jeevaka
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC 1/7] simutil: Add EFcfis and EFcphs-cff file Ids
2010-11-26 6:23 ` [RFC 1/7] simutil: Add EFcfis and EFcphs-cff file Ids Jeevaka Badrappan
@ 2010-11-27 17:50 ` Denis Kenzior
0 siblings, 0 replies; 11+ messages in thread
From: Denis Kenzior @ 2010-11-27 17:50 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 212 bytes --]
Hi Jeevaka,
On 11/26/2010 12:23 AM, Jeevaka Badrappan wrote:
> ---
> src/simutil.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
Patch has been applied, thanks.
Regards,
-Denis
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2010-11-27 17:50 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-26 6:23 Read/Write EFcfis/EFcphs-cff files Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 1/7] simutil: Add EFcfis and EFcphs-cff file Ids Jeevaka Badrappan
2010-11-27 17:50 ` Denis Kenzior
2010-11-26 6:23 ` [RFC 2/7] call-forwarding: Read/Write cfis/cphs-cff Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 3/7] ifx: Move call forwarding to post sim Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 4/7] isigen: " Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 5/7] plugins/n900: " Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 6/7] phonesim: " Jeevaka Badrappan
2010-11-26 6:23 ` [RFC 7/7] doc: Add new property to call forwarding Jeevaka Badrappan
2010-11-26 6:31 ` Sankar
2010-11-26 6:55 ` Jeevaka.Badrappan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.