@@ -558,7 +558,16 @@ <h3>Steps</h3>
558
558
to the newly created < code > SmsMessage</ code > instance.
559
559
</ ol >
560
560
561
- < p > Upon a new MMS message being received, the < a > user agent</ a > MUST:
561
+ < p > The reception of an MMS message is a two-step process. Firstly an MMS
562
+ notification encapsulated in a WAP Push OTA message [[OMA-PUSH]] is received
563
+ at the device. This MMS notification contains limited information about the
564
+ MMS message and a URL where the device can retrieve the full MMS message from.
565
+ This retrieval may be automatic, i.e. performed right after the reception of
566
+ the MMS notification, or manual, i.e. needs to be invoked manually by the
567
+ user.
568
+
569
+ < p > Upon a new MMS notification being received, the < a > user agent</ a >
570
+ MUST:
562
571
< ol >
563
572
< li > create a new instance of < code > MmsMessage</ code >
564
573
< li > generate a identifier for this message that is globally unique within
@@ -569,46 +578,75 @@ <h3>Steps</h3>
569
578
< li > set the < code > type</ code > of the < code > MmsMessage</ code > to 'mms'
570
579
< li > set the < code > serviceID</ code > of the < code > MmsMessage</ code > to the
571
580
identifier of the service at which the message has been received.
572
- < li > set the < code > from</ code > of the < code > MmsMessage</ code > to the
573
- value of the 'From' field of the MMS message
574
- < li > set the < code > timestamp</ code > of the < code > MmsMessage</ code > to
575
- the value of the 'Date' field of the MMS message
576
581
< li > set the < code > read</ code > of the < code > MmsMessage</ code > to 'false'
577
- < li > add a new element in the < code > to</ code > array of the
578
- < code > MmsMessage</ code > for each of recipients in the 'To' field of the
579
- MMS message, if present
580
- < li > add a new element in the < code > cc</ code > array of the
581
- < code > MmsMessage</ code > for each of recipients in the 'Cc' field of the
582
- MMS message, if present
583
- < li > add a new element in the < code > bcc</ code > array of the
584
- < code > MmsMessage</ code > for each of recipients in the 'Bcc' field of the
585
- MMS message, if present
586
- < li > set the < code > subject</ code > element to the value of the 'Subject'
587
- field of the MMS message, if present
588
- < li > set the < code > smil</ code > element to a < code > DOMString</ code >
589
- containing the SMIL object of the received MMS message, if present
590
- < li > for each of the media files attached to the received MMS message add a
591
- new element to the < code > attachments</ code > array with:
592
- < ol >
593
- < li > a new < code > Blob</ code > object including the media type and the
594
- actual content of the attachment.
595
- < li > the < code > contentID</ code > attribute filled with the Content-ID used
596
- to reference this element from the SMIL object in the incoming MMS
597
- message, if present.
598
- < li > the < code > contentLocation</ code > attribute filled with the
599
- Content-Location used to reference this element from the SMIL object in
600
- the incoming MMS message, if present.
601
- </ ol >
602
- < li > set the < code > state</ code > of the < code > MmsMessage</ code > to
603
- 'received' if the message has been downloaded or otherwise to
604
- 'not-downloaded'
605
- < li > add a new element in the < code > deliveryStatus</ code > array of the
606
- < code > MmsMessage</ code > for each of recipients in the 'To', 'Cc' and 'Bcc'
607
- fields with value 'not-applicable'
582
+ < li > if the fetch mode is manual:
583
+ < ol >
584
+ < li > set the < code > from</ code > of the < code > MmsMessage</ code > to the
585
+ value of the 'From' field of the MMS notification, if present
586
+ < li > add a new element in the < code > to</ code > array of the
587
+ < code > MmsMessage</ code > for each of recipients in the 'To' field of the
588
+ MMS notification, if present
589
+ < li > add a new element in the < code > cc</ code > array of the
590
+ < code > MmsMessage</ code > for each of recipients in the 'Cc' field of the
591
+ MMS notification, if present
592
+ < li > add a new element in the < code > bcc</ code > array of the
593
+ < code > MmsMessage</ code > for each of recipients in the 'Bcc' field of the
594
+ MMS notification, if present
595
+ < li > set the < code > subject</ code > element to the value of the 'Subject'
596
+ field of the MMS notification, if present
597
+ < li > set the < code > state</ code > of the < code > MmsMessage</ code > to
598
+ 'not-downloaded'
599
+ </ ol >
600
+ < li > if the fetch mode is otherwise automatic:
601
+ < ol >
602
+ < li > make a request to the system to fetch the MMS message from the URL
603
+ indicated in the X-Mms-Content-Location field of the MMS notification.
604
+ Once the MMS has been fetched continue with following steps.
605
+ < li > run the < dfn id ="dfn-fill-mms-message "> steps for filling the
606
+ < code > MmsMessage</ code > object with the data contained in the MMS
607
+ message</ dfn >
608
+ < ol >
609
+ < li > set the < code > from</ code > of the < code > MmsMessage</ code > to the
610
+ value of the 'From' field of the MMS message
611
+ < li > set the < code > timestamp</ code > of the < code > MmsMessage</ code > to
612
+ the value of the 'Date' field of the MMS message
613
+ < li > add a new element in the < code > to</ code > array of the
614
+ < code > MmsMessage</ code > for each of recipients in the 'To' field of the
615
+ MMS message, if present
616
+ < li > add a new element in the < code > cc</ code > array of the
617
+ < code > MmsMessage</ code > for each of recipients in the 'Cc' field of the
618
+ MMS message, if present
619
+ < li > add a new element in the < code > bcc</ code > array of the
620
+ < code > MmsMessage</ code > for each of recipients in the 'Bcc' field of the
621
+ MMS message, if present
622
+ < li > set the < code > subject</ code > element to the value of the 'Subject'
623
+ field of the MMS message, if present
624
+ < li > set the < code > smil</ code > element to a < code > DOMString</ code >
625
+ containing the SMIL object of the received MMS message, if present
626
+ < li > for each of the media files attached to the received MMS message add a
627
+ new element to the < code > attachments</ code > array with:
628
+ < ol >
629
+ < li > a new < code > Blob</ code > object including the media type and the
630
+ actual content of the attachment.
631
+ < li > the < code > contentID</ code > attribute filled with the Content-ID used
632
+ to reference this element from the SMIL object in the incoming MMS
633
+ message, if present.
634
+ < li > the < code > contentLocation</ code > attribute filled with the
635
+ Content-Location used to reference this element from the SMIL object in
636
+ the incoming MMS message, if present.
637
+ </ ol >
638
+ </ ol >
639
+ < li > set the < code > state</ code > of the < code > MmsMessage</ code > to
640
+ 'received'
641
+ < li > add a new element in the < code > deliveryStatus</ code > array of the
642
+ < code > MmsMessage</ code > for each of recipients in the 'To', 'Cc' and 'Bcc'
643
+ fields with value 'not-applicable'
644
+ </ ol >
608
645
< li > < a > queue a task</ a > to < a > fire an event</ a > named
609
646
< code > < a > received</ a > </ code > with the < code > message</ code > attribute set
610
647
to the newly created < code > MmsMessage</ code > instance.
611
648
</ ol >
649
+ </ ol >
612
650
613
651
< p > The < dfn > < code > clear</ code > </ dfn > method when invoked MUST run the
614
652
following steps:
@@ -1078,8 +1116,10 @@ <h3>Steps</h3>
1078
1116
</ ol >
1079
1117
</ ol >
1080
1118
1081
- < p > The < dfn > < code > fetch</ code > </ dfn > method when invoked MUST run the
1082
- following steps:
1119
+ < p > The < dfn > < code > fetch</ code > </ dfn > method can be invoked to fetch an MMS
1120
+ message that has not been automatically fetched upon receiving the
1121
+ corresponding MMS notification due to the fetch mode being manual. When this
1122
+ method is invoked the User Agent MUST run the following steps:
1083
1123
< ol >
1084
1124
< li > Create a new < code > MessagingRequest</ code > object
1085
1125
< li > If the < code > messageID</ code > parameter passed in the request matches with an
@@ -1092,6 +1132,8 @@ <h3>Steps</h3>
1092
1132
handler</ a > of the < code > MessagingRequest</ code > object
1093
1133
< li > When the request has been completed:
1094
1134
< ol >
1135
+ < li > run the < a href ="#dfn-fill-mms-message "> steps for filling the
1136
+ < code > MmsMessage</ code > object with the data contained in the MMS message</ a >
1095
1137
< li > set the < code > readyState</ code > of the
1096
1138
< code > MessagingRequest</ code > object to 'done'
1097
1139
< li > set the < code > result</ code > of the < code > MessagingRequest</ code >
0 commit comments