summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3863.txt
blob: 1086510c66b55eb30d18abaa8f040b5fe1f9c677 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
Network Working Group                                          H. Sugano
Request for Comments: 3863                                   S. Fujimoto
Category: Standards Track                                        Fujitsu
                                                                G. Klyne
                                                            Nine by Nine
                                                              A. Bateman
                                                              VisionTech
                                                                 W. Carr
                                                                   Intel
                                                             J. Peterson
                                                                 NeuStar
                                                             August 2004


                Presence Information Data Format (PIDF)

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2004).

Abstract

   This memo specifies the Common Profile for Presence (CPP) Presence
   Information Data Format (PIDF) as a common presence data format for
   CPP-compliant Presence protocols, and also defines a new media type
   "application/pidf+xml" to represent the XML MIME entity for PIDF.

Table of Content

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
       1.1.  Terminology and Conventions. . . . . . . . . . . . . . .  3
   2.  Design Decisions . . . . . . . . . . . . . . . . . . . . . . .  3
       2.1.  Minimal Model. . . . . . . . . . . . . . . . . . . . . .  3
       2.2.  Added Features . . . . . . . . . . . . . . . . . . . . .  4
       2.3.  XML Encoding Decision. . . . . . . . . . . . . . . . . .  5
   3.  Overview of Presence Information Data Format . . . . . . . . .  5
       3.1.  The 'application/pidf+xml' Content Type. . . . . . . . .  5
       3.2.  Presence Information Contents. . . . . . . . . . . . . .  5
   4.  XML-encoded Presence Data Format . . . . . . . . . . . . . . .  6
       4.1.  XML Format Definitions . . . . . . . . . . . . . . . . .  6



Sugano, et al.              Standards Track                     [Page 1]
^L
RFC 3863            Presence Information Data Format         August 2004


             4.1.1. The <presence> element. . . . . . . . . . . . . .  6
             4.1.2. The <tuple> element . . . . . . . . . . . . . . .  7
             4.1.3. The <status> element. . . . . . . . . . . . . . .  8
             4.1.4. The <basic> element . . . . . . . . . . . . . . .  8
             4.1.5. The <contact> element . . . . . . . . . . . . . .  8
             4.1.6. The <note> element. . . . . . . . . . . . . . . .  9
             4.1.7. The <timestamp> element . . . . . . . . . . . . .  9
       4.2.  Presence Information Extensibility . . . . . . . . . . . 10
             4.2.1. XML Namespaces Background . . . . . . . . . . . . 10
             4.2.2. XML Namespaces In Presence Information. . . . . . 11
             4.2.3. Handling Of Unrecognized Element Names. . . . . . 12
             4.2.4. Status Value Extensibility. . . . . . . . . . . . 12
             4.2.5. Standardizing Status Extensions . . . . . . . . . 13
       4.3.  Examples . . . . . . . . . . . . . . . . . . . . . . . . 14
             4.3.1. Default Namespace with Status Extensions. . . . . 14
             4.3.2. Presence with Other Extension Elements. . . . . . 15
             4.3.3. Example Mandatory To Understand Elements. . . . . 16
       4.4.  XML Schema Definitions . . . . . . . . . . . . . . . . . 16
   5.  IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 18
       5.1.  Content-type registration for 'application/pidf+xml' . . 18
       5.2.  URN sub-namespace registration for
             'urn:ietf:params:xml:ns:pidf'. . . . . . . . . . . . . . 19
       5.3.  URN sub-namespace registration for
             'urn:ietf:params:xml:ns:pidf:status' . . . . . . . . . . 20
   6.  Security Considerations. . . . . . . . . . . . . . . . . . . . 21
   7.  Internationalization Considerations. . . . . . . . . . . . . . 22
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
       8.1.  Normative References . . . . . . . . . . . . . . . . . . 22
       8.2.  Informative References . . . . . . . . . . . . . . . . . 23
   Appendix A. Document Type Definitions. . . . . . . . . . . . . . . 25
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 26
   Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 28

1.  Introduction

   The Common Profiles for Instant Messaging (CPIM) [CPIM] and Presence
   (CPP) [CPP] specifications define a set of operations and parameters
   to achieve interoperability between different Instant Messaging and
   Presence protocols which meet RFC 2779 [RFC2779].

   This memo further defines the Presence Information Data Format (PIDF)
   as a common presence data format for CPP-compliant presence
   protocols, allowing presence information to be transferred across
   CPP-compliant protocol boundaries without modification, with
   attendant benefits for security and performance.






Sugano, et al.              Standards Track                     [Page 2]
^L
RFC 3863            Presence Information Data Format         August 2004


   The format specified in this memo defines the base presence format
   and extensibility required by RFC 2779.  It defines a minimal set of
   presence status values defined by the IMPP Model document [RFC2778].
   However, a presence application is able to define its own status
   values using the extensibility framework provided by this memo.
   Defining such extended status values is beyond the scope of this
   memo.

   Note also that this memo defines only the format for a presence data
   payload and the extensibility framework for it.  How the presence
   data is transferred within a specific protocol frame would be defined
   separately in a protocol specification.

1.1.  Terminology and Conventions

   This memo makes use of the vocabulary defined in the IMPP Model
   document [RFC2778].  Terms such as CLOSED, INSTANT MESSAGE, OPEN,
   PRESENCE SERVICE, PRESENTITY, WATCHER, and WATCHER USER AGENT in the
   memo are used in the same meaning as defined therein.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT",
   "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
   interpreted as described in BCP 14, RFC 2119 [RFC2119].

2.  Design Decisions

   We have adopted the IMPP Model and Requirements documents [RFC2778,
   RFC2779] as the starting point of our discussion.  The two RFCs
   contain a number of statements about presence information, which can
   be regarded as a basic set of constraints for the format design.
   Also, we took the minimalist approach to the design based on them.
   Starting from the minimal model, only the features that are necessary
   to solve particular problems have been included.

2.1. Minimal Model

   This specification is based on the minimal model extracted from the
   IMPP Model and Requirements documents.  The model consists of the
   following items.  Each of them is accompanied with the corresponding
   RFCs and their section numbers as its grounds, e.g.,
   (RFC2778:Sec.2.4) refers to Section 2.4 of RFC 2778.

   (a) PRESENCE INFORMATION consists of one or more PRESENCE TUPLES,
       where a PRESENCE TUPLE consists of a STATUS, an optional
       COMMUNICATION ADDRESS, and optional OTHER PRESENCE MARKUP.  Note
       that the CONTACT ADDRESS in a COMMUNICATIONS ADDRESS is
       understood in this document to refer only to a URI
       (RFC2778:Sec.3).



Sugano, et al.              Standards Track                     [Page 3]
^L
RFC 3863            Presence Information Data Format         August 2004


   (b) STATUS has at least the mutually-exclusive values OPEN and
       CLOSED, which have meaning for the acceptance of INSTANT
       MESSAGES, and may have meaning for other COMMUNICATION MEANS.
       There may be other values of STATUS that do not imply anything
       about INSTANT MESSAGE acceptance.  These other values of STATUS
       may be combined with OPEN and CLOSED or they may be mutually-
       exclusive with those values (RFC2778:Sec.3, RFC2779:Sec.4.4.1-
       4.4.3).

   (c) STATUS may consist of single or multiple values.(RFC2778:Sec.2.4)

   (d) There must be a means of extending the common presence format to
       represent additional information not included in the common
       format.  The extension and registration mechanisms must be
       defined for presence information schema, including new STATUS
       conditions and new forms for OTHER PRESENCE MARKUP
       (RFC2779:Sec.3.1.4-3.1.5).

   (e) The common presence format must include a means to uniquely
       identify the PRESENTITY whose PRESENCE INFORMATION is reported
       (RFC2779:Sec.3.1.2).

   (f) The common presence format must allow the PRESENTITY to secure
       presence information sent to a WATCHER.  The format must allow
       integrity, confidentiality and authentication properties to be
       applied to presence information (RFC2779:Sec5.2.1, 5.2.4, 5.3.1,
       5.3.3).

2.2.  Added Features

   In addition to the minimal model described above, the format
   specified in this specification has the following features.

   (a) Relative priorities of contact addresses are specifiable in order
        to allow the source of PRESENCE INFORMATION to tell the receiver
        (WATCHER USER AGENTS) its preference over multiple contact
        means.

   (b) The presence format is able to contain the timestamp of the
        creation of the PRESENCE INFORMATION.  The timestamp in the
        presence document lets the receiver know the time of the
        creation of the data even if the message containing it is
        delayed.  It can also be used to detect a replay attack,
        independent of the underlying signature mechanism.  Note that
        this mechanism does not assume any global time synchronization
        system for watchers and presentities (see Appendix A of RFC2779,
        8.1.4 A7), but rather assumes that the minimum length of time
        that might pass before presence information is considered stale



Sugano, et al.              Standards Track                     [Page 4]
^L
RFC 3863            Presence Information Data Format         August 2004


        is long enough that minor variations among system clocks will
        not lead to misjudgments of the freshness of presence
        information.

2.3.  XML Encoding Decision

   The Presence Information Data Format encodes presence information in
   XML (eXtensible Markup Language [XML]).  Regarding the features of
   PRESENCE INFORMATION discussed above, such that it has a hierarchical
   structure and it should be fully extensible, XML is considered as the
   most desirable framework over other candidates such as vCard [vCard].

3.  Overview of Presence Information Data Format

   This section describes an overview of the presence data format
   defined in this memo.

3.1.  The 'application/pidf+xml' Content Type

   This memo defines a new content type "application/pidf+xml" for an
   XML MIME entity that contains presence information.  This
   specification follows the recommendations and conventions described
   in [RFC3023], including the naming convention of the type ('+xml'
   suffix) and the usage of the 'charset' parameter.

   Although it is defined as optional, use of the 'charset' parameter is
   RECOMMENDED.  If the 'charset' parameter is not specified, conforming
   XML processors MUST follow the requirements in section 4.3.3 of
   [XML].

3.2.  Presence Information Contents

   This subsection outlines the information in an "application/pidf+xml"
   document.  A full definition of the PIDF content is in Section 4.

   o PRESENTITY URL: specifies the "pres" URL of the PRESENTITY.
   o List of PRESENCE TUPLES
     - Identifier: token to identify this tuple within the presence
       information.
     - STATUS: OPEN/CLOSED and/or extension status values.
     - COMMUNICATION ADDRESS: COMMUNICATION MEANS and CONTACT
         ADDRESS of this tuple. (optional)
     - Relative priority: numerical value specifying the priority
         of this COMMUNICATION ADDRESS. (optional)
     - Timestamp: timestamp of the change of this tuple.(optional)
     - Human readable comment: free text memo about this tuple
         (optional)




Sugano, et al.              Standards Track                     [Page 5]
^L
RFC 3863            Presence Information Data Format         August 2004


   o PRESENTITY human readable comment: free text memo about the
       PRESENTITY (optional).

4.  XML-encoded Presence Data Format

   This section defines an XML-encoded presence information data format
   (PIDF) for use with CPP compliant systems.  A presence payload in
   this format is expected to be produced by the PRESENTITY (the source
   of the PRESENCE INFORMATION) and transported to the WATCHERS by the
   presence servers or gateways without any interpretation or
   modification.

4.1.  XML Format Definitions

   A PIDF object is a well formed XML document.

   It MUST have the XML declaration and it SHOULD contain an encoding
   declaration in the XML declaration, e.g., "<?xml version='1.0'
   encoding='UTF-8'?>".  If the charset parameter of the MIME content
   type declaration is present and it is different from the encoding
   declaration, the charset parameter takes precedence.

   Every application conformant to this specification MUST accept the
   UTF-8 character encoding to ensure the minimal interoperability.

