This group contains an entry for each message recipients. Each recipient
entry will be updated when the corresponding report will be received
and then remove the temporary stored delivery report.
---
src/service.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/src/service.c b/src/service.c
index c3dc40a..ec1b1b9 100644
--- a/src/service.c
+++ b/src/service.c
@@ -69,6 +69,17 @@ static const char *ctl_chars =
"\x01\x02\x03\x04\x05\x06\x07\x08\x0A"
static const char *sep_chars = "()<>@,;:\\\"/[]?={} \t";
+static const char *delivery_status[] = {
+ "none",
+ "expired",
+ "retrieved",
+ "rejected",
+ "deferred",
+ "indeterminate",
+ "forwarded",
+ "unreachable"
+};
+
struct mms_request;
typedef gboolean (*mms_request_result_cb_t) (struct mms_request *request);
@@ -1058,6 +1069,28 @@ static DBusMessage *send_message(DBusConnection *conn,
g_key_file_set_string(meta, "info", "state", "draft");
+ if (service->use_delivery_reports) {
+ char **tos;
+ int i;
+
+ tos = g_strsplit(msg->sr.to, ",", 0);
+
+ for (i = 0; tos[i] != NULL; i++) {
+ char *to = g_strdup(tos[i]);
+
+ mms_address_to_string(to);
+
+ DBG("%s=%s", to, delivery_status[0]);
+
+ g_key_file_set_string(meta, "delivery_status", to,
+ delivery_status[0]);
+
+ g_free(to);
+ }
+
+ g_strfreev(tos);
+ }
+
mms_store_meta_close(service->identity, msg->uuid, meta, TRUE);
if (mms_message_register(service, msg) < 0)
--
1.7.9.5
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono