[PATCH 0/4] mmsd: delivery-report flag
by Ronald Tessier
This patch concerns mmsd and is related to delivery-report flag setting.
A specific delivery-report flag is defined for mmsd, it is managed via a DBus
api (SetProperty, described in the doc section) and stored in a setting file.
Ronald Tessier (4):
store: Add utilities for mms settings file access
service: Load delivery-report from mms settings
service: Add DBus method to set delivery-report
test: Add a script to set the delivery-report flag
doc/service-api.txt | 6 ++++
src/service.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/store.c | 56 ++++++++++++++++++++++++++++++++
src/store.h | 4 +++
test/set-dr | 25 +++++++++++++++
5 files changed, 179 insertions(+)
create mode 100755 test/set-dr
--
1.7.9.5
8 years, 6 months
[PATCH] unit: Update test_invalid() unit test
by Guillaume Zajac
---
unit/test-util.c | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/unit/test-util.c b/unit/test-util.c
index 079d775..f65f3ee 100644
--- a/unit/test-util.c
+++ b/unit/test-util.c
@@ -345,7 +345,9 @@ static void test_invalid(void)
{
long nwritten;
long nread;
- char *res;
+ short unsigned int exp_code;
+ long exp_res_length;
+ char *res, *temp, *exp_res = NULL;
unsigned char *gsm;
res = convert_gsm_to_utf8(invalid_gsm_extended, 0, &nread, &nwritten,
@@ -356,15 +358,34 @@ static void test_invalid(void)
g_assert(res[0] == '\0');
g_free(res);
+ /*
+ * In case of invalid GSM extended code, we should display
+ * the character of the main default alphabet table.
+ */
res = convert_gsm_to_utf8(invalid_gsm_extended,
sizeof(invalid_gsm_extended),
&nread, &nwritten, 0);
- g_assert(res == NULL);
- g_assert(nread == 1);
+
+ exp_code = gsm_to_unicode_map[invalid_gsm_extended[1]*2 + 1];
+
+ exp_res_length = UTF8_LENGTH(exp_code);
+ exp_res = g_try_malloc(exp_res_length + 1);
+
+ g_assert(exp_res != NULL);
+
+ temp = exp_res;
+ temp += g_unichar_to_utf8(exp_code, temp);
+ *temp = '\0';
+
+ g_assert(g_strcmp0(res, exp_res) == 0);
+ g_assert(nread == exp_res_length);
+ g_free(exp_res);
+ g_free(res);
res = convert_gsm_to_utf8(invalid_gsm_extended_len,
sizeof(invalid_gsm_extended_len),
&nread, &nwritten, 0);
+
g_assert(res == NULL);
g_assert(nread == 3);
--
1.7.5.4
8 years, 6 months
[PATCH_v2] unit: Update test_invalid() unit test
by Guillaume Zajac
---
unit/test-util.c | 26 +++++++++++++++++++++++---
1 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/unit/test-util.c b/unit/test-util.c
index 079d775..d3bbf8c 100644
--- a/unit/test-util.c
+++ b/unit/test-util.c
@@ -345,7 +345,9 @@ static void test_invalid(void)
{
long nwritten;
long nread;
- char *res;
+ short unsigned int exp_code;
+ long exp_res_length;
+ char *res, *temp, *exp_res = NULL;
unsigned char *gsm;
res = convert_gsm_to_utf8(invalid_gsm_extended, 0, &nread, &nwritten,
@@ -356,11 +358,29 @@ static void test_invalid(void)
g_assert(res[0] == '\0');
g_free(res);
+ /*
+ * In case of invalid GSM extended code, we should display
+ * the character of the main default alphabet table.
+ */
res = convert_gsm_to_utf8(invalid_gsm_extended,
sizeof(invalid_gsm_extended),
&nread, &nwritten, 0);
- g_assert(res == NULL);
- g_assert(nread == 1);
+
+ exp_code = gsm_to_unicode_map[invalid_gsm_extended[1]*2 + 1];
+
+ exp_res_length = UTF8_LENGTH(exp_code);
+ exp_res = g_try_malloc(exp_res_length + 1);
+
+ g_assert(exp_res != NULL);
+
+ temp = exp_res;
+ temp += g_unichar_to_utf8(exp_code, temp);
+ *temp = '\0';
+
+ g_assert(g_strcmp0(res, exp_res) == 0);
+ g_assert(nread == exp_res_length);
+ g_free(exp_res);
+ g_free(res);
res = convert_gsm_to_utf8(invalid_gsm_extended_len,
sizeof(invalid_gsm_extended_len),
--
1.7.5.4
8 years, 6 months
[PATCH] util: Fix GSM to UTF8 conversion mechanism
by Guillaume Zajac
---
src/util.c | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/util.c b/src/util.c
index aecc790..41ef3d4 100644
--- a/src/util.c
+++ b/src/util.c
@@ -628,8 +628,16 @@ char *convert_gsm_to_utf8_with_lang(const unsigned char *text, long len,
c = gsm_single_shift_lookup(&t, text[i]);
+ /*
+ * According to the 3GPP specifications 23.038
+ * section 6.2.1.1:
+ * In the case there is no character in the extension
+ * table, the character of the main default alphabet
+ * table or the character from the National Language
+ * Locking Shift Table should be displayed.
+ */
if (c == GUND)
- goto error;
+ c = gsm_locking_shift_lookup(&t, text[i]);
} else {
c = gsm_locking_shift_lookup(&t, text[i]);
}
@@ -647,9 +655,12 @@ char *convert_gsm_to_utf8_with_lang(const unsigned char *text, long len,
while (out < res + res_length) {
unsigned short c;
- if (text[i] == 0x1b)
+ if (text[i] == 0x1b) {
c = gsm_single_shift_lookup(&t, text[++i]);
- else
+ /* See 3GPP 23.038 section 6.2.1.1 */
+ if (c == GUND)
+ c = gsm_locking_shift_lookup(&t, text[i]);
+ } else
c = gsm_locking_shift_lookup(&t, text[i]);
out += g_unichar_to_utf8(c, out);
--
1.7.5.4
8 years, 6 months
[PATCH 0/3] mmsd: get delivery_report setting
by Ronald Tessier
This set of patches concerns mmsd and is related to delivery_report.
Add delivery report flag and API (to set its value) to service.
Get and track the delivery report setting used by oFono in the message manager
and use it in mmsd.
Ronald Tessier (3):
service: manage delivery report setting
ofono: Add support for message_manager tracking
service: use delivery_report in send_req message
plugins/ofono.c | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/service.c | 15 +++++++
src/service.h | 2 +
3 files changed, 152 insertions(+)
--
1.7.9.5
8 years, 6 months
sierra wireless MC8795V
by Jan Pohanka
Hello,
I'd like to try HSPDA module MC8795V with ofono. According to its
specification the module should be compatible with MC8790 and its driver
is included for a while. Unfortunately I cannot make ofono to detect the
module properly. The module itself works fine and all its terminals
/det/ttyUSB0-6 are present.
Is the support for sierra modems broken, or I'm missing something?
I have added this line to ofono udev rules
ATTRS{idVendor}=="1199", ATTRS{idProduct}=="683c",
ENV{OFONO_DRIVER}="sierra"
and I'm getting following log...
ofonod[269]: oFono version 1.8
ofonod[269]: src/plugin.c:__ofono_plugin_init()
ofonod[269]: plugins/push-notification.c:push_notification_init()
ofonod[269]: plugins/smart-messaging.c:smart_messaging_init()
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x1295b0,
name: telit2
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129560,
name: sim900
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129518,
name: samsung
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x1294d0,
name: speedupcdma
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129488,
name: speedup
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129438,
name: alcatel
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x1293f0,
name: icera
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129398,
name: linktop
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129350,
name: nokiacdma
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129308,
name: nokia
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x1292c0,
name: tc65
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129238,
name: ste
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x1291d8,
name: ifx
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129150,
name: palmpre
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129108,
name: novatel
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x1290b8,
name: sierra
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x129070,
name: huawei
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x128ff8,
name: zte
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x128fb0,
name: hso
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x128f50,
name: mbm
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x128f00,
name: calypso
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x128ea0,
name: wavecom
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x128e58,
name: g1
ofonod[269]: src/cdma-voicecall.c:ofono_cdma_voicecall_driver_register()
driver: 0x128e00, name: cdmamodem
ofonod[269]: src/modem.c:ofono_devinfo_driver_register() driver: 0x128e28,
name: cdmamodem
ofonod[269]: src/cdma-connman.c:ofono_cdma_connman_driver_register()
driver: 0x128e44, name: cdmamodem
ofonod[269]: src/ussd.c:ofono_ussd_driver_register() driver: 0x128dcc,
name: speedupmodem
ofonod[269]: src/voicecall.c:ofono_voicecall_driver_register() driver:
0x128cc0, name: hfpmodem
ofonod[269]: src/modem.c:ofono_devinfo_driver_register() driver: 0x128d64,
name: hfpmodem
ofonod[269]: src/network.c:ofono_netreg_driver_register() driver:
0x128d18, name: hfpmodem
ofonod[269]: src/call-volume.c:ofono_call_volume_driver_register() driver:
0x128d4c, name: hfpmodem
ofonod[269]: src/handsfree.c:ofono_handsfree_driver_register() driver:
0x128d90, name: hfpmodem
ofonod[269]: src/network.c:ofono_netreg_driver_register() driver:
0x128c40, name: dunmodem
ofonod[269]: src/gprs.c:ofono_gprs_driver_register() driver: 0x128c64,
name: dunmodem
ofonod[269]: src/voicecall.c:ofono_voicecall_driver_register() driver:
0x128b7c, name: stemodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x128c04, name: stemodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x128bcc, name: stemodem
ofonod[269]: src/voicecall.c:ofono_voicecall_driver_register() driver:
0x128a64, name: ifxmodem
ofonod[269]: src/audio-settings.c:ofono_audio_settings_driver_register()
driver: 0x128abc, name: ifxmodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x128ad0, name: ifxmodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x128b04, name: ifxmodem
ofonod[269]: src/stk.c:ofono_stk_driver_register() driver: 0x128b28, name:
ifxmodem
ofonod[269]: src/ctm.c:ofono_ctm_driver_register() driver: 0x128b48, name:
ifxmodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x1289fc, name: hsomodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x128a18, name: hsomodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x128980, name: mbmmodem
ofonod[269]: src/stk.c:ofono_stk_driver_register() driver: 0x12899c, name:
mbmmodem
ofonod[269]:
src/location-reporting.c:ofono_location_reporting_driver_register()
driver: 0x1289bc, name: mbmmodem
ofonod[269]: src/voicecall.c:ofono_voicecall_driver_register() driver:
0x1288e8, name: calypsomodem
ofonod[269]: src/stk.c:ofono_stk_driver_register() driver: 0x128938, name:
calypsomodem
ofonod[269]: src/ussd.c:ofono_ussd_driver_register() driver: 0x1287f8,
name: huaweimodem
ofonod[269]: src/voicecall.c:ofono_voicecall_driver_register() driver:
0x12880c, name: huaweimodem
ofonod[269]: src/audio-settings.c:ofono_audio_settings_driver_register()
driver: 0x12885c, name: huaweimodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x12888c, name: huaweimodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x128870, name: huaweimodem
ofonod[269]: src/cdma-netreg.c:ofono_cdma_netreg_driver_register() driver:
0x1288b8, name: huaweimodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x128788, name: iceramodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x1287ac, name: iceramodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x128734, name: ztemodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x1286f8, name: swmodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x1286b4, name: nwmodem
ofonod[269]: src/voicecall.c:ofono_voicecall_driver_register() driver:
0x128534, name: atmodem
ofonod[269]: src/modem.c:ofono_devinfo_driver_register() driver: 0x1285cc,
name: atmodem
ofonod[269]: src/call-barring.c:ofono_call_barring_driver_register()
driver: 0x128584, name: atmodem
ofonod[269]: src/call-forwarding.c:ofono_call_forwarding_driver_register()
driver: 0x1282d4, name: atmodem
ofonod[269]: src/call-meter.c:ofono_call_meter_driver_register() driver:
0x128314, name: atmodem
ofonod[269]: src/call-settings.c:ofono_call_settings_driver_register()
driver: 0x12820c, name: atmodem
ofonod[269]: src/phonebook.c:ofono_phonebook_driver_register() driver:
0x1285b4, name: atmodem
ofonod[269]: src/ussd.c:ofono_ussd_driver_register() driver: 0x128510,
name: atmodem
ofonod[269]: src/sms.c:ofono_sms_driver_register() driver: 0x128290, name:
atmodem
ofonod[269]: src/sim.c:ofono_sim_driver_register() driver: 0x1283f0, name:
atmodem
ofonod[269]: src/sim.c:ofono_sim_driver_register() driver: 0x128438, name:
atmodem-noef
ofonod[269]: src/stk.c:ofono_stk_driver_register() driver: 0x1284e8, name:
atmodem
ofonod[269]: src/network.c:ofono_netreg_driver_register() driver:
0x128370, name: atmodem
ofonod[269]: src/cbs.c:ofono_cbs_driver_register() driver: 0x1282b8, name:
atmodem
ofonod[269]: src/call-volume.c:ofono_call_volume_driver_register() driver:
0x1285f8, name: atmodem
ofonod[269]: src/gprs.c:ofono_gprs_driver_register() driver: 0x128628,
name: atmodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x12863c, name: atmodem
ofonod[269]: src/sim-auth.c:ofono_sim_auth_driver_register() driver:
0x128658, name: atmodem
ofonod[269]: src/gnss.c:ofono_gnss_driver_register() driver: 0x128678,
name: atmodem
ofonod[269]: src/modem.c:ofono_modem_driver_register() driver: 0x127cdc,
name: gobi
ofonod[269]: src/modem.c:ofono_devinfo_driver_register() driver: 0x127b74,
name: qmimodem
ofonod[269]: src/network.c:ofono_netreg_driver_register() driver:
0x127bd8, name: qmimodem
ofonod[269]: src/voicecall.c:ofono_voicecall_driver_register() driver:
0x127b90, name: qmimodem
ofonod[269]: src/sim.c:ofono_sim_driver_register() driver: 0x127bfc, name:
qmimodem-legacy
ofonod[269]: src/sms.c:ofono_sms_driver_register() driver: 0x127c44, name:
qmimodem
ofonod[269]: src/ussd.c:ofono_ussd_driver_register() driver: 0x127c64,
name: qmimodem
ofonod[269]: src/gprs.c:ofono_gprs_driver_register() driver: 0x127c78,
name: qmimodem
ofonod[269]: src/gprs.c:ofono_gprs_context_driver_register() driver:
0x127c8c, name: qmimodem
ofonod[269]: src/radio-settings.c:ofono_radio_settings_driver_register()
driver: 0x127ca0, name: qmimodem
ofonod[269]:
src/location-reporting.c:ofono_location_reporting_driver_register()
driver: 0x127cc4, name: qmimodem
ofonod[269]: plugins/udevng.c:udev_start()
ofonod[269]: plugins/udevng.c:enumerate_devices()
ofonod[269]: plugins/udevng.c:check_usb_device() hub [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() usb [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() usb [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() MOSCHIP usb-ethernet
driver [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() usb [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [1199:683c]
ofonod[269]: plugins/udevng.c:add_device()
/sys/devices/platform/musb-davinci/musb-hdrc/usb1/1-1/1-1.3
ofonod[269]: plugins/udevng.c:add_device()
/sys/devices/platform/musb-davinci/musb-hdrc/usb1/1-1/1-1.3/1-1.3:1.0/tty
USB0/tty/ttyUSB0
ofonod[269]: plugins/udevng.c:add_device() /dev/ttyUSB0 (sierra)
255/255/255 [00] ==> (null) (null)
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() sierra [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() usb [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() rt2800usb [(null):(null)]
ofonod[269]: plugins/udevng.c:check_usb_device() hub [(null):(null)]
ofonod[269]: plugins/udevng.c:create_modem()
/sys/devices/platform/musb-davinci/musb-hdrc/usb1/1-1/1-1.3
ofonod[269]: plugins/udevng.c:create_modem() driver=sierra
ofonod[269]: src/modem.c:ofono_modem_create() name: (null), type: sierra
ofonod[269]: plugins/udevng.c:setup_sierra()
/sys/devices/platform/musb-davinci/musb-hdrc/usb1/1-1/1-1.3
ofonod[269]: plugins/udevng.c:setup_sierra() /dev/ttyUSB0 255/255/255 00
(null)
ofonod[269]: plugins/udevng.c:destroy_modem()
/sys/devices/platform/musb-davinci/musb-hdrc/usb1/1-1/1-1.3
ofonod[269]: src/modem.c:ofono_modem_remove() 0x148bd0
ofonod[269]: plugins/udevng.c:destroy_modem() /dev/ttyUSB0
ofonod[269]: src/modem.c:ofono_modem_create() name: (null), type: sierra
ofonod[269]: src/modem.c:set_modem_property() modem 0x14c378 property Path
ofonod[269]: plugins/udev.c:add_modem()
/devices/platform/musb-davinci/musb-hdrc/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB0/tt
y/ttyUSB0 (sierra)
best regards
Jan
--
Tato zpráva byla vytvořena převratnou poštovní aplikací Opery:
http://www.opera.com/mail/
8 years, 6 months
[RFC_v2 0/3] Fix crash when network is lost
by Guillaume Zajac
Change log with previous version:
- Fix naming issue
- Simplify the logic
Guillaume Zajac (3):
gprs-context: Add new driver entry
gprs-context: Add new driver entry definition
gprs: Release context in driver and core when network is lost
drivers/atmodem/gprs-context.c | 11 +++++
include/gprs-context.h | 2 +
src/gprs.c | 84 ++++++++++++++++++++++++++++++----------
3 files changed, 76 insertions(+), 21 deletions(-)
--
1.7.5.4
8 years, 6 months
SIM Insertion Notification
by Ruptash, Brian
I'm running ofono 1.7, with a Cinterion PH8-P plugin I wrote and will submit once I've fully tested it. One problem I have is I never receive notification of SIM insertion, i.e. the Present propertyChanged. Looking at the code it seems pretty obvious why, unless I'm (probably) missing something.
All the plugins, including mine, do similar to the following:
static void ph8_pre_sim(struct ofono_modem *modem)
{
struct ph8_data *data = ofono_modem_get_data(modem);
struct ofono_sim *sim;
ofono_devinfo_create(modem, 0, "atmodem", data->app);
sim = ofono_sim_create(modem, OFONO_VENDOR_CINTERION_PH8,
"atmodem", data->app);
if (sim && data->have_sim == TRUE)
ofono_sim_inserted_notify(sim, TRUE);
}
The call to ofono_sim_create() probes the atmodem driver, which ends with:
g_idle_add(at_sim_register, sim);
So the subsequent call to ofono_sim_inserted_notify() will fail, as at_sim_register() is called later when it is scheduled.
The logs bear this out, so I'm at a loss to understand how anyone receives a SIM notification... What am I missing here?
-- Brian
CONFIDENTIALITY NOTICE: The information contained in this email message is intended only for use of the intended recipient. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately delete it from your system and notify the sender by replying to this email. Thank you.
8 years, 6 months
[PATCH] phonesim: one small fix regarding the dbus interface
by Simon Busch
Heyho,
while working with phonesim's dbus interface I discovered it's not using for each reported
error the same error domain. The attached patch fixes this.
regards,
Simon
Simon Busch (1):
control: use correct dbus error domain
src/control.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--
1.7.9.5
8 years, 6 months