4.1.1.  The <presence> element

   PIDF elements are associated with the XML namespace name
   'urn:ietf:params:xml:ns:pidf', declared using an xmlns attribute, per
   [XML-NS].  The namespace may be a default namespace, or may be
   associated with some namespace prefix (see section 4.2.2 for
   examples).

   The root of an "application/pidf+xml" object is a <presence> element
   associated with the presence information namespace.  This contains
   any number (including 0) of <tuple> elements, followed by any number
   (including 0) of <note> elements, followed by any number of OPTIONAL
   extension elements from other namespaces.

   The <presence> element MUST have an 'entity' attribute.  The value of
   the 'entity' attribute is the 'pres' URL of the PRESENTITY publishing
   this presence document.

   The <presence> element MUST contain a namespace declaration ('xmlns')
   to indicate the namespace on which the presence document is based.
   The presence document compliant to this specification MUST have the
   namespace 'urn:ietf:params:xml:ns:pidf:'.




Sugano, et al.              Standards Track                     [Page 6]
^L
RFC 3863            Presence Information Data Format         August 2004


   It MAY contain other namespace declarations for the extensions used
   in the presence XML document.

4.1.2.  The <tuple> element

   The <tuple> element carries a PRESENCE TUPLE, consisting of a
   mandatory <status> element, followed by any number of OPTIONAL
   extension elements (possibly from other namespaces), followed by an
   OPTIONAL <contact> element, followed by any number of OPTIONAL <note>
   elements, followed by an OPTIONAL <timestamp> element.

   Tuples provide a way of segmenting presence information.  Protocols
   or applications may choose to segment the presence information
   associated with a presentity for any number of reasons - for example,
   because components of the full presence information for a presentity
   have come from distinct devices or different applications on the same
   device, or have been generated at different times.  Tuples should be
   preferred over other manners of segmenting presence information such
   as creating multiple PIDF instances.

   The <tuple> element MUST contain an 'id' attribute which is used to
   distinguish this tuple from other tuples in the same PRESENTITY.  The
   value of an 'id' attribute MUST be unique within 'id' attribute
   values of other tuples for the same PRESENTITY.  An 'id' value is
   used by applications processing the presence document to identify the
   corresponding tuple in the previously acquired PRESENCE INFORMATION
   of the same PRESENTITY.  The value of the 'id' attribute is an
   arbitrary string, and has no significance beyond providing a means to
   distinguish <tuple> values, as noted above.

   The <contact> element is OPTIONAL because a PRESENTITY might need to
   hide its COMMUNICATION ADDRESS or there might be tuples not related
   to any COMMUNICATION MEANS.  Tuples that contain a <basic> status
   element SHOULD contain a <contact> address.  Tuples MAY contain
   conflicting presence status - one <tuple> might provide a <basic>
   <status> of OPEN, and another <tuple> in the same PIDF could contain
   a <basic> <status> of CLOSED, even if they both contain the same
   <contact> address.

   The manner in which segmented presence information is understood by
   the WATCHER USER AGENT is highly dependent on the capabilities of the
   WATCHER USER AGENT and the presence application in question.  In the
   absence of any application-specific or protocol-specific
   understanding of the meaning of tuples, WATCHER USER AGENTS MAY obey
   the following guidelines.  WATCHER USER AGENTS should note which
   tuples in the PIDF have changed their state since the last





Sugano, et al.              Standards Track                     [Page 7]
^L
RFC 3863            Presence Information Data Format         August 2004


   notification by correlating the 'id' of each <tuple> with those
   received in previous notifications and comparing both <status> values
   and <timestamp> elements in the tuples, if any are present.

4.1.3.  The <status> element

   The <status> element contains one OPTIONAL <basic> element, followed
   by any number of OPTIONAL extension elements (possibly from other
   namespaces), under the restriction that at least one child element
   appears in the <status> element.  These children elements of <status>
   contain status values of this tuple.  By allowing multiple status
   values in a single <tuple> element, different types of status values,
   e.g., reachability and location, can be represented by a <tuple>.
   See Section 4.3 for an example with multiple status values.

   This memo only defines the <basic> status value element.  Other
   status values may be included using the standard extensibility
   framework (see Section 4.2.4).  Applications encountering
   unrecognized elements within <status> may ignore them, unless they
   carry a mustUnderstand="true" or mustUnderstand="1" attribute (see
   section 4.2.3).

   Note that, while the <status> element MUST have at least one status
   value element, this status value might not be the <basic> element.

4.1.4.  The <basic> element

   The <basic> element contains one of the following strings: "open" or
   "closed".

   The values "open" and "closed" indicate availability to receive
   INSTANT MESSAGES if the <tuple> is for an instant messaging address.
   They also indicate general availability for other communication
   means, but this memo does not specify these in detail.

   open: In the context of INSTANT MESSAGES, this value means that the
      associated <contact> element, if any, corresponds to an INSTANT
      INBOX that is ready to accept an INSTANT MESSAGE.

   closed: In the context of INSTANT MESSAGES, this value means that
      the associated <contact> element, if any, corresponds to an
      INSTANT INBOX that is unable to accept an INSTANT MESSAGE.

4.1.5.  The <contact> element

   The <contact> element contains a URL of the contact address.  It
   optionally has a 'priority' attribute, whose value means a relative
   priority of this contact address over the others.  The value of the



Sugano, et al.              Standards Track                     [Page 8]
^L
RFC 3863            Presence Information Data Format         August 2004


   attribute MUST be a decimal number between 0 and 1 inclusive with at
   most 3 digits after the decimal point.  Higher values indicate higher
   priority.  Examples of priority values are 0, 0.021, 0.5, 1.00. If
   the 'priority' attribute is omitted, applications MUST assign the
   contact address the lowest priority.  If the 'priority' value is out
   of the range, applications just SHOULD ignore the value and process
   it as if the attribute was not present.

   Applications SHOULD handle contacts with a higher priority as they
   have precedence over those with lower priorities.  How they are
   actually treated is beyond this specification.  Also, how to handle
   contacts with the same priority is up to implementations.

