diff --git a/index.html b/index.html
index eb329f2..10851a8 100644
--- a/index.html
+++ b/index.html
@@ -26,7 +26,6 @@
inlineCSS: true,
noIDLIn: true,
noIDLSorting: true,
- extraCSS: ["../ReSpec.js/css/respec.css"],
wg: "System Applications Working Group",
wgURI: "http://www.w3.org/2012/sysapps/",
wgPublicList: "public-sysapps",
@@ -267,10 +266,15 @@
Identifier of the message that is requested to be marked as
read or unread
- optional boolean value = true
+ boolean value
- Indicates whether the message is to be marked as read ('true',
- which is the default) or unread ('false')
+ Indicates whether the message is to be marked as read ('true') or
+ unread ('false')
+
+ optional boolean sendReadReport = false
+
+ Indicates that, in case a Read Report was requested, it is to be sent
+ ('true') or not ('false', which is the default)
@@ -285,10 +289,16 @@
Identifier of the conversation whose messages are requested to be
marked as read or unread
- optional boolean value = true
+ boolean value
Indicates whether the messages in the conversation are to be marked as
- read ('true', which is the default) or unread ('false')
+ read ('true') or unread ('false')
+
+ optional boolean sendReadReport = false
+
+ Indicates that, in case a Read Report was requested for any MMS
+ message in the conversation, a Read Report is to be sent ('true') or
+ not ('false', which is the default)
@@ -420,7 +430,8 @@ Steps
Make a request to the system to mark as read/unread (depending on the
value
parameter being respectively 'true' or 'false') the
message with identifier equal to the messageID
parameter
- passed in the request.
+ passed in the request, and to send a Read Report if
+ sendReadReport
is set to 'true'.
If an error occurs invoke resolver's reject algorithm with
error as the value
argument.
@@ -443,7 +454,9 @@ Steps
Make a request to the system to mark as read/unread (depending on the
value
parameter being respectively 'true' or 'false') the
messages in the conversation with identifier equal to the
- conversationID
parameter passed in the request.
+ conversationID
parameter passed in the request, and in case
+ sendReadReport
is set to 'true', to send a Read Report for
+ each of the MMS messages for which it was requested.
If an error occurs invoke resolver's reject algorithm with
error as the value
argument.
@@ -557,9 +570,9 @@
report is received on this messaging service manager.
- attribute EventHandler ondeliveryfailure
+ attribute EventHandler ondeliveryerror
- Handles the deliveryfailure
event of type
+ Handles the deliveryerror
event of type
DeliveryReportEvent, fired when a new failure delivery
report is received on this messaging service manager.
@@ -582,8 +595,7 @@
Steps
- The send
method when invoked MUST run the
- following steps:
+
The send
method when invoked MUST run the following steps:
- Let promise be a new
Promise
object and
resolver its associated resolver
@@ -637,8 +649,9 @@ Steps
- Invoke resolver's fulfill algorithm with
smsMessage as the
value
argument.
- - Queue a task to fire an event named
sent
- with the message
attribute set to smsMessage.
+ - Queue a task to fire an event named
sent
with
+ the message
attribute set to smsMessage.
@@ -701,9 +714,9 @@ Steps
'received'.
Set the deliveryStatus
of smsMessage to
'not-applicable'.
- Queue a task to fire an event named
- received
with the message
attribute set
- to smsMessage.
+ Queue a task to fire an event named received
+ with the message
attribute set to smsMessage.
Queue a task to fire a system message named
received
of type ReceivedMessage
with the
message
attribute set to smsMessage.
@@ -721,9 +734,11 @@ Steps
to the delivery time of the SMS message, i.e. the TP-Discharge-Time (TP
DT) parameter included in the SMS-STATUS-REPORT Protocol Data Unit
[[!GSM-SMS]].
- Queue a task to fire an event named
- deliverysuccess or deliveryfailure respectively if the
- delivery was successfull or not, with
+ Queue a task to fire an event named deliverysuccess or deliveryerror
+ respectively if the delivery was successfull or not, with
- the
messageID
attribute set to the
messageID
attribute of smsMessage,
@@ -735,8 +750,8 @@ Steps
to delivery time of such message.
Queue a task to fire a system message of type
- DeliveryReport
named deliverysuccess or
- deliveryfailure respectively if the delivery was successfull or
+ DeliveryReport
named deliverysuccess
or
+ deliveryerror respectively if the delivery was successfull or
not, with
- the
messageID
attribute set to the
@@ -750,8 +765,7 @@ Steps
- The clear
method when invoked MUST run the
- following steps:
+
The clear
method when invoked MUST run the following steps:
- Let promise be a new
Promise
object and
resolver its associated resolver
@@ -792,38 +806,42 @@ Event handlers
onreceived |
- received |
+ received |
MessagingEvent |
handles received messages |
onsent |
- sent |
+ sent |
MessagingEvent |
handles sent messages |
ondeliverysuccess |
- deliverysuccess |
+ deliverysuccess |
DeliveryReportEvent |
handles successful delivery reports |
- ondeliveryfailure |
- deliveryfailure |
+ ondeliveryerror |
+ deliveryerror |
DeliveryReportEvent |
handles failure delivery reports |
onserviceadded |
- serviceadded |
+ serviceadded |
ServiceChangeEvent |
handle new messaging services |
onserviceremoved |
- serviceremoved |
+ serviceremoved |
ServiceChangeEvent |
handle disabled messaging services |
@@ -921,10 +939,10 @@
-
Content and recipients of the MMS message to be sent.
- - optional DOMString serviceID
+ - optional MmsSendParameters sendParameters
-
- Identifier of the service through which the message is requested to
- be sent.
+ Set of parameters related to the submission of the message (e.g.
+ request of delivery/read report or not).
@@ -976,12 +994,26 @@
report is received on this messaging service manager.
-
- attribute EventHandler ondeliveryfailure
+ attribute EventHandler ondeliveryerror
- - Handles the
deliveryfailure
event of type
+ - Handles the
deliveryerror
event of type
DeliveryReportEvent, fired when a new failure delivery
report is received on this messaging service manager.
+ -
+ attribute EventHandler onreadsuccess
+
+ - Handles the
readsuccess
event of type
+ ReadReportEvent, fired when a new succesful read report is
+ received on this messaging service manager.
+
+ -
+ attribute EventHandler onreaderror
+
+ - Handles the
readerror
event of type
+ ReadReportEvent, fired when a new failure read report is received
+ on this messaging service manager.
+
-
attribute EventHandler onserviceadded
@@ -1006,8 +1038,7 @@
Steps
- The send
method when invoked MUST run the
- following steps:
+
The send
method when invoked MUST run the following steps:
- Let promise be a new
Promise
object and
resolver its associated resolver
@@ -1023,9 +1054,9 @@ Steps
- Set the
type
of mmsMessage to 'mms'.
- Set the
serviceID
of mmsMessage to the
identifier of the service used to send the message, i.e. the one passed in
- the serviceID
parameter, if provided, or otherwise to the
- first item in the serviceIDs
attribute of the
- MmsManager
.
+ the serviceID
parameter in MmsSendParameters
, if
+ provided, or otherwise to the first item in the serviceIDs
+ attribute of the MmsManager
.
- Set the
from
of mmsMessage to the number of the
mobile subscription used to send this MMS message.
- Set the
read
of mmsMessage to 'true'.
@@ -1048,13 +1079,14 @@ Steps
to
, cc
and bcc
parameters (i.e. a
single item if the same address has multiple ocurrences across these
parameters), with the recipient
attribute set to this
- recipient's address and the deliveryStatus
attribute set to
+ recipient's address, with the deliveryStatus
attribute set to
'pending', if a delivery report has been requested, or 'not-applicable'
- otherwise.
+ otherwise and with the readStatus
attribute set to 'pending',
+ if a read report has been requested, or 'not-applicable' otherwise.
- Make a request to the system to send an MMS message with the content
passed in the
content
parameter to the number(s) of indicated
in the to
parameter, using the proper service as described
- above.
+ above and asking for delivery and/or read report if requested.
- Queue a task to monitor MMS sending progress.
- If an error occurs run these substeps and terminate these
@@ -1077,9 +1109,9 @@
Steps
- Invoke resolver's fulfill algorithm with
mmsMessage as the
value
argument.
- - Queue a task to fire an event named
-
sent
with the message
attribute set to
- mmsMessage.
+ - Queue a task to fire an event named
sent
with
+ the message
attribute set to mmsMessage.
@@ -1179,6 +1211,10 @@ Steps
Content-Location used to reference this attachment from the SMIL object in
the incoming MMS message [[!MMS13]], if present.
+ - Set the
readReportRequested
attribute to 'true'
+ if the 'X-Mms-Read-Report' field is present in the incoming MMS
+ message [[!MMS13]] and has the value 'Yes', and to 'false'
+ otherwise.
- Set the
state
of mmsMessage to
'received'.
@@ -1190,7 +1226,7 @@ Steps
the deliveryStatus
attribute set to 'not-applicable'.
- Queue a task to fire an event named
-
received
with the message
attribute set
+ received
with the message
attribute set
to mmsMessage.
- Queue a task to fire a system message named
received
of type ReceivedMessage
with the
@@ -1268,16 +1304,18 @@ Steps
value of the X-Mms-Status element in the M-Delivery.ind Protocol
Data Unit [[!MMS13]] is 'Retrieved', or
- to 'error', in case of failed delivery, i.e. if the value of
- the X-Mms-Status element in the the M-Delivery.ind Protocol Data
+ the X-Mms-Status element in the M-Delivery.ind Protocol Data
Unit [[!MMS13]] is 'Expired', 'Rejected' or 'Unreachable'.
- set its
deliveryTimestamp
attribute to the delivery
time, i.e. the 'Date' field in the M-Delivery.ind Protocol Data Unit
[[!MMS13]], in case of successful delivery.
- - Queue a task to fire an event named
- deliverysuccess or deliveryfailure respectively if the
- delivery was successfull or not, with
+
- Queue a task to fire an event named deliverysuccess or deliveryerror
+ respectively if the delivery was successfull or not, with
- the
messageID
attribute set to the
messageID
attribute of mmsMessage,
@@ -1292,8 +1330,8 @@ Steps
same position of the recipients
array.
- Queue a task to fire a system message of type
-
DeliveryReport
named deliverysuccess or
- deliveryfailure respectively if the delivery was successfull or
+ DeliveryReport
named deliverysuccess
or
+ deliveryerror
respectively if the delivery was successfull or
not, with
- the
messageID
attribute set to the
@@ -1310,8 +1348,66 @@ Steps
- The clear
method when invoked MUST run the
- following steps:
+
Upon a read report of a previously sent MMS message being received, the
+ user agent MUST
+
+ - Let mmsMessage be the instance of
MmsMessage
+ to which this read report is related.
+ - For each of the items in the
deliveryInfo
array
+ attribute of mmsMessage whose recipient
+ attribute matches one of the recipients of the MMS to which the read
+ report is related,
+
+ - set its
readStatus
attribute:
+
+ - to 'success', in case the message has been read, i.e. if the
+ value of the X-Mms-Read-Status element in the M-Read-Orig.ind
+ Protocol Data Unit [[!MMS13]] is 'Read', or
+
- to 'error', in case the message has been deleted without being
+ read, i.e. if the value of the X-Mms-Status element in the
+ M-Read-Orig.ind Protocol Data Unit [[!MMS13]] is 'Deleted without
+ being read'.
+
+ - set its
readTimestamp
attribute to the read
+ time, i.e. the 'Date' field in the M-Read-Orig.ind Protocol Data Unit
+ [[!MMS13]], in case the message has been read.
+
+ - Queue a task to fire an event named readsuccess or
+ readerror
+ respectively if the message has been read or not, with
+
+ - the
messageID
attribute set to the
+ messageID
attribute of mmsMessage,
+ - the
serviceID
attribute set to the
+ serviceID
attribute of mmsMessage,
+ - the
recipients
attribute set to the subset of the
+ original recipients of mmsMessageto which this read
+ report is related, and
+ - in case the message has been read, with each of the items in the
+
readTimestamps
attribute set to the read time of
+ the MMS message by the corresponding recipient, i.e. that in the
+ same position of the recipients
array.
+
+ - Queue a task to fire a system message of type
+
ReadReport
named readsuccess
or
+ readerror
respectively if the message has been read or not, with
+
+ - the
messageID
attribute set to the
+ messageID
attribute of mmsMessage,
+ - the
serviceID
attribute set to the
+ serviceID
attribute of mmsMessage,
+ - the
recipients
attribute set to the subset of the
+ original recipients of mmsMessageto which this read
+ report is related, and
+ - in case the message has been read, with each of the items in the
+
readTimestamps
attribute set to the read time of
+ the MMS message by the corresponding recipient, i.e. that in the
+ same position of the recipients
array.
+
+
+
+ The clear
method when invoked MUST run the following steps:
- Make a request to the system to delete all the messages associated to
the messaging service with identifier equal to the
serviceID
@@ -1352,38 +1448,54 @@ Event handlers
onreceived |
- received |
+ received |
MessagingEvent |
handles received messages |
onsent |
- sent |
+ sent |
MessagingEvent |
handles sent messages |
ondeliverysuccess |
- deliverysuccess |
+ deliverysuccess |
DeliveryReportEvent |
handles successful delivery reports |
- ondeliveryfailure |
- deliveryfailure |
+ ondeliveryerror |
+ deliveryerror |
DeliveryReportEvent |
handles failure delivery reports |
+
+ onreadsuccess |
+ readsuccess |
+ ReadReportEvent |
+ handles successful read reports |
+
+
+ onreaderror |
+ readerror |
+ ReadReportEvent |
+ handles failure read reports |
+
onserviceadded |
- serviceadded |
+ serviceadded |
ServiceChangeEvent |
handle new messaging services |
onserviceremoved |
- serviceremoved |
+ serviceremoved |
ServiceChangeEvent |
handle disabled messaging services |
@@ -1394,6 +1506,22 @@ Event handlers
+
+
+
+
+ - optional DOMString serviceID
+ - Identifier of the service through which the message is requested to be
+ sent.
+
+ - boolean requestDeliveryReport
+ - Flag to indicate whether a delivery report is requested.
+
+ - boolean requestReadReport
+ - Flag to indicate whether a read report is requested.
+
+
+
@@ -1526,6 +1654,10 @@
status and, if applicable, the delivery time to each of the recipients of the
message.
+ - readonly attribute boolean? readReportRequested
+ - MUST return true in case the originator of a received message requested
+ a read report and false otherwise. MUST return null for sent messages.
+
@@ -1596,19 +1728,30 @@
- - DeliveryStatus deliveryStatus
- -
- The delivery status of the MMS message to a specific recipient.
-
- DOMString recipient
-
The recipient of the MMS to which the delivery status is related.
+ - DeliveryStatus deliveryStatus
+ -
+ The delivery status of the MMS message to a specific recipient.
+
- Date deliveryTimestamp
- The time the message was delivered to the recipient, i.e. the 'Date'
field in the M-Delivery.ind Protocol Data Unit [[!MMS13]]. It is not
provided if there is no positive knowledge about the delivery of the
- message.
+ message.
+
+ - ReadStatus readStatus
+ -
+ The read status of the MMS message to a specific recipient.
+
+ - Date readTimestamp
+ - The time the message was read by the recipient, i.e. the 'Date'
+ field in the M-Read-Orig.ind Protocol Data Unit [[!MMS13]]. It is not
+ provided if there is no positive knowledge about the delivery of the
+ message.
+
@@ -1746,7 +1889,7 @@
- MUST return the identifier of the message to which this delivery
report is related.
- readonly attribute DOMString[] recipients
- - MUST return an array contining the addresses of the subset of the
+
- MUST return an array containing the addresses of the subset of the
original recipients of the message to which this delivery report is
related. As delivery reports related to just part of the recipients of the
MMS message are possible, this array may not contain the full list of
@@ -1765,6 +1908,42 @@
+
+
+
+
The ReadReport interface represents a system message related to
+ a read report of a sent MMS message. This event is originated from the system
+ and will start the application if it is not currently running.
+
+
The application that consumes this API MAY set a message handler for the
+ ReadReport
system message to listen for when a system
+ message related to a received read report is fired.
+
+
+ - readonly attribute DOMString serviceID
+ - MUST return the identifier of the service used to send the message to
+ which this read report is related.
+ - readonly attribute DOMString messageID
+ - MUST return the identifier of the message to which this read
+ report is related.
+ - readonly attribute DOMString[] recipients
+ - MUST return an array containing the addresses of the subset of the
+ original recipients of the message to which this read report is
+ related. As read reports related to just part of the recipients of the
+ MMS message are possible, this array may not contain the full list of
+ recipients to which the MMS message was sent.
+
+ - readonly attribute Date[]? readTimestamps
+ - MUST return an array containing the read dates by each of the
+ recipients to which this read report event relates. Each element in the
+ array refers to the recipient in the same position of the
+
recipients
array.
+
+
+
+
+
@@ -1793,7 +1972,7 @@
- MUST return the identifier of the message to which this delivery
report event is related.
- readonly attribute DOMString[] recipients
- - MUST return an array contining the addresses of the subset of the
+
- MUST return an array containing the addresses of the subset of the
original recipients of the message to which this delivery report event is
related. As delivery reports related to just part of the recipients of the
MMS message are possible, this array may not contain the full list of
@@ -1812,6 +1991,36 @@
+
+
+
+ The ReadReportEvent interface represents events related
+ to a read report of a sent message.
+
+ - readonly attribute DOMString serviceID
+ - MUST return the identifier of the service used to send the message to
+ which this read report event is related.
+ - readonly attribute DOMString messageID
+ - MUST return the identifier of the message to which this read
+ report event is related.
+ - readonly attribute DOMString[] recipients
+ - MUST return an array containing the addresses of the subset of the
+ original recipients of the message to which this read report event is
+ related. As read reports related to just part of the recipients of the
+ MMS message are possible, this array may not contain the full list of
+ recipients to which the MMS message was sent.
+
+ - readonly attribute Date[]? readTimestamps
+ - MUST return an array containing the read dates for each of the
+ recipients to which this read report event relates. Each element in the
+ array refers to the recipient in the same position of the
+
recipients
array.
+
+
+
+
+
@@ -2031,6 +2240,31 @@ Enumerations
+ The attibute readStatus
can have the following values:
+
+ - success
+ -
+ The message has been read by the recipient.
+
+
+ - pending
+ -
+ There is no positive knowledge that the message has been read by
+ the recipient.
+
+
+ - error
+ -
+ The delivery of the message has failed.
+
+
+ - not-applicable
+ -
+ The read status is not applicable either because a read report has
+ not been requested or because the message is an inbound message
+
+
+
The MMS fetch mode can have the following values:
- automatic