4.1.6.  The <note> element

   The <note> element contains a string value, which is usually used for
   a human readable comment.  A <note> element MAY appear as a child
   element of <presence> or as a child element of the <tuple> element.
   In the former case the comment is about the PRESENTITY and in the
   latter case the comment is regarding the particular tuple.

   Note that, wherever it appears, a <note> element SHOULD NOT be used,
   and interpreted, as a non-interoperable substitute for status of its
   parent element.

   The <note> element SHOULD have a special attribute 'xml:lang' to
   specify the language used in the contents of this element as defined
   in Section 2.12 of [XML].  The value of this attribute is the
   language identifier as defined by [RFC3066].  It MAY be omitted when
   the language used is implied by the larger context such as the
   encoding information of the contents, such as an xml:lang attribute
   on an enclosing XML element, or a Content-language header [RFC3282]
   on an enclosing MIME wrapper.

4.1.7.  The <timestamp> element

   The <timestamp> element contains a string indicating the date and
   time of the status change of this tuple.  The value of this element
   MUST follow the IMPP datetime format [RFC3339].  Timestamps that
   contain 'T' or 'Z' MUST use the capitalized forms.

   As a security measure, the <timestamp> element SHOULD be included in
   all tuples unless the exact time of the status change cannot be
   determined.  For security guidelines for watchers receiving presence
   information with timestamps, see the Security Considerations.

   A PRESENTITY MUST NOT generate successive <presence> elements
   containing the same timestamp.



Sugano, et al.              Standards Track                     [Page 9]
^L
RFC 3863            Presence Information Data Format         August 2004


4.2.  Presence Information Extensibility

   The presence information extensibility framework is based on XML
   namespaces [XML-NS].

   RFC 2779 requires that PIDF have a means of extending <status> values
   beyond <basic>.  These extensions MUST NOT modify how <basic> is to
   be understood, nor change the structure or semantics of PIDF bodies
   themselves.  These extensions merely allow protocols and applications
   to define richer presence data.

4.2.1.  XML Namespaces Background

   All elements and some attributes are associated with a "namespace",
   which is in turn associated with a globally unique URI.  Any
   developer can introduce their own element names, avoiding conflict by
   choosing an appropriate namespace URI.

   Within the presence data, element or attribute names are associated
   with a particular namespace by a namespace prefix, which is a leading
   part of the name, followed by a colon (":"); e.g.,

      <prefix:element-name ...> ... </prefix:element-name>

   Where, 'prefix' is the header name prefix, 'element-name' is a name
   which is scoped by the namespace associated with 'prefix'.  Note that
   the choice of 'prefix' is quite arbitrary;  it is the corresponding
   URI that defines the naming scope.  Two different prefixes associated
   with the same namespace URI refer to the same namespace.

   A default namespace can be declared for XML elements without a
   namespace prefix.  The default namespace does NOT apply to attribute
   names, but interpretation of an unprefixed attribute can be
   determined by the containing element.

   A namespace is identified by a URI.  In this usage, the URI is used
   simply as a globally unique identifier, and there is no requirement
   that it can be used to retrieve a web resource, or for any other
   purpose.  Any legal globally unique URI MAY be used to identify a
   namespace.  (By "globally unique", we mean constructed according to
   some set of rules so that it is reasonable to expect that nobody else
   will use the same URI for a different purpose.)

   For further details, see the XML namespace specification [XML-NS].







Sugano, et al.              Standards Track                    [Page 10]
^L
RFC 3863            Presence Information Data Format         August 2004


4.2.2.  XML Namespaces In Presence Information

   A URI used as a namespace identifier in PRESENCE INFORMATION data
   MUST be a full absolute-URI, per RFC 2396 [URI].  (Relative URIs and
   URI-references containing fragment identifiers MUST NOT be used for
   this purpose.)

   The namespace URI for elements defined by this specification is a URN
   [URN], using the namespace identifier 'ietf' defined by [URN-NS-IETF]
   and extended by [XML-Registry]:

      urn:ietf:params:xml:ns:pidf

   Thus, simple presence data might be thus:

   <?xml version="1.0" encoding="UTF-8"?>
   <impp:presence xmlns:impp="urn:ietf:params:xml:ns:pidf"
       entity="pres:someone@example.com">
     <impp:tuple id="sg89ae">
       <impp:status>
         <impp:basic>open</impp:basic>
       </impp:status>
       <impp:contact priority="0.8">tel:+09012345678</impp:contact>
     </impp:tuple>
   </impp:presence>

   , using a default XML namespace:

   <?xml version="1.0" encoding="UTF-8"?>
   <presence xmlns="urn:ietf:params:xml:ns:pidf"
       entity="pres:someone@example.com">
     <tuple id="sg89ae">
       <status>
         <basic>open</basic>
       </status>
       <contact priority="0.8">tel:+09012345678</contact>
     </tuple>
   </presence>

   As is generally the case in XML with namespaces, the xmlns attribute
   can be used on any element in the presence information to define
   either the default namespace or a namespace associated with a
   namespace prefix.








Sugano, et al.              Standards Track                    [Page 11]
^L
RFC 3863            Presence Information Data Format         August 2004


4.2.3.  Handling Of Unrecognized Element Names

   Except as noted below, a processor of PRESENCE INFORMATION MUST
   ignore any XML element with an unrecognized name (i.e., having an
   unrecognized namespace URI, or an unrecognized local name within that
   namespace).  This includes all of the element content, even if it
   appears to contain elements with recognized names.

   Extensions to PIDF are informational in nature - they provide
   additional information beyond <basic> status.  However, in order to
   understand a complex extension, nested elements within an extension
   element might need to be marked as mandatory.  In such cases, the
   element name is qualified with a mustUnderstand='true' or
   mustUnderstand='1' attribute.  See section 4.3.3 for an example.

      NOTE:  a mustUnderstand='true' or mustUnderstand='1' attribute
      within an element that is being ignored is itself ignored.  The
      writer of nested mandatory-to-understand information is
      responsible for ensuring that any enclosing element is also
      labelled with a mustUnderstand='true' or mustUnderstand='1'
      attribute, if necessary.

   This specification defines (section 4.1) elements within the
   'urn:ietf:params:xml:ns:pidf' namespace that MUST be recognized in
   CPP presence data.  Processors MUST handle these as described, even
   if they do not carry a mustUnderstand attribute.  The XML Schema
   Definition (section 4.4) indicates those elements that MUST be
   present in a valid presence information document.

   If an agent receives PRESENCE INFORMATION with a <status> block
   containing an unrecognized element with a mustUnderstand='true' (or
   '1') attribute, it should treat that entire element and any content
   as unrecognized and not attempt to process it.

   In order to ensure that minimal implementations can correctly process
   basic PIDF information the mustUnderstand attribute MUST be used only
   within optional elements nested in a <status> element.  This will
   ensure that problems processing an extension are restricted to that
   extension and do not affect the processing of the basic PIDF
   information defined in this specification.

4.2.4. Status Value Extensibility

   This memo defines only the <basic> status value with values of "open"
   and "closed".  Other status values are possible using the standard
   namespace-based extensibility rules defined above.





Sugano, et al.              Standards Track                    [Page 12]
^L
RFC 3863            Presence Information Data Format         August 2004


   For example, a location status value might be included thus:

   <?xml version="1.0" encoding="UTF-8"?>
   <presence xmlns="urn:ietf:params:xml:ns:pidf"
       xmlns:local="urn:example-com:pidf-status-type"
       entity="pres:someone@example.com">
     <tuple id="ub93s3">
       <status>
         <basic>open</basic>
         <local:location>home</local:location>
       </status>
       <contact>im:someone@example.com</contact>
     </tuple>
   </presence>

   Some new status values will 'extend' the value of the <basic>
   element.  For example, a status value defined for use with instant
   messaging may include values such as 'away', 'busy' and 'offline'.
   In order that some level of interoperability be maintained with user
   agents that don't recognize the new extension, the <basic> status
   value must also be included.  This means that extensions are not
   obligated to define a mapping from each of their values to OPEN or
   CLOSED.

4.2.5.  Standardizing Status Extensions

   Although the existing PIDF definition allows arbitrary elements to
   appear in the <status> element, it may be sometimes desirable to
   standardize extension status elements and their semantics (the
   meanings of particular statuses, how they should be interpreted).
   The URN 'urn:ietf:params:xml:ns:pidf:status' has been specified as an
   umbrella namespace under which extensions to the <status> PIDF
   element should be specified (e.g.,
   urn:ietf:params:xml:ns:pidf:status:my-extension).  New values under
   this namespace MUST be defined by a standards-track RFC.

   The following example XML Schema defines an extension for <location>
   presence information, which can have the values of 'home', 'office',
   or 'car'.  If the <location> element were standardized, this document
   would be made available in an RFC along with information about the
   use of the extension.  These extensions should use the namespace
   'urn:ietf:params:xml:ns:pidf:status', and each RFC defining an
   extension should register an extension name within that namespace
   with IANA.

   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:pidf:status"
        xmlns:tns="urn:ietf:params:xml:ns:pidf:status"



Sugano, et al.              Standards Track                    [Page 13]
^L
RFC 3863            Presence Information Data Format         August 2004


        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">

     <xs:simpleType name="location">
       <xs:restriction base="xs:string">
         <xs:enumeration value="home"/>
         <xs:enumeration value="office"/>
         <xs:enumeration value="car"/>
       </xs:restriction>
     </xs:simpleType>

   </xs:schema>

   In addition to the XML Schema to validate the extension, registration
   of the extension name with IANA, RFCs defining extensions MUST
   discuss:

   -  The domain of applicability of the extension.  Is this extension
      exclusively valuable to IM clients, telephones, geolocators, etc?
      What sorts of presence applications would use this extension and
      under what circumstances?

   -  Semantics for the presence states defined in the extension.  What
      disposition provokes an automated presentity to declare that it is
      in state X, or does a human select X from a drag-down menu? Is
      there any general guidance for watchers of presence information
      with state Y (for example, how they should best attempt to
      communicate with the presentity, if at all, when the principal is
      in state Y).

   Extensions SHOULD also discuss:

   -  How, if at all, any presence states defined in the extension
      related to <basic>, or to any relevant extension previously
      published in an RFC.  For example, "state Z implies OPEN, so it
      MUST NOT be used if a basic state of CLOSED is expressed", or
      "you should use the extension in this document, not the extension
      in RFC QQQQ, if your circumstances are as follows...."

4.3.  Examples

4.3.1.  Default Namespace with Status Extensions

   The following instance document uses a hypothetical 'pidf:im' XML
   namespace as an example of the sort of status extension that might be
   developed for PIDF.




Sugano, et al.              Standards Track                    [Page 14]
^L
RFC 3863            Presence Information Data Format         August 2004


   <?xml version="1.0" encoding="UTF-8"?>
   <presence xmlns="urn:ietf:params:xml:ns:pidf"
        xmlns:im="urn:ietf:params:xml:ns:pidf:im"
        xmlns:myex="http://id.example.com/presence/"
        entity="pres:someone@example.com">
     <tuple id="bs35r9">
       <status>
         <basic>open</basic>
         <im:im>busy</im:im>
         <myex:location>home</myex:location>
       </status>
       <contact priority="0.8">im:someone@mobilecarrier.net</contact>
       <note xml:lang="en">Don't Disturb Please!</note>
       <note xml:lang="fr">Ne derangez pas, s'il vous plait</note>
       <timestamp>2001-10-27T16:49:29Z</timestamp>
     </tuple>
     <tuple id="eg92n8">
       <status>
         <basic>open</basic>
       </status>
       <contact priority="1.0">mailto:someone@example.com</contact>
     </tuple>
     <note>I'll be in Tokyo next week</note>
   </presence>

4.3.2.  Presence with Other Extension Elements

   <?xml version="1.0" encoding="UTF-8"?>
   <impp:presence xmlns:impp="urn:ietf:params:xml:ns:pidf"
        xmlns:myex="http://id.example.com/presence/"
        entity="pres:someone@example.com">
     <impp:tuple id="ck38g9">
       <impp:status>
         <impp:basic>open</impp:basic>
       </impp:status>
       <myex:mytupletag>Extended value in tuple</myex:mytupletag>
       <impp:contact priority="0.65">tel:+09012345678</impp:contact>
     </impp:tuple>
     <impp:tuple id="md66je">
       <impp:status>
         <impp:basic>open</impp:basic>
       </impp:status>
       <impp:contact priority="1.0">
          im:someone@mobilecarrier.net</impp:contact>
     </impp:tuple>
     <myex:mytag>My extended presentity information</myex:mytag>
   </impp:presence>




Sugano, et al.              Standards Track                    [Page 15]
^L
RFC 3863            Presence Information Data Format         August 2004


4.3.3.  Example Mandatory To Understand Elements

   <?xml version="1.0" encoding="UTF-8"?>
   <impp:presence xmlns:impp="urn:ietf:params:xml:ns:pidf"
        xmlns:myex="http://id.mycompany.com/presence/"
        entity="pres:someone@example.com">
     <impp:tuple id="tj25ds">
       <impp:status>
         <impp:basic>open</impp:basic>
       </impp:status>
       <myex:complexExtension>
         <myex:ex1 impp:mustUnderstand="1">val1</myex:ex1>
         <myex:ex2>val2</myex:ex2>
       </myex:complexExtension>
       <impp:contact priority="0.725">tel:+09012345678</impp:contact>
     </impp:tuple>
     <myex:mytag>My extended presentity information</myex:mytag>
   </impp:presence>

   Here, <myex:ex1> must be understood and, if it is not recognized,
   <myex:complexExtension> MUST be ignored.   <myex:mytag> and
   <myex:ex2> MAY be ignored if they are not recognized.

4.4.  XML Schema Definitions

   This section gives the XML Schema Definition [XMLSchema1] of the
   "application/pidf+xml" format.  This is presented as a formal
   definition of the "application/pidf+xml" format.  Note that the XML
   Schema definition is not intended to be used with on-the-fly
   validation of the presence XML document.

   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:pidf"
        xmlns:tns="urn:ietf:params:xml:ns:pidf"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">

     <!-- This import brings in the XML language attribute xml:lang-->
     <xs:import namespace="http://www.w3.org/XML/1998/namespace"
       schemaLocation="http://www.w3.org/2001/xml.xsd"/>

     <xs:element name="presence" type="tns:presence"/>

     <xs:complexType name="presence">
       <xs:sequence>
         <xs:element name="tuple" type="tns:tuple" minOccurs="0"
            maxOccurs="unbounded"/>



Sugano, et al.              Standards Track                    [Page 16]
^L
RFC 3863            Presence Information Data Format         August 2004


         <xs:element name="note" type="tns:note" minOccurs="0"
            maxOccurs="unbounded"/>
         <xs:any namespace="##other" processContents="lax" minOccurs="0"
            maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="entity" type="xs:anyURI" use="required"/>
     </xs:complexType>

     <xs:complexType name="tuple">
       <xs:sequence>
         <xs:element name="status" type="tns:status"/>
         <xs:any namespace="##other" processContents="lax" minOccurs="0"
            maxOccurs="unbounded"/>
         <xs:element name="contact" type="tns:contact" minOccurs="0"/>
         <xs:element name="note" type="tns:note" minOccurs="0"
            maxOccurs="unbounded"/>
         <xs:element name="timestamp" type="xs:dateTime" minOccurs="0"/>
       </xs:sequence>
       <xs:attribute name="id" type="xs:ID" use="required"/>
     </xs:complexType>

     <xs:complexType name="status">
       <xs:sequence>
         <xs:element name="basic" type="tns:basic" minOccurs="0"/>
         <xs:any namespace="##other" processContents="lax" minOccurs="0"
            maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:complexType>
     <xs:simpleType name="basic">
       <xs:restriction base="xs:string">
         <xs:enumeration value="open"/>
         <xs:enumeration value="closed"/>
       </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="contact">
       <xs:simpleContent>
         <xs:extension base="xs:anyURI">
           <xs:attribute name="priority" type="tns:qvalue"/>
         </xs:extension>
       </xs:simpleContent>
     </xs:complexType>

     <xs:complexType name="note">
       <xs:simpleContent>
         <xs:extension base="xs:string">
           <xs:attribute ref="xml:lang"/>
         </xs:extension>



Sugano, et al.              Standards Track                    [Page 17]
^L
RFC 3863            Presence Information Data Format         August 2004


       </xs:simpleContent>
     </xs:complexType>

     <xs:simpleType name="qvalue">
       <xs:restriction base="xs:decimal">
         <xs:pattern value="0(.[0-9]{0,3})?"/>
         <xs:pattern value="1(.0{0,3})?"/>
       </xs:restriction>
     </xs:simpleType>

     <!-- Global Attributes -->
     <xs:attribute name="mustUnderstand" type="xs:boolean" default="0">
       <xs:annotation>
         <xs:documentation>
         This attribute may be used on any element within an optional
         PIDF extension to indicate that the corresponding element must
         be understood by the PIDF processor if the enclosing optional
         element is to be handled.
         </xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:schema>

5.  IANA Considerations

   This memo calls for IANA to:

   -  register a new MIME content-type application/pidf+xml, per [MIME],

   -  register a new XML namespace URN per [XML-Registry].

   -  register a new XML namespace URN for status extensions per [XML-
      Registry].

   The registration templates for these are below. For more information
   on status extensions, see section 4.2.5.

5.1.  Content-type registration for 'application/pidf+xml'

   To: ietf-types@iana.org
   Subject: Registration of MIME media type application/pidf+xml

   MIME media type name:  application

   MIME subtype name:     pidf+xml

   Required parameters:   (none)




Sugano, et al.              Standards Track                    [Page 18]
^L
RFC 3863            Presence Information Data Format         August 2004


   Optional parameters:   charset
      Indicates the character encoding of enclosed XML.  Default is
      UTF-8.

   Encoding considerations:
      Uses XML, which can employ 8-bit characters, depending on the
      character encoding used.  See RFC 3023 [RFC 3023], section 3.2.

   Security considerations:
      This content type is designed to carry presence data, which may be
      considered private information.  Appropriate precautions should be
      adopted to limit disclosure of this information.

   Interoperability considerations:
      This content type provides a common format for exchange of
      presence information across different CPP compliant protocols.

   Published specification:
      RFC 3863

   Applications which use this media type:
      Presence and instant messaging systems.

   Additional information:
      Magic number(s):  File extension(s):  Macintosh File Type Code(s):

   Person & email address to contact for further information:
      Hiroyasu Sugano EMail: sugano.h@jp.fujitsu.com

   Intended usage:
      LIMITED USE

   Author/Change controller:
      This specification is a work item of the IETF IMPP working group,
      with mailing list address <impp@iastate.edu>.

   Other information:
      This media type is a specialization of application/xml [RFC 3023],
      and many of the considerations described there also apply to
      application/pidf+xml.

5.2.  URN sub-namespace registration for 'urn:ietf:params:xml:ns:pidf'

   URI
      urn:ietf:params:xml:ns:pidf






Sugano, et al.              Standards Track                    [Page 19]
^L
RFC 3863            Presence Information Data Format         August 2004


   Description:
      This is the XML namespace URI for XML elements defined by RFC 3863
      to describe CPP presence information in application/pidf+xml
      content type.

   Registrant Contact
      IETF, IMPP working group, <impp@iastate.edu>
      Hiroyasu Sugano, <sugano.h@jp.fujitsu.com>

   XML
      BEGIN
        <?xml version="1.0"?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
                  "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
          <meta http-equiv="content-type"
             content="text/html;charset=utf-8"/>
          <title>Namespace for CPP presence information</title>
        </head>
        <body>
          <h1>Namespace for CPP presence information</h1>
          <h2>urn:ietf:params:xml:ns:pidf</h2>
          <p>See <a
             href="[[[ftp://ftp.rfc-editor.org/in-notes/rfc3863.txt]]]">
             RFC3863</a>.</p>
        </body>
        </html>
      END

5.3.   URN sub-namespace registration for
       'urn:ietf:params:xml:ns:pidf:status'

   URI
      urn:ietf:params:xml:ns:pidf:status

   Description:
      This is the XML namespace URI for XML elements defined by
      RFC 3863 to describe extensions to the status of CPP presence
      information in application/pidf+xml content type.

   Registrant Contact
      IETF, IMPP working group, <impp@iastate.edu>
      Hiroyasu Sugano, <sugano.h@jp.fujitsu.com>

   XML
      BEGIN
        <?xml version="1.0"?>



Sugano, et al.              Standards Track                    [Page 20]
^L
RFC 3863            Presence Information Data Format         August 2004


        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
                  "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
          <meta http-equiv="content-type"
             content="text/html;charset=utf-8"/>
          <title>Namespace for CPP status extensions</title>
        </head>
        <body>
          <h1>Namespace for CPP presence information extensions</h1>
          <h2>urn:ietf:params:xml:ns:pidf:status</h2>
        <p>See <a
          href="[[[ftp://ftp.rfc-editor.org/in-notes/rfc3863.txt]]]">
          RFC3863</a>.</p>
        </body>
        </html>
      END

6.  Security Considerations

   Because presence is very privacy-sensitive information, the protocol
   for the presence information MUST have capabilities to protect PIDF
   from possible threats, such as eavesdropping, corruption, tamper and
   replay attacks.  These security mechanisms must be able to be used
   end-to-end between presentities and watchers, even if the watcher and
   the presentity employ different presence protocols and communicate
   through a CPP gateway.  Since the 'application/pidf+xml' MIME type is
   defined for this PIDF document, staging security for PIDF at the MIME
   level (with S/MIME [RFC3851]) seems appropriate.  Therefore, PIDF
   should follow the normative recommendations for the use of S/MIME
   (including minimum ciphersuites) given in the core CPP specification.

   Note that the use of timestamps in PIDF (see section 4.1.7) can
   provide some rudimentary protection against replay attacks.  If a
   watcher receives presence information that is outdated, it SHOULD be
   ignored.  A watcher can determine that presence information is
   outdated in a number of fashions.  Most significantly, if the newest
   timestamp in presence information is older than the newest timestamp
   in the last received presence information, it should be considered
   outdated.  Applications and protocols also are advised to adopt their
   own rules for determining how frequently presence information should
   be refreshed.  For example, if presence information appears to be
   more than one hour old, it could be considered outdated (a
   notification generated for this presence information will not take
   such a long time to reach a watcher, and if a presentity has not
   refreshed its presence state in the last hour, it is probably
   offline).




Sugano, et al.              Standards Track                    [Page 21]
^L
RFC 3863            Presence Information Data Format         August 2004


7.  Internationalization Considerations

   All the processors conformant to this specification MUST be able to
   generate and accept UTF-8 encoding, this being one of the mandatory
   character encodings for XML conforming processors, and also required
   by the policies set out in RFC 2277 [RFC2277].

   Other character encodings MAY be accepted (but CPP compliant
   processors are strongly discouraged from emitting anything other than
   UTF-8).

8.  References

8.1.  Normative References

   [RFC2119]      Bradner, S., "Key words for use in RFCs to Indicate
                  Requirement Levels", RFC 2119, BCP 14, March 1997.

   [RFC3023]      Murata, M., St. Laurent, S., and D. Kohn, "XML Media
                  Types", RFC 3023, January 2001.

   [XML]          Bray, T., Paoli, J., Sperberg-McQueen, C., and E.
                  Maler, "Extensible Markup Language (XML) 1.0 (Second
                  Edition)", W3C Recommendation, October 2000,
                  <http://www.w3.org/TR/2000/REC-xml-20001006>

   [MIME]         Freed, N. and N. Borenstein, "Multipurpose Internet
                  Mail Extensions (MIME) Part One: Format of Internet
                  Message Bodies", RFC 2045, November 1996.

                  Freed, N. and N. Borenstein, "Multipurpose Internet
                  Mail Extensions (MIME) Part Two: Media Types", RFC
                  2046, November 1996.

                  Moore, K., "MIME (Multipurpose Internet Mail
                  Extensions) Part Three:  Message Header Extensions for
                  Non-ASCII Text", RFC 2047, November 1996.

                  Freed, N., Klensin, J., and J. Postel, "Multipurpose
                  Internet Mail Extensions (MIME) Part Four:
                  Registration Procedures", BCP 13, RFC 2048, November
                  1996.

                  Freed, N. and N. Borenstein, "Multipurpose Internet
                  Mail Extensions (MIME) Part Five: Conformance Criteria
                  and Examples", RFC 2049, November 1996.





Sugano, et al.              Standards Track                    [Page 22]
^L
RFC 3863            Presence Information Data Format         August 2004


   [RFC3066]      Alvestrand, H., "Tags for the Identification of
                  Languages", BCP 47, RFC 3066, March 1995.

   [RFC3339]      Klyne, G. and C. Newman, "Date and Time on the
                  Internet: Timestamps", RFC 3339, July 2002.

   [XML-NS]       Bray, T., Hollander, D., and A. Layman "Namespaces in
                  XML", W3C recommendation: xml-names, 14 January 1999,
                  <http://www.w3.org/TR/REC-xml-names>

   [URI]          Berners-Lee, T., Fielding, R., and L. Masinter,
                  "Uniform Resource Identifiers (URI): Generic Syntax",
                  RFC 2396, August 1998.

   [URN]          Moats, R., "URN Syntax", RFC 2141, May 1997.

   [URN-NS-IETF]  Moats, R., "A URN Namespace for IETF Documents", RFC
                  2648, August 1999.

   [XML-Registry] Mealling, M., "The IETF XML Registry", RFC 3688,
                  January 2004.

   [RFC2277]      Alvestrand, H., "IETF Policy on Character Sets and
                  Languages", BCP 18, RFC 2277, January 1998.

   [XMLSchema1]   Thompson, H., Beech, D., Maloney, M., and N.
                  Mendelsohn, "XML Schema Part 1: Structures", W3C REC-
                  xmlschema-1, May 2001,
                  <http://www.w3.org/TR/xmlschema-1/>.

8.2.  Informative References

   [RFC2778]      Day, M., Rosenberg, J., and H. Sugano, "A Model for
                  Presence and Instant Messaging", RFC 2778, February
                  2000.

   [RFC2779]      Day, M., Aggarwal, S., Mohr, G., and J. Vincent,
                  "Instant Messaging / Presence Protocol Requirements",
                  RFC 2779, February 2000.

   [CPIM]         Peterson, J., "Common Profile for Instant Messaging
                  (CPIM)", RFC 3860, August 2004.

   [CPP]          Peterson, J., "Common Presence for Presence (CPP)",
                  RFC 3859, August 2004.

   [vCard]        Dawson, F. and T. Howes, "vCard MIME Directory
                  Profile", RFC 2426, September 1998.



Sugano, et al.              Standards Track                    [Page 23]
^L
RFC 3863            Presence Information Data Format         August 2004


   [RFC3851]      Ramsdell, B., Ed., "Secure/Multipurpose Internet Mail
                  Extensions (S/MIME) Version 3.1 Message
                  Specification", RFC 3851, July 2004.

   [RFC3282]      Alvestrand, H., "Content Language Headers", RFC 3282,
                  May 2002.













































Sugano, et al.              Standards Track                    [Page 24]
^L
RFC 3863            Presence Information Data Format         August 2004


Appendix A. Document Type Definitions

   The Document Type Definition for the "application/pidf+xml" format is
   described.  The DTD here is presented only for informational for
   those who may not familiar with the XML Schema definition.

   Note: the DTD does not show where extension elements can be added.
   See the XML Schema for that information.

   <!ENTITY % URL         "CDATA">
   <!ENTITY % URI         "CDATA">
   <!ENTITY % TUPLEID     "CDATA">
   <!ENTITY % DATETIME    "CDATA">
   <!ENTITY % VALUETYPE   "CDATA">
   <!ENTITY % PRIORITY    "CDATA">
   <!ENTITY % NOTE        "CDATA">

   <!ELEMENT presence ((tuple*),note?)>
   <!ATTLIST presence
             xmlns     %URI;     #REQUIRED
             entity    %URL;     #REQUIRED
   >

   <!ELEMENT tuple (status,contact?,note?,timestamp?)>
   <!ATTLIST tuple
             id   %TUPLEID;      #REQUIRED
   >

   <!ELEMENT status (basic?)>
   <!ELEMENT basic CDATA>

   <!ELEMENT contact %URL;>
   <!ATTLIST contact
             priority %PRIORITY; #IMPLIED
   >

   <!ELEMENT note %NOTE;>

   <!ELEMENT timestamp %DATETIME;>












Sugano, et al.              Standards Track                    [Page 25]
^L
RFC 3863            Presence Information Data Format         August 2004


Authors' Addresses

   Hiroyasu Sugano
   Fujitsu Laboratories Ltd.
   64, Nishiwaki
   Ohkubo-cho
   Akashi 674-8555
   Japan

   EMail: sugano.h@jp.fujitsu.com


   Shingo Fujimoto
   Fujitsu Laboratories Ltd.
   64, Nishiwaki
   Ohkubo-cho
   Akashi 674-8555
   Japan

   EMail: shingo_fujimoto@jp.fujitsu.com


   Graham Klyne
   Nine by Nine

   EMail: GK@ninebynine.org


   Adrian Bateman
   VisionTech Limited
   Colton, Staffordshire, WS15 3LD
   United Kingdom

   EMail: bateman@acm.org


   Wayne Carr
   Intel Corporation
   2111 NE 25th Avenue
   Hillsboro, OR 97124
   USA

   EMail: wayne.carr@intel.com








Sugano, et al.              Standards Track                    [Page 26]
^L
RFC 3863            Presence Information Data Format         August 2004


   Jon Peterson
   NeuStar, Inc.
   1800 Sutter St
   Suite 570
   Concord, CA  94520
   USA

   Phone: +1 925/363-8720
   EMail: jon.peterson@neustar.biz










































Sugano, et al.              Standards Track                    [Page 27]
^L
RFC 3863            Presence Information Data Format         August 2004


Full Copyright Statement

   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.









Sugano, et al.              Standards Track                    [Page 28]
^L