draft-ietf-ipp-not-spec-11.txt   draft-ietf-ipp-not-spec-12.txt 
Internet Printing Protocol WG R. Herriot Internet Printing Protocol WG R. Herriot
INTERNET-DRAFT consultant INTERNET-DRAFT Global Workflow Solutions
<draft-ietf-ipp-not-spec-11.txt> T. Hastings <draft-ietf-ipp-not-spec-12.txt> T. Hastings
Updates RFC 2910 and 2911 Xerox Corporation Updates RFC 2910 and 2911 Xerox Corporation
[Target Category: standards track] February 21, 2003 [Target Category: standards track] June 21, 2004
Expires: August 21, 2003 Expires: December 21, 2004
Internet Printing Protocol (IPP): Internet Printing Protocol (IPP):
Event Notifications and Subscriptions Event Notifications and Subscriptions
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2004). All Rights Reserved.
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. Internet-Drafts are all provisions of Section 10 of RFC 2026. Internet-Drafts are
working documents of the Internet Engineering Task Force (IETF), its working documents of the Internet Engineering Task Force (IETF), its
areas, and its working groups. Note that other groups may also areas, and its working groups. Note that other groups may also
distribute working documents as Internet-Drafts. distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
skipping to change at page 2, line 29 skipping to change at page 2, line 29
4.1 Printer and Per-Printer Subscription Objects..................14 4.1 Printer and Per-Printer Subscription Objects..................14
4.2 Printer, Job and Per-Job Subscription Objects.................14 4.2 Printer, Job and Per-Job Subscription Objects.................14
5 Subscription Object.............................................15 5 Subscription Object.............................................15
5.1 Rules for Support of Subscription Template Attributes.........15 5.1 Rules for Support of Subscription Template Attributes.........15
5.2 Rules for Processing Subscription Template Attributes.........16 5.2 Rules for Processing Subscription Template Attributes.........16
5.3 Subscription Template Attributes..............................20 5.3 Subscription Template Attributes..............................20
5.3.1 notify-recipient-uri (uri)..................................22 5.3.1 notify-recipient-uri (uri)..................................22
5.3.1.1 notify-schemes-supported (1setOf uriScheme)..............23 5.3.1.1 notify-schemes-supported (1setOf uriScheme)..............23
5.3.2 notify-pull-method (type2 keyword)..........................23 5.3.2 notify-pull-method (type2 keyword)..........................23
5.3.2.1 notify-pull-method-supported (1setOf type2 keyword).......24 5.3.2.1 notify-pull-method-supported (1setOf type2 keyword).......23
5.3.3 notify-events (1setOf type2 keyword)........................24 5.3.3 notify-events (1setOf type2 keyword)........................24
5.3.3.1 notify-events-default (1setOf type2 keyword)..............24 5.3.3.1 notify-events-default (1setOf type2 keyword)..............24
5.3.3.2 notify-events-supported (1setOf type2 keyword)............25 5.3.3.2 notify-events-supported (1setOf type2 keyword)............24
5.3.3.3 notify-max-events-supported (integer(2:MAX))..............25 5.3.3.3 notify-max-events-supported (integer(2:MAX))..............24
5.3.3.4 Standard Values for Subscribed Events.....................25 5.3.3.4 Standard Values for Subscribed Events.....................25
5.3.3.4.1 No Events...............................................25 5.3.3.4.1 No Events...............................................25
5.3.3.4.2 Subscribed Printer Events...............................26 5.3.3.4.2 Subscribed Printer Events...............................25
5.3.3.4.3 Subscribed Job Events...................................27 5.3.3.4.3 Subscribed Job Events...................................27
5.3.3.5 Rules for Matching of Subscribed Events...................28 5.3.3.5 Rules for Matching of Subscribed Events...................28
5.3.3.5.1 Rules for Matching of Printer Events....................29 5.3.3.5.1 Rules for Matching of Printer Events....................28
5.3.3.5.2 Rules for Matching of Job Events........................29 5.3.3.5.2 Rules for Matching of Job Events........................28
5.3.3.5.3 Special Cases for Matching Rules........................30 5.3.3.5.3 Special Cases for Matching Rules........................29
5.3.4 notify-attributes (1setOf type2 keyword)....................31 5.3.4 notify-attributes (1setOf type2 keyword)....................30
5.3.4.1 notify-attributes-supported (1setOf type2 keyword)........32 5.3.4.1 notify-attributes-supported (1setOf type2 keyword)........32
5.3.5 notify-user-data (octetString(63))..........................32 5.3.5 notify-user-data (octetString(63))..........................32
5.3.6 notify-charset (charset)....................................33 5.3.6 notify-charset (charset)....................................32
5.3.7 notify-natural-language (naturalLanguage)...................33 5.3.7 notify-natural-language (naturalLanguage)...................33
5.3.8 notify-lease-duration (integer(0:67108863)).................34 5.3.8 notify-lease-duration (integer(0:67108863)).................33
5.3.8.1 notify-lease-duration-default (integer(0:67108863)).......35 5.3.8.1 notify-lease-duration-default (integer(0:67108863)).......34
5.3.8.2 notify-lease-duration-supported (1setOf (integer(0: 67108863) 5.3.8.2 notify-lease-duration-supported (1setOf (integer(0: 67108863)
| rangeOfInteger(0:67108863)))....................................35 | rangeOfInteger(0:67108863)))....................................35
5.3.9 notify-time-interval (integer(0:MAX)).......................35 5.3.9 notify-time-interval (integer(0:MAX)).......................35
5.4 Subscription Description Attributes...........................36 5.4 Subscription Description Attributes...........................36
5.4.1 notify-subscription-id (integer (1:MAX))...................37 5.4.1 notify-subscription-id (integer (1:MAX))...................36
5.4.2 notify-sequence-number (integer (0:MAX))....................37 5.4.2 notify-sequence-number (integer (0:MAX))....................37
5.4.3 notify-lease-expiration-time (integer(0:MAX))...............38 5.4.3 notify-lease-expiration-time (integer(0:MAX))...............37
5.4.4 notify-printer-up-time (integer(1:MAX)).....................39 5.4.4 notify-printer-up-time (integer(1:MAX)).....................38
5.4.5 notify-printer-uri (uri)....................................39 5.4.5 notify-printer-uri (uri)....................................39
5.4.6 notify-job-id (integer(1:MAX))..............................40 5.4.6 notify-job-id (integer(1:MAX))..............................39
5.4.7 notify-subscriber-user-name (name(MAX)).....................40 5.4.7 notify-subscriber-user-name (name(MAX)).....................40
6 Printer Description Attributes Related to Notification..........41 6 Printer Description Attributes Related to Notification..........40
6.1 printer-state-change-time (integer(1:MAX))....................41 6.1 printer-state-change-time (integer(1:MAX))....................40
6.2 printer-state-change-date-time (dateTime).....................41 6.2 printer-state-change-date-time (dateTime).....................41
7 New Values for Existing Printer Description Attributes..........42 7 New Values for Existing Printer Description Attributes..........41
7.1 operations-supported (1setOf type2 enum)......................42 7.1 operations-supported (1setOf type2 enum)......................41
8 Attributes Only in Event Notifications..........................42 8 Attributes Only in Event Notifications..........................42
8.1 notify-subscribed-event (type2 keyword).......................43 8.1 notify-subscribed-event (type2 keyword).......................42
8.2 notify-text (text(MAX)).......................................43 8.2 notify-text (text(MAX)).......................................42
9 Event Notification Content......................................43 9 Event Notification Content......................................43
9.1 Content of Machine Consumable Event Notifications.............46 9.1 Content of Machine Consumable Event Notifications.............46
9.1.1 Event Notification Content Common to All Events.............47 9.1.1 Event Notification Content Common to All Events.............46
9.1.2 Additional Event Notification Content for Job Events........49 9.1.2 Additional Event Notification Content for Job Events........47
9.1.3 Additional Event Notification Content for Printer Events....50 9.1.3 Additional Event Notification Content for Printer Events....48
9.2 Content of Human Consumable Event Notification................50 9.2 Content of Human Consumable Event Notification................48
9.2.1 Event Notification Content Common to All Events.............51 9.2.1 Event Notification Content Common to All Events.............49
9.2.2 Additional Event Notification Content for Job Events........53 9.2.2 Additional Event Notification Content for Job Events........51
9.2.3 Additional Event Notification Content for Printer Events....54 9.2.3 Additional Event Notification Content for Printer Events....51
10 Delivery Methods...............................................54
11 Operations for Notification....................................57
11.1 Subscription Creation Operations.............................57
11.1.1 Create-Job-Subscriptions Operation.........................57
11.1.1.1 Create-Job-Subscriptions Request.........................58
11.1.1.1.1 notify-job-id (integer(1:MAX)).........................58
11.1.1.2 Create-Job-Subscriptions Response........................59
11.1.2 Create-Printer-Subscriptions operation.....................60
11.1.2.1 Create-Printer-Subscriptions Request.....................60
11.1.2.2 Create-Printer-Subscriptions Response....................61
11.1.3 Job Creation Operations - Extensions for Notification......61
11.1.3.1 Job Creation Request.....................................62
11.1.3.2 Job Creation Response....................................62
11.2 Other Operations.............................................63
11.2.1 Restart-Job Operation - Extensions for Notification........63
11.2.2 Validate-Job Operation - Extensions for Notification.......64
11.2.3 Get-Printer-Attributes - Extensions for Notification.......64
11.2.4 Get-Subscription-Attributes operation......................65
11.2.4.1 Get-Subscription-Attributes Request......................65
11.2.4.1.1 "notify-subscription-id" (integer (1:MAX)).............66
11.2.4.1.2 "requested-attributes" (1setOf keyword)................66
11.2.4.2 Get-Subscription-Attributes Response.....................66
11.2.5 Get-Subscriptions operation................................68
11.2.5.1 Get-Subscriptions Request................................68
11.2.5.1.1 "notify-job-id" (integer(1:MAX)).......................69
11.2.5.1.2 "limit" (integer(1:MAX))...............................69
11.2.5.1.3 "requested-attributes" (1setOf type2 keyword)..........69
11.2.5.1.4 "my-subscriptions" (boolean)...........................70
11.2.5.2 Get-Subscriptions Response...............................70
11.2.6 Renew-Subscription operation...............................71
11.2.6.1 Renew-Subscription Request...............................71
11.2.6.1.1 "notify-subscription-id" (integer (1:MAX)).............72
11.2.6.1.2 "notify-lease-duration" (integer(0:MAX))...............72
11.2.6.2 Renew-Subscription Response..............................72
11.2.6.2.1 "notify-lease-duration" (integer(0:MAX))...............73
11.2.7 Cancel-Subscription operation..............................73
11.2.7.1 Cancel-Subscription Request..............................74
11.2.7.1.1 "notify-subscription-id" (integer (1:MAX)).............74
11.2.7.2 Cancel-Subscription Response.............................75
12 Status Codes...................................................75 10 Delivery Methods...............................................52
12.1 successful-ok-ignored-subscriptions (0x0003).................75
12.2 client-error-ignored-all-subscriptions (0x0414)..............76
13 Status Codes in Subscription Attributes Groups.................76 11 Operations for Notification....................................54
13.1 client-error-uri-scheme-not-supported (0x040C)...............76 11.1 Subscription Creation Operations.............................54
13.2 client-error-attributes-or-values-not-supported (0x040B).....77 11.1.1 Create-Job-Subscriptions Operation.........................54
13.3 client-error-too-many-subscriptions (0x0415).................77 11.1.1.1 Create-Job-Subscriptions Request.........................55
13.4 successful-ok-too-many-events (0x0005).......................77 11.1.1.1.1 notify-job-id (integer(1:MAX)).........................55
13.5 successful-ok-ignored-or-substituted-attributes (0x0001).....77 11.1.1.2 Create-Job-Subscriptions Response........................56
11.1.2 Create-Printer-Subscriptions operation.....................57
11.1.2.1 Create-Printer-Subscriptions Request.....................58
11.1.2.2 Create-Printer-Subscriptions Response....................58
11.1.3 Job Creation Operations - Extensions for Notification......58
11.1.3.1 Job Creation Request.....................................59
11.1.3.2 Job Creation Response....................................59
11.2 Other Operations.............................................60
11.2.1 Restart-Job Operation - Extensions for Notification........60
11.2.2 Validate-Job Operation - Extensions for Notification.......61
11.2.3 Get-Printer-Attributes - Extensions for Notification.......61
11.2.4 Get-Subscription-Attributes operation......................62
11.2.4.1 Get-Subscription-Attributes Request......................63
11.2.4.1.1 "notify-subscription-id" (integer (1:MAX)).............63
11.2.4.1.2 "requested-attributes" (1setOf keyword)................63
11.2.4.2 Get-Subscription-Attributes Response.....................64
11.2.5 Get-Subscriptions operation................................65
11.2.5.1 Get-Subscriptions Request................................66
11.2.5.1.1 "notify-job-id" (integer(1:MAX)).......................66
11.2.5.1.2 "limit" (integer(1:MAX))...............................66
11.2.5.1.3 "requested-attributes" (1setOf type2 keyword)..........67
11.2.5.1.4 "my-subscriptions" (boolean)...........................67
11.2.5.2 Get-Subscriptions Response...............................67
11.2.6 Renew-Subscription operation...............................68
11.2.6.1 Renew-Subscription Request...............................69
11.2.6.1.1 "notify-subscription-id" (integer (1:MAX)).............69
11.2.6.1.2 "notify-lease-duration" (integer(0:MAX))...............69
11.2.6.2 Renew-Subscription Response..............................69
11.2.6.2.1 "notify-lease-duration" (integer(0:MAX))...............70
11.2.7 Cancel-Subscription operation..............................70
11.2.7.1 Cancel-Subscription Request..............................71
11.2.7.1.1 "notify-subscription-id" (integer (1:MAX)).............72
11.2.7.2 Cancel-Subscription Response.............................72
14 Encodings of Additional Attribute Tags.........................77 12 Status Codes...................................................72
12.1 successful-ok-ignored-subscriptions (0x0003).................73
12.2 client-error-ignored-all-subscriptions (0x0414)..............73
15 Conformance Requirements.......................................78 13 Status Codes in Subscription Attributes Groups.................73
15.1 Conformance requirements for clients.........................78 13.1 client-error-uri-scheme-not-supported (0x040C)...............74
15.2 Conformance requirements for Printers........................78 13.2 client-error-attributes-or-values-not-supported (0x040B).....74
13.3 client-error-too-many-subscriptions (0x0415).................74
13.4 successful-ok-too-many-events (0x0005).......................74
13.5 successful-ok-ignored-or-substituted-attributes (0x0001).....74
16 Appendix A - Model for Notification with Cascading Printers 14 Encodings of Additional Attribute Tags.........................74
(Informative).....................................................79
17 Appendix B - Distributed Model for Notification (Informative)..81 15 Conformance Requirements.......................................75
15.1 Conformance requirements for clients.........................75
15.2 Conformance requirements for Printers........................75
18 Appendix C - Extended Notification Recipient (Informative).....82 16 Model for Notification with Cascading Printers (Informative)...76
19 Appendix D - Details about Conformance Terminology (Normative).83 17 Distributed Model for Notification (Informative)...............77
20 Appendix E - Object Model for Notification (Normative).........83 18 Extended Notification Recipient (Informative)..................78
20.1 Object relationships.........................................84
20.2 Printer Object and Per-Printer Subscription Objects..........85
20.3 Job Object and Per-Job Subscription Objects..................85
21 Appendix F - Per-Job versus Per-Printer Subscription Objects 19 Object Model for Notification (Normative)......................79
(Normative).......................................................85 19.1 Object relationships.........................................80
19.2 Printer Object and Per-Printer Subscription Objects..........81
19.3 Job Object and Per-Job Subscription Objects..................81
20 Per-Job versus Per-Printer Subscription Objects (Normative)....81
22 Normative References...........................................86 21 Normative References...........................................82
23 Informative References.........................................87 22 Informative References.........................................83
24 IANA Considerations............................................87 23 IANA Considerations............................................83
24.1 Attribute Registrations......................................88 23.1 Attribute Registrations......................................84
24.2 Additional Enum Attribute Value Registrations................89 23.2 Additional Enum Attribute Value Registrations within the IPP
24.3 Operation Registrations......................................89 registry..........................................................85
24.4 Status code Registrations....................................90 23.3 Operation Registrations......................................85
24.5 Attribute Group tag Registrations............................90 23.4 Status code Registrations....................................86
24.6 Registration of Events.......................................90 23.5 Attribute Group tag Registrations............................86
24.7 Registration of Event Notification Delivery Methods..........91 23.6 Registration of Events.......................................86
24.7.1 Requirements for Registration of Event Notification Delivery 23.7 Registration of Event Notification Delivery Methods..........87
Methods................................................91 23.7.1 Requirements for Registration of Event Notification Delivery
24.7.1.1 Required Characteristics.................................91 Methods................................................87
24.7.1.2 Naming Requirements......................................92 23.7.1.1 Required Characteristics.................................87
24.7.1.3 Functionality Requirements...............................92 23.7.1.2 Naming Requirements......................................88
24.7.1.4 Usage and Implementation Requirements....................92 23.7.1.3 Functionality Requirements...............................88
24.7.1.5 Publication Requirements.................................93 23.7.1.4 Usage and Implementation Requirements....................88
24.7.2 Registration Procedure.....................................93 23.7.1.5 Publication Requirements.................................89
24.7.2.1 Present the proposal to the Community....................93 23.7.2 Registration Procedure.....................................89
24.7.2.2 Delivery Method Reviewer.................................93 23.7.2.1 Present the proposal to the Community....................89
24.7.2.3 IANA Registration........................................94 23.7.2.2 Delivery Method Reviewer.................................89
24.7.3 Delivery Method Document Registrations.....................94 23.7.2.3 IANA Registration........................................90
24.7.4 Registration Template......................................95 23.7.3 Delivery Method Document Registrations.....................90
23.7.4 Registration Template......................................91
25 Intellectural Property.........................................95 24 Intellectual Property..........................................91
26 Internationalization Considerations............................96 25 Internationalization Considerations............................92
27 Security Considerations........................................96 26 Security Considerations........................................92
27.1 Client access rights.........................................96 26.1 Client access rights.........................................92
27.2 Printer security threats.....................................98 26.2 Printer security threats.....................................94
27.3 Notification Recipient security threats......................98 26.3 Notification Recipient security threats......................94
28 Contributors...................................................99 27 Contributors...................................................95
29 Author's Addresses............................................100 28 Author's Addresses.............................................96
30 Appendix G - Description of the base IPP documents (Informative) 29 Description of the base IPP documents (Informative)............96
101
31 Appendix H - Full Copyright Statement (Informative)...........102 30 Full Copyright Statement.......................................97
Tables Tables
Table 1 - Subscription Template Attributes........................22 Table 1 - Subscription Template Attributes........................22
Table 2 - Subscription Description Attributes.....................37 Table 2 - Subscription Description Attributes.....................36
Table 3 - Printer Description Attributes Associated with Notification Table 3 - Printer Description Attributes Associated with Notification
..............................................................41 ..............................................................40
Table 4 - Operation-id assignments................................42 Table 4 - Operation-id assignments................................42
Table 5 - Attributes in Event Notification Content................48 Table 5 - Attributes in Event Notification Content................47
Table 6 - Additional Event Notification Content for Job Events....49 Table 6 - Additional Event Notification Content for Job Events....48
Table 7 - Combinations of Events and Subscribed Events for "job- Table 7 - Combinations of Events and Subscribed Events for "job-
impressions-completed" ........................................49 impressions-completed"........................................48
Table 8 - Additional Event Notification Content for Printer Events50 Table 8 - Additional Event Notification Content for Printer Events48
Table 9 - Printer Name in Event Notification Content..............52 Table 9 - Printer Name in Event Notification Content..............50
Table 10 - Event Name in Event Notification Content...............52 Table 10 - Event Name in Event Notification Content...............50
Table 11 - Event Time in Event Notification Content...............52 Table 11 - Event Time in Event Notification Content...............50
Table 12 - Job Name in Event Notification Content.................53 Table 12 - Job Name in Event Notification Content.................51
Table 13 - Job State in Event Notification Content................53 Table 13 - Job State in Event Notification Content................51
Table 14 - Printer State in Event Notification Content............54 Table 14 - Printer State in Event Notification Content............52
Table 15 - Information about the Delivery Method..................55 Table 15 - Information about the Delivery Method..................53
Table 16 - Printer Conformance Requirements for Operations........79 Table 16 - Printer Conformance Requirements for Operations........76
Figures Figures
Figure 1 - Model for Notification.................................10 Figure 1 - Model for Notification.................................10
Figure 2 - Model for Notification with Cascading Printers.........80 Figure 2 - Model for Notification with Cascading Printers.........77
Figure 3 - Opaque Use of a Notification Server Transparent to the Figure 3 - Opaque Use of a Notification Server Transparent to the
Client ........................................................81 Client........................................................78
Figure 4 - Use of an Extended Notification Recipient transparent to Figure 4 - Use of an Extended Notification Recipient transparent to
the Printer ...................................................82 the Printer...................................................79
Figure 5 - Object Model for Notification..........................84 Figure 5 - Object Model for Notification..........................80
1 Introduction 1 Introduction
This IPP notification specification is an OPTIONAL extension to This IPP notification specification is an OPTIONAL extension to
Internet Printing Protocol/1.1: Model and Semantics [RFC2911, Internet Printing Protocol/1.1: Model and Semantics [RFC2911,
RFC2910]. See Appendix 30 for a description of the base IPP RFC2910]. See Appendix 29 for a description of the base IPP
documents. This document in combination with the following documents documents. This document in combination with the following documents
is intended to meet the most important notification requirements is intended to meet the most important notification requirements
described in [ipp-not-req]: described in [ipp-not-req]:
Internet Printing Protocol (IPP): "Job Progress Attributes" Internet Printing Protocol (IPP): "Job Progress Attributes"
[RFC3381] [RFC3381]
Internet Printing Protocol (IPP): "The 'ippget' Delivery Method Internet Printing Protocol (IPP): "The 'ippget' Delivery Method
for Event Notifications" [ipp-get-method] for Event Notifications" [ipp-get-method]
This specification REQUIRES that clients and Printers support the This specification REQUIRES that clients and Printers support the
'ippget' Pull Delivery Method [ipp-get-method]. Conforming client 'ippget' Pull Delivery Method [ipp-get-method]. Conforming client
and Printer implementations MAY support additional Push or Pull and Printer implementations MAY support additional Push or Pull
Delivery Methods as well. Note: this document does not define any Delivery Methods as well. Note: this document does not define any
Delivery Methods itself, but it does define the rules for conformance Delivery Methods itself, but it does define the rules for conformance
for Delivery Method Documents and their registration with IANA (see for Delivery Method Documents and their registration with IANA (see
section 24.7.3). section 23.7.3).
Refer to the Table of Contents for the layout of this document. Refer to the Table of Contents for the layout of this document.
1.1 Notification Overview 1.1 Notification Overview
This document defines operations that a client can perform in order This document defines operations that a client can perform in order
to create Subscription Objects in a Printer and carry out other to create Subscription Objects in a Printer and carry out other
operations on them. A Subscription Object represents a Subscription operations on them. A Subscription Object represents a Subscription
abstraction. The Subscription Object specifies that when one of the abstraction. The Subscription Object specifies that when one of the
specified Events occurs, the Printer delivers an asynchronous Event specified Events occurs, the Printer delivers an asynchronous Event
skipping to change at page 11, line 22 skipping to change at page 11, line 22
Other terminology is defined in [RFC2911]. Other terminology is defined in [RFC2911].
3.1 Conformance Terminology 3.1 Conformance Terminology
Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD
NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to
conformance as defined in RFC 2119 [RFC2119] and [RFC2911] section conformance as defined in RFC 2119 [RFC2119] and [RFC2911] section
12.1. If an implementation supports the extension defined in this 12.1. If an implementation supports the extension defined in this
document, then these terms apply; otherwise, they do not. These document, then these terms apply; otherwise, they do not. These
terms define conformance to this document only; they do not affect terms define conformance to this document only; they do not affect
conformance to other documents, unless explicitly stated otherwise. conformance to other documents, unless explicitly stated otherwise..
See Appendix 19 for complete details.
Note: a feature that is OPTIONAL in this document becomes REQUIRED if Note: a feature that is OPTIONAL in this document becomes REQUIRED if
the Printer implements a Delivery Method that REQUIRES the feature. the Printer implements a Delivery Method that REQUIRES the feature.
READ-ONLY - an adjective used in an attribute definition to indicate READ-ONLY - an adjective used in an attribute definition to indicate
that an IPP Printer MUST NOT allow the attribute's value to be that an IPP Printer MUST NOT allow the attribute's value to be
modified. modified.
3.2 Other Terminology 3.2 Other Terminology
skipping to change at page 14, line 28 skipping to change at page 14, line 28
Subscription Template Attributes Group - The attributes group in a Subscription Template Attributes Group - The attributes group in a
request that contains Subscription Object attributes that are request that contains Subscription Object attributes that are
Subscription Template Attributes. Subscription Template Attributes.
4 Object Relationships 4 Object Relationships
This section defines the object relationships between the Printer, This section defines the object relationships between the Printer,
Job, and Subscription Objects. It does not define the Job, and Subscription Objects. It does not define the
implementation. For an illustration of these relationships, see implementation. For an illustration of these relationships, see
Appendix 20. Appendix 19.
4.1 Printer and Per-Printer Subscription Objects 4.1 Printer and Per-Printer Subscription Objects
1.A Printer object can be associated with zero or more Per-Printer 1.A Printer object can be associated with zero or more Per-Printer
Subscription Objects. Subscription Objects.
2.Each Per-Printer Subscription Object is associated with exactly 2.Each Per-Printer Subscription Object is associated with exactly
one Printer object. one Printer object.
4.2 Printer, Job and Per-Job Subscription Objects 4.2 Printer, Job and Per-Job Subscription Objects
skipping to change at page 17, line 48 skipping to change at page 17, line 47
column 1 of Table 1 and the Printer doesn't support the supplied column 1 of Table 1 and the Printer doesn't support the supplied
value, the Printer MUST NOT create a Subscription Object. The value, the Printer MUST NOT create a Subscription Object. The
rules for Unsupported Attributes in step #2 still apply. rules for Unsupported Attributes in step #2 still apply.
4.If a client does not supply a "notify-xxx" attribute from column 1 4.If a client does not supply a "notify-xxx" attribute from column 1
of Table 1 and the attribute is REQUIRED for the client to supply, of Table 1 and the attribute is REQUIRED for the client to supply,
the Printer MUST reject the Subscription Creation Operation the Printer MUST reject the Subscription Creation Operation
(including Job Creation operations) without creating a (including Job Creation operations) without creating a
Subscription Object, and MUST return in the response: Subscription Object, and MUST return in the response:
c) the status code 'client-error-bad-request' AND a)the status code 'client-error-bad-request' AND
d) no Subscription Attribute Groups. b) no Subscription Attribute Groups.
5.If a client does not supply a "notify-xxx" attribute from column 1 5.If a client does not supply a "notify-xxx" attribute from column 1
of Table 1 that is OPTIONAL for the client to supply, and column 2 of Table 1 that is OPTIONAL for the client to supply, and column 2
of Table 1 either: of Table 1 either:
a) specifies a "notify-xxx-default" attribute, the Printer MUST a) specifies a "notify-xxx-default" attribute, the Printer MUST
behave as if the client had supplied the "notify-xxx-default" behave as if the client had supplied the "notify-xxx-default"
attribute (see step #1) and populate the Subscription object attribute (see step #1) and populate the Subscription object
with the value of the "notify-xxx-default" attribute as part of with the value of the "notify-xxx-default" attribute as part of
the Subscription Creation operation (unlike Job Template the Subscription Creation operation (unlike Job Template
skipping to change at page 19, line 30 skipping to change at page 19, line 30
details). The Printer returns the first value in the list below details). The Printer returns the first value in the list below
that describes the status. that describes the status.
'client-error-uri-scheme-not-supported': the Subscription 'client-error-uri-scheme-not-supported': the Subscription
Object was not created because the scheme of the "notify- Object was not created because the scheme of the "notify-
recipient-uri" attribute is not supported. See section recipient-uri" attribute is not supported. See section
13.1 for more details about this status code. See step #3 13.1 for more details about this status code. See step #3
in this section for the case that causes this error, and in this section for the case that causes this error, and
the resulting step #6a) that causes the Printer not to the resulting step #6a) that causes the Printer not to
create the Subscription Object. create the Subscription Object.
'client-error-attributes-or-values-not-supported': the 'client-error-attributes-or-values-not-supported': the
Subscription Object was not created because the method of Subscription Object was not created because the method of
the "notify-pull-method" attribute is not supported. See the "notify-pull-method" attribute is not supported. See
section 13.1 for more details about this status code. See section 13.1 for more details about this status code. See
step #3 in this section for the case that causes this step #3 in this section for the case that causes this
error, and the resulting step #6a) that causes the Printer error, and the resulting step #6a) that causes the Printer
not to create the Subscription Object. not to create the Subscription Object.
'client-error-too-many-subscriptions': the Subscription 'client-error-too-many-subscriptions': the Subscription
Object was not created because the Printer has no space for Object was not created because the Printer has no space for
additional Subscription Objects. The client SHOULD try additional Subscription Objects. The client MAY try again
again later. See section 13.3 for more details about this later. See section 13.3 for more details about this status
status code. See steps #6b) and #6c) in this section for code. See steps #6b) and #6c) in this section for the
the cases that causes this error. cases that causes this error.
'successful-ok-too-many-events': the Subscription Object was 'successful-ok-too-many-events': the Subscription Object was
created without the "notify-events" values included in this created without the "notify-events" values included in this
Subscription Attributes Group because the "notify-events" Subscription Attributes Group because the "notify-events"
attribute contains too many values. See section 13.4 for attribute contains too many values. See section 13.4 for
more details about this status code. See step #2 in this more details about this status code. See step #2 in this
section and section 5.3.3 for the cases that cause this section and section 5.3.3 for the cases that cause this
status code. status code.
'successful-ok-ignored-or-substituted-attributes' : the 'successful-ok-ignored-or-substituted-attributes' : the
Subscription Object was created but some supplied Subscription Object was created but some supplied
skipping to change at page 22, line 6 skipping to change at page 22, line 6
2 of Table 1 do not have separate sections in this specification 2 of Table 1 do not have separate sections in this specification
defining their semantics. Instead, the section for the corresponding defining their semantics. Instead, the section for the corresponding
Subscription Object attribute (column 1 of Table 1) contains the Subscription Object attribute (column 1 of Table 1) contains the
semantics of these Printer attributes. This approach follows the semantics of these Printer attributes. This approach follows the
precedence of the Job Template attributes in section 4.2 of [RFC2911] precedence of the Job Template attributes in section 4.2 of [RFC2911]
where the corresponding "xxx-default" and "xxx-supported" Printer where the corresponding "xxx-default" and "xxx-supported" Printer
attributes are defined in the same section as the "xxx" Job attributes are defined in the same section as the "xxx" Job
attribute. attribute.
Table 1 - Subscription Template Attributes Table 1 - Subscription Template Attributes
Attribute in Subscription Default and Supported Printer Attribute in Subscription Default and Supported Printer
Object Attributes Object Attributes
notify-recipient-uri (uri) * notify-schemes-supported (1setOf notify-recipient-uri (uri) * notify-schemes-supported (1setOf
uriScheme) uriScheme)
notify-pull-method (type2 notify-pull-method-supported (1setOf notify-pull-method (type2 notify-pull-method-supported (1setOf
keyword) ** type2 keyword) keyword) ** type2 keyword)
notify-events (1setOf type2 notify-events-default (1setOf type2
notify-events (1setOf type2 -events-default (1setOf type2
keyword) keyword) keyword) keyword)
notify-events-supported (1setOf type2 notify-events-supported (1setOf type2
keyword) keyword)
notify-max-events-supported notify-max-events-supported
(integer(2:MAX)) (integer(2:MAX))
notify-attributes (1setOf notify-attributes-supported (1setOf notify-attributes (1setOf notify-attributes-supported (1setOf
type2 keyword) type2 keyword) type2 keyword) type2 keyword)
notify-user-data notify-user-data
(octetString(63)) (octetString(63))
notify-charset (charset) charset-supported (1setOf charset) notify-charset (charset) charset-supported (1setOf charset)
notify-natural-language generated-natural-language-supported notify-natural-language generated-natural-language-supported
(naturalLanguage) (1setOf naturalLanguage) (naturalLanguage) (1setOf naturalLanguage)
notify-lease-duration notify-lease-duration-default notify-lease-duration notify-lease-duration-default
(integer(0:MAX)) (integer(0:67108863)) (integer(0:MAX)) (integer(0:67108863))
notify-lease-duration-supported notify-lease-duration-supported
(1setOf (integer(0: 67108863) | (1setOf (integer(0: 67108863) |
rangeOfInteger(0:67108863))) rangeOfInteger(0:67108863)))
notify-time-interval notify-time-interval
(integer(0:MAX)) (integer(0:MAX))
* "notify-recipient-uri" is for Push Delivery Methods only. * "notify-recipient-uri" is for Push Delivery Methods only.
** "notify-pull-method" is for Pull Delivery Methods only. ** "notify-pull-method" is for Pull Delivery Methods only.
5.3.1 notify-recipient-uri (uri) 5.3.1 notify-recipient-uri (uri)
This attribute's value is a URL, which is a special case of a URI. This attribute's value is a URL, which is a special case of a URI.
Its value consists of a scheme and an address. The address specifies Its value consists of a scheme and an address. The address specifies
the Notification Recipient and the scheme specifies the Push Delivery the Notification Recipient and the scheme specifies the Push Delivery
Method for each Event Notification associated with this Subscription Method for each Event Notification associated with this Subscription
Object. Object.
skipping to change at page 23, line 29 skipping to change at page 23, line 18
to [RFC2396] the ":" terminates the scheme and so is not part of the to [RFC2396] the ":" terminates the scheme and so is not part of the
scheme. Therefore, values of the "notify-schemes-supported" Printer scheme. Therefore, values of the "notify-schemes-supported" Printer
attribute do not include the ":" character. attribute do not include the ":" character.
If the client supplies an unsupported scheme in the value of this If the client supplies an unsupported scheme in the value of this
attribute, then the Printer MUST NOT create the Subscription Object attribute, then the Printer MUST NOT create the Subscription Object
and MUST return the "notify-status-code" attribute with the 'client- and MUST return the "notify-status-code" attribute with the 'client-
error-uri-scheme-not-supported' value in the Subscription Attributes error-uri-scheme-not-supported' value in the Subscription Attributes
Group in the response. Group in the response.
The Printer MUST treat the address part of this attribute as opaque.
5.3.1.1 notify-schemes-supported (1setOf uriScheme) 5.3.1.1 notify-schemes-supported (1setOf uriScheme)
This attribute contains the URI schemes supported in the "notify- This attribute contains the URI schemes supported in the "notify-
recipient-uri" Subscription Template attribute. See sections 5.1 and recipient-uri" Subscription Template attribute. See sections 5.1 and
5.2 for the behavior of "xxx-supported" Subscription Template Printer 5.2 for the behavior of "xxx-supported" Subscription Template Printer
attributes. attributes.
5.3.2 notify-pull-method (type2 keyword) 5.3.2 notify-pull-method (type2 keyword)
This attribute's value is a type2 keyword indicating which Pull This attribute's value is a type2 keyword indicating which Pull
skipping to change at page 29, line 7 skipping to change at page 28, line 29
5.3.3.5 Rules for Matching of Subscribed Events 5.3.3.5 Rules for Matching of Subscribed Events
When an Event occurs, the Printer MUST find each Subscription object When an Event occurs, the Printer MUST find each Subscription object
whose "notify-events" attribute "matches" the Event. The rules for whose "notify-events" attribute "matches" the Event. The rules for
"matching" of Subscribed Events are described separately for Printer "matching" of Subscribed Events are described separately for Printer
Events and for Job Events. This section also describes some special Events and for Job Events. This section also describes some special
cases. cases.
5.3.3.5.1 Rules for Matching of Printer Events 5.3.3.5.1 Rules for Matching of Printer Events
Given that the Printer causes Printer Event E to occur, for each Given that the Printer causes Printer Event E to occur, for each Per-
Per-Job or Per-Printer Subscription S in the Printer, if E equals a Job or Per-Printer Subscription S in the Printer, if E equals a value
value of this attribute in S or E is a sub-value of a value of this of this attribute in S or E is a sub-value of a value of this
attribute in S, the Printer MUST generate an Event Notification. attribute in S, the Printer MUST generate an Event Notification.
Consider the example. There are three Subscription Objects each with Consider the example. There are three Subscription Objects each with
the Subscribed Printer Event 'printer-state-changed'. Subscription the Subscribed Printer Event 'printer-state-changed'. Subscription
Object A is a Per-Printer Subscription Object. Subscription Object B Object A is a Per-Printer Subscription Object. Subscription Object B
is a Per-Job Subscription Object for Job 1, and Subscription Object C is a Per-Job Subscription Object for Job 1, and Subscription Object C
is a Per-Job Subscription Object for Job 2. When the Printer enters is a Per-Job Subscription Object for Job 2. When the Printer enters
the 'stopped' state, the Printer delivers an Event Notification to the 'stopped' state, the Printer delivers an Event Notification to
the Notification Recipients of Subscription Objects A, B, and C the Notification Recipients of Subscription Objects A, B, and C
because this is a Printer Event. Note if Job 1 has already because this is a Printer Event. Note if Job 1 has already
skipping to change at page 30, line 15 skipping to change at page 29, line 40
The Printer also delivers an Event Notification to the Notification The Printer also delivers an Event Notification to the Notification
Recipient of Subscription Object D because 'job-completed' is a sub- Recipient of Subscription Object D because 'job-completed' is a sub-
value of 'job-state-changed' - the value that Subscription Object D value of 'job-state-changed' - the value that Subscription Object D
is listening for. The Printer does not deliver an Event Notification is listening for. The Printer does not deliver an Event Notification
to the Notification Recipients of Subscription Object C because it is to the Notification Recipients of Subscription Object C because it is
a Per-Job Subscription Object associated with some Job other than the a Per-Job Subscription Object associated with some Job other than the
Job generating the Event. Job generating the Event.
5.3.3.5.3 Special Cases for Matching Rules 5.3.3.5.3 Special Cases for Matching Rules
This section contains rule for special cases. This section contains two rules for the special case where a single
Event produces multiple Event Notifications destined for the same
Notification Recipient. These two rules clarify whether a Printer
should send multiple Event Notifications or consolidate them into a
single Event Notification.
If an Event matches Subscribed Events in two different Subscription If an Event matches Subscribed Events in two different Subscription
Objects and the Printer would deliver two identical Event Objects and the Printer would deliver two identical Event
Notifications (except for the "notify-subscription-id" attribute) to Notifications (except for the "notify-subscription-id" attribute) to
the same Notification Recipient using the same Delivery Method, the the same Notification Recipient using the same Delivery Method, the
Printer MUST deliver both Event Notifications. That is, the Printer Printer MUST deliver both Event Notifications. That is, the Printer
MUST NOT try to consolidate seemingly identical Event Notifications MUST NOT try to consolidate seemingly identical Event Notifications
that occur in separate Subscription objects. Incidentally, the that occur in separate Subscription objects. Incidentally, the
Printer MUST NOT reject Subscription Creation Operations that would Printer MUST NOT reject Subscription Creation Operations that would
create this scenario. create this scenario.
If an Event matches two values of this "notify-events" attribute in a Consider the example: At the time a Job completes, there are two Per-
single Subscription object (e.g., a value and its sub-value), a Printer Subscription Objects A and B with the same Notification
Printer MAY deliver one Event Notification for each matched value in Recipient R. Subscription Object A has the Subscribed Job Event
the Subscription Object or it MAY deliver only one Event Notification 'job-state-changed'. Subscription Object B has the Subscribed Job
per Subscription Object. The rules in sections 5.3.3.5.1 and Event 'job-completed'. Both Subscription Objects match the Event
5.3.3.5.2 are purposefully flexible about the number of Event 'job-completed'. The Printer delivers two Event Notifications to the
Notifications sent when Event E matches two or more values in a Notification Recipient R. One with the value of 'job-state-changed'
Subscription Object. for the "notify-subscribed-event" attribute and the other with the
value of 'job-completed' for the "notify-subscribed-event"
attribute.
Consider the example: There are two Per-Printer Subscription Objects If an Event matches two Subscribed Events in a single Subscription
when a Job completes. Subscription Object A has the Subscribed Job object (e.g., a value and its sub-value), a Printer MAY deliver one
Event 'job-state-changed'. Subscription Object B has the Subscribed Event Notification for each matched value in the Subscription Object
Job Events 'job-state-changed' and 'job-completed'. The Printer or it MAY deliver only a single Event Notification. The rules in
delivers an Event Notification to the Notification Recipient of sections 5.3.3.5.1 and 5.3.3.5.2 are purposefully flexible about the
Subscription Object A with the value of 'job-state-changed' for the number of Event Notifications sent when Event E matches two or more
"notify-subscribing-event" attribute. The Printer delivers either values in a Subscription Object.
one or two Event Notifications to the Notification Recipient of
Subscription Object B, depending on implementation. If it delivers Consider the example: At the time a Job completes, a Subscription
two Event Notifications, one has the value of 'job-state-changed' Object A has two Subscribed Job Events 'job-state-changed' and 'job-
for the "notify-subscribing-event" attribute, and the other has the completed'. Both Subscribed Job Events match the Event 'job-
value of 'job-completed' for the "notify-subscribing-event" completed'. The Printer delivers either one or two Event
attribute. If it delivers one Event Notification, it has the value Notifications to the Notification Recipient of Subscription Object A,
of either 'job-state-changed' or 'job-completed' for the "notify- depending on implementation. If it delivers two Event Notifications,
subscribing-event" attribute, depending on implementation. The one has the value of 'job-state-changed' for the "notify-subscribed-
algorithm for choosing such a value is implementation dependent. event" attribute, and the other has the value of 'job-completed' for
the "notify-subscribed-event" attribute. If it delivers one Event
Notification, it has the value of either 'job-state-changed' or 'job-
completed' for the "notify-subscribed-event" attribute, depending on
implementation. The algorithm for choosing such a value is
implementation dependent.
5.3.4 notify-attributes (1setOf type2 keyword) 5.3.4 notify-attributes (1setOf type2 keyword)
This attribute contains a set of attribute names. When a Printer This attribute contains a set of attribute names. When a Printer
delivers a Machine Consumable Event Notification, it includes a fixed delivers a Machine Consumable Event Notification, it includes a fixed
set of attributes (see section 9.1). If this attribute is present set of attributes (see section 9.1). If this attribute is present
and the Event Notification is Machine Consumable, the Printer also and the Event Notification is Machine Consumable, the Printer also
includes the attributes specified by this attribute. includes the attributes specified by this attribute.
A Printer MAY support this attribute. A Printer MAY support this attribute.
skipping to change at page 31, line 49 skipping to change at page 31, line 36
Notification. Notification.
b)a Job attribute and the Printer is generating an Event b)a Job attribute and the Printer is generating an Event
Notification from a Per-Job Subscription Object S, the Printer Notification from a Per-Job Subscription Object S, the Printer
MUST use the attribute N in the Job object associated with S. MUST use the attribute N in the Job object associated with S.
c)a Job attribute and the Printer is generating an Event c)a Job attribute and the Printer is generating an Event
Notification from a Per-Printer Subscription Object and the Event Notification from a Per-Printer Subscription Object and the Event
is: is:
? a Job Event, the Printer MUST use the attribute N in the Job . a Job Event, the Printer MUST use the attribute N in the Job
object that caused the Event. object that caused the Event.
? a Printer Event, the Printer MUST use the attribute N in the . a Printer Event, the Printer MUST use the attribute N in the
active Job. active Job.
If a Printer supports this attribute and a Subscription Object If a Printer supports this attribute and a Subscription Object
contains this attribute and the Delivery Method generates a Machine contains this attribute and the Delivery Method generates a Machine
Consumable Event Notification, the Printer MUST include in each Event Consumable Event Notification, the Printer MUST include in each Event
Notification: Notification:
a)the attributes specified in section 9.1 and a)the attributes specified in section 9.1 and
b)each attribute named by this attribute. b)each attribute named by this attribute.
skipping to change at page 37, line 42 skipping to change at page 37, line 13
creates Subscription Objects. However, if there is no security on creates Subscription Objects. However, if there is no security on
Subscription objects, sequential assignment exposes the system to a Subscription objects, sequential assignment exposes the system to a
passive traffic monitoring threat. passive traffic monitoring threat.
The Printer SHOULD avoid re-using recent values of this attribute The Printer SHOULD avoid re-using recent values of this attribute
during continuous operation of the Printer as well as across power during continuous operation of the Printer as well as across power
cycles. Then a Subscribing Client is unlikely to find that a stale cycles. Then a Subscribing Client is unlikely to find that a stale
reference accesses a new Subscription Object. reference accesses a new Subscription Object.
The 0 value is not permitted in order to allow for compatibility with The 0 value is not permitted in order to allow for compatibility with
"job-id" and with SNMP index values, which also cannot be 0. "job-id" and with MIB table index values, which are recommended not
to be 0.
5.4.2 notify-sequence-number (integer (0:MAX)) 5.4.2 notify-sequence-number (integer (0:MAX))
The value of this attribute indicates the number of times that the The value of this attribute indicates the number of times that the
Printer has generated and attempted to deliver an Event Notification Printer has generated and attempted to deliver an Event Notification
for this Subscription object. When an Event Notification contains for this Subscription object. When an Event Notification contains
this attribute, the Notification Recipient can determine whether it this attribute, the Notification Recipient can determine whether it
missed some Event Notifications (i.e., numbers skipped) or received missed some Event Notifications (i.e., numbers skipped) or received
duplicates (i.e., same number twice). duplicates (i.e., same number twice).
skipping to change at page 43, line 35 skipping to change at page 43, line 5
The Delivery Method Document specifies whether the Printer includes The Delivery Method Document specifies whether the Printer includes
the value of this attribute in an Event Notification. the value of this attribute in an Event Notification.
8.2 notify-text (text(MAX)) 8.2 notify-text (text(MAX))
This attribute contains a Human Consumable text message (see section This attribute contains a Human Consumable text message (see section
9.2). This message describes the Event and is encoded as plain text, 9.2). This message describes the Event and is encoded as plain text,
i.e., 'text/plain' with the charset specified by Subscription i.e., 'text/plain' with the charset specified by Subscription
Object's "notify-charset" attribute. Object's "notify-charset" attribute.
Note: this attribute contains a text message only and must not
contain any encoding information, such as 'text/plain'. The
'text/plain' encoding is implicit and thus the charset must be
specified by an alternate mechanism, namely the "notify-charset"
attribute.
The Delivery Method Document specifies whether the Printer includes The Delivery Method Document specifies whether the Printer includes
this attribute in an Event Notification. this attribute in an Event Notification.
9 Event Notification Content 9 Event Notification Content
This section defines the Event Notification content that the Printer This section defines the Event Notification content that the Printer
delivers when an Event occurs. delivers when an Event occurs.
When an Event occurs, the Printer MUST find each Subscription object When an Event occurs, the Printer MUST find each Subscription object
whose "notify-events" attribute "matches" the Event. See section whose "notify-events" attribute "matches" the Event. See section
skipping to change at page 54, line 43 skipping to change at page 52, line 27
Printer delivers an Event Notification to a Notification Recipient. Printer delivers an Event Notification to a Notification Recipient.
There are several potential Delivery Methods for Event Notifications, There are several potential Delivery Methods for Event Notifications,
standardized, as well as proprietary. This specification REQUIRES standardized, as well as proprietary. This specification REQUIRES
that the 'ippget' Pull Delivery Method [ipp-get-method] be supported. that the 'ippget' Pull Delivery Method [ipp-get-method] be supported.
Conforming implementations MAY support additional Push or Pull Conforming implementations MAY support additional Push or Pull
Delivery Methods as well. This document does not define any of these Delivery Methods as well. This document does not define any of these
delivery mechanisms. Each Delivery Method MUST be defined in a delivery mechanisms. Each Delivery Method MUST be defined in a
Delivery Method Document that is separate from this document. New Delivery Method Document that is separate from this document. New
Delivery Methods will be created as needed using an extension to the Delivery Methods will be created as needed using an extension to the
registration procedures defined in [RFC2911]. Such documents are registration procedures defined in [RFC2911]. Such documents are
registered with IANA (see section 24.7.3). registered with IANA (see section 23.7.3).
The following sorts of Delivery Methods are possible: The following sorts of Delivery Methods are possible:
- The Notification Recipient polls for Event Notifications at - The Notification Recipient polls for Event Notifications at
intervals directed by the Printer intervals directed by the Printer
- The Printer delivers Event Notifications to the Notification - The Printer delivers Event Notifications to the Notification
Recipient using http as the transport. Recipient using http as the transport.
- The Printer delivers an email message. - The Printer delivers an email message.
This section specifies how to define a Delivery Method Document and This section specifies how to define a Delivery Method Document and
what to put in such a document. what to put in such a document.
A Delivery Method Document MUST contain an exact copy of the A Delivery Method Document MUST contain an exact copy of the
following paragraph, caption and table. In addition, column 2 of the following paragraph, caption and table. In addition, column 2 of the
skipping to change at page 55, line 24 skipping to change at page 53, line 9
table in the Delivery Method Document MUST contain answers to table in the Delivery Method Document MUST contain answers to
questions in column 1 for the Delivery Method. Also, the Delivery questions in column 1 for the Delivery Method. Also, the Delivery
Method document MUST contain a reference to this document and call Method document MUST contain a reference to this document and call
that reference [ipp-ntfy] because the table contains an [ipp-ntfy] that reference [ipp-ntfy] because the table contains an [ipp-ntfy]
reference. reference.
If a Printer supports this Delivery Method, the following are its If a Printer supports this Delivery Method, the following are its
characteristics. characteristics.
Table 15 - Information about the Delivery Method Table 15 - Information about the Delivery Method
Document Method Conformance Requirement Delivery Method Document Method Conformance Requirement Delivery Method
Realization Realization
1.What is the URL scheme name for the Push 1.What is the URL scheme name for the Push
Delivery Method or the keyword method Delivery Method or the keyword method
name for the Pull Delivery Method? name for the Pull Delivery Method?
2.Is the Delivery Method REQUIRED, 2.Is the Delivery Method REQUIRED,
RECOMMENDED, or OPTIONAL for an IPP RECOMMENDED, or OPTIONAL for an IPP
Printer to support? Printer to support?
3.What transport and delivery protocols 3.What transport and delivery protocols
does the Printer use to deliver the does the Printer use to deliver the
Event Notification Content, i.e., what Event Notification Content, i.e., what
is the entire network stack? is the entire network stack?
4.Can several Event Notifications be 4.Can several Event Notifications be
combined into a Compound Event combined into a Compound Event
Notification? Notification?
5.Is the Delivery Method initiated by the 5.Is the Delivery Method initiated by the
Notification Recipient (pull), or by the Notification Recipient (pull), or by the
Printer (push)? Printer (push)?
Document Method Conformance Requirement Delivery Method
Realization
6.Is the Event Notification content 6.Is the Event Notification content
Machine Consumable or Human Consumable? Machine Consumable or Human Consumable?
7.What section in this document answers 7.What section in this document answers
the following question? For a Machine the following question? For a Machine
Consumable Event Notification, what is Consumable Event Notification, what is
the representation and encoding of the representation and encoding of
values defined in section 9.1 of [ipp- values defined in section 9.1 of [ipp-
ntfy] and the conformance requirements ntfy] and the conformance requirements
thereof? For a Human Consumable Event thereof? For a Human Consumable Event
Notification, what is the representation Notification, what is the representation
and encoding of pieces of information and encoding of pieces of information
defined in section 9.2 of [ipp-ntfy] and defined in section 9.2 of [ipp-ntfy] and
skipping to change at page 56, line 21 skipping to change at page 53, line 41
the following question? For a Machine the following question? For a Machine
Consumable Event Notification, what is Consumable Event Notification, what is
the representation and encoding of the representation and encoding of
values defined in section 9.1 of [ipp- values defined in section 9.1 of [ipp-
ntfy] and the conformance requirements ntfy] and the conformance requirements
thereof? For a Human Consumable Event thereof? For a Human Consumable Event
Notification, what is the representation Notification, what is the representation
and encoding of pieces of information and encoding of pieces of information
defined in section 9.2 of [ipp-ntfy] and defined in section 9.2 of [ipp-ntfy] and
the conformance requirements thereof? the conformance requirements thereof?
8.What are the latency and reliability of 8.What are the latency and reliability of
the transport and delivery protocol? the transport and delivery protocol?
9.What are the security aspects of the 9.What are the security aspects of the
transport and delivery protocol, e.g., transport and delivery protocol, e.g.,
how it is handled in firewalls? how it is handled in firewalls?
10. What are the content length 10. What are the content length
restrictions? restrictions?
11. What are the additional values or 11. What are the additional values or
pieces of information that a Printer pieces of information that a Printer
delivers in an Event Notification delivers in an Event Notification
content and the conformance requirements content and the conformance requirements
thereof? thereof?
Document Method Conformance Requirement Delivery Method
Realization
12. What are the additional Subscription 12. What are the additional Subscription
Template and/or Subscription Description Template and/or Subscription Description
attributes and the conformance attributes and the conformance
requirements thereof? requirements thereof?
13. What are the additional Printer 13. What are the additional Printer
Description attributes and the Description attributes and the
conformance requirements thereof? conformance requirements thereof?
11 Operations for Notification 11 Operations for Notification
This section defines all of the operations for Notification. Section This section defines all of the operations for Notification. Section
7.1 assigns the "operation-id" for each operation. The following two 7.1 assigns the "operation-id" for each operation. The following two
sub-sections define Subscription Creation Operations, and other sub-sections define Subscription Creation Operations, and other
operations. operations.
skipping to change at page 79, line 16 skipping to change at page 76, line 22
- for all of the Job Creation Operations that the Printer - for all of the Job Creation Operations that the Printer
supports, MUST support the REQUIRED extensions for notification supports, MUST support the REQUIRED extensions for notification
defined in section 11.1.3. defined in section 11.1.3.
- meet the conformance requirements for operations as described - meet the conformance requirements for operations as described
in Table 16 and meet the requirements for Printers as specified in Table 16 and meet the requirements for Printers as specified
in the indicated sub-sections of section 11: in the indicated sub-sections of section 11:
Table 16 - Printer Conformance Requirements for Operations Table 16 - Printer Conformance Requirements for Operations
Operation Printer Operation Printer
Conformance Conformance
Requirements Requirements
Create-Printer-Subscriptions (section 11.1.2) REQUIRED Create-Printer-Subscriptions (section 11.1.2) REQUIRED
Create-Job-Subscriptions (section 11.1.1) OPTIONAL Create-Job-Subscriptions (section 11.1.1) OPTIONAL
Get-Subscription-Attributes (section 11.2.3) REQUIRED Get-Subscription-Attributes (section 11.2.3) REQUIRED
Get-Subscriptions (section 11.2.5) REQUIRED Get-Subscriptions (section 11.2.5) REQUIRED
Renew-Subscription (section 11.2.6) REQUIRED Renew-Subscription (section 11.2.6) REQUIRED
Cancel-Subscription (section 11.2.7) REQUIRED Cancel-Subscription (section 11.2.7) REQUIRED
16 Appendix A - Model for Notification with Cascading Printers 16 Model for Notification with Cascading Printers (Informative)
(Informative)
With this model (see Figure 2 below), there is an intervening Print With this model (see Figure 2 below), there is an intervening Print
server between the human user and the output-device. So the system server between the human user and the output-device. So the system
effectively has two Printer objects. There are two cases to effectively has two Printer objects. There are two cases to
consider. consider.
1.When the Printer 1 (in the server) generates Events, the system 1.When the Printer 1 (in the server) generates Events, the system
behaves like the client and Printer in Figure 1. In this case, behaves like the client and Printer in Figure 1. In this case,
Printer 1 delivers Event Notifications that are shown as Event Printer 1 delivers Event Notifications that are shown as Event
Notifications (A) of Figure 2. Notifications (A) of Figure 2.
skipping to change at page 80, line 48 skipping to change at page 77, line 44
+--------+ Subscription | ###########| | ###########| +--------+ Subscription | ###########| | ###########|
| client |--Creation ----># Printer #| Subscription | # Printer #| | client |--Creation ----># Printer #| Subscription | # Printer #|
+--------+ Operation | # Object 1#|---Creation------|># Object 2#| +--------+ Operation | # Object 1#|---Creation------|># Object 2#|
| ###|#######| Operation | ####|#|####| | ###|#######| Operation | ####|#|####|
+----|---^---+ +-----|-|----+ +----|---^---+ +-----|-|----+
+--------+ Event | | | | +--------+ Event | | | |
|Notific-|<-Notifications(A)-+ +-- Event Notifications(B)--+ | |Notific-|<-Notifications(A)-+ +-- Event Notifications(B)--+ |
|ation Re|<-------------Event Notifications(C)-----------------+ |ation Re|<-------------Event Notifications(C)-----------------+
|cipient | |cipient |
+--------+ +--------+
Figure 2 - Model for Notification with Cascading Printers Figure 2 - Model for Notification with Cascading Printers
17 Appendix B - Distributed Model for Notification (Informative) 17 Distributed Model for Notification (Informative)
A Printer implementation could use some other remote notification A Printer implementation could use some other remote notification
server to provide some or most of the service. For example, the server to provide some or most of the service. For example, the
remote notification server could deliver Event Notifications using remote notification server could deliver Event Notifications using
Delivery Methods that are not directly supported by the output device Delivery Methods that are not directly supported by the output device
or Printer object. Or, the remote notification server could store or Printer object. Or, the remote notification server could store
Subscription Objects (passed to it from the output device in response Subscription Objects (passed to it from the output device in response
to Subscription Creation requests), accept Events, format the Event to Subscription Creation requests), accept Events, format the Event
Notification in the natural language of the Notification Recipient, Notification in the natural language of the Notification Recipient,
and deliver the Event Notifications to the Notification Recipient(s). and deliver the Event Notifications to the Notification Recipient(s).
skipping to change at page 82, line 5 skipping to change at page 78, line 43
|Recipient |<--Event Notifications---| Notification | |Recipient |<--Event Notifications---| Notification |
+------------+ * | Server | +------------+ * | Server |
* +---------------+ * +---------------+
* *
************************* *************************
*** = Implementation configuration opaque boundary *** = Implementation configuration opaque boundary
Figure 3 - Opaque Use of a Notification Server Transparent to the Figure 3 - Opaque Use of a Notification Server Transparent to the
Client Client
18 Appendix C - Extended Notification Recipient (Informative) 18 Extended Notification Recipient (Informative)
The model allows for an extended Notification Recipient that is The model allows for an extended Notification Recipient that is
itself a notification server that forwards each Event Notification to itself a notification server that forwards each Event Notification to
another recipient (called the Ultimate Notification Recipient in this another recipient (called the Ultimate Notification Recipient in this
section). The Delivery Method to the Ultimate Recipient is probably section). The Delivery Method to the Ultimate Recipient is probably
different from the Delivery Method used by the Printer to the different from the Delivery Method used by the Printer to the
extended Notification Recipient. extended Notification Recipient.
This extended Notification Recipient is transparent to the Printer This extended Notification Recipient is transparent to the Printer
but not to the client. but not to the client.
skipping to change at page 82, line 50 skipping to change at page 79, line 43
+---------------+ +---------------+
+--------+ | ########### | +--------+ | ########### |
| client |---Subscription Creation -----------># Printer # | | client |---Subscription Creation -----------># Printer # |
+--------+ Operation | # Object # | +--------+ Operation | # Object # |
| #####|##### | | #####|##### |
+------------+ +------------+ IPP-defined +-------|-------+ +------------+ +------------+ IPP-defined +-------|-------+
|Ultimate | any |Notification|<--Event Notifications----+ |Ultimate | any |Notification|<--Event Notifications----+
|Notification|<----|Recipient | |Notification|<----|Recipient |
|Recipient | +------------+ |Recipient | +------------+
+------------+ (Notification Server) +------------+ (Notification Server)
Figure 4 - Use of an Extended Notification Recipient transparent to Figure 4 - Use of an Extended Notification Recipient transparent to
the Printer the Printer
19 Appendix D - Details about Conformance Terminology (Normative) 19 Object Model for Notification (Normative)
The following paragraphs provide more details about conformance
terminology.
REQUIRED - an adjective used to indicate that a conforming IPP
Printer implementation MUST support the indicated operation,
object, attribute, attribute value, status code, or out-of-band
value in requests and responses. See [RFC2911] "Appendix A -
Terminology for a definition of "support". Since support of this
entire Notification specification is OPTIONAL for conformance to
IPP/1.1, the use of the term REQUIRED in this document means
"REQUIRED if this OPTIONAL Notification specification is
implemented".
RECOMMENDED - an adjective used to indicate that a conforming IPP
Printer implementation is recommended to support the indicated
operation, object, attribute, attribute value, status code, or
out-of-band value in requests and responses. Since support of
this entire Notification specification is OPTIONAL for conformance
to IPP/1.1, the use of the term RECOMMENDED in this document means
"RECOMMENDED if this OPTIONAL Notification specification is
implemented".
OPTIONAL - an adjective used to indicate that a conforming IPP
Printer implementation MAY, but is NOT REQUIRED to, support the
indicated operation, object, attribute, attribute value, status
code, or out-of-band value in requests and responses.
20 Appendix E - Object Model for Notification (Normative)
This section describes the Notification object model that adds a This section describes the Notification object model that adds a
Subscription Object which together with the Job and Printer object Subscription Object which together with the Job and Printer object
provide the complete Notification semantics. provide the complete Notification semantics.
The object relationships can be seen pictorially as: The object relationships can be seen pictorially as:
Subscription Objects (Per-Printer Subscriptions) Printer object Subscription Objects (Per-Printer Subscriptions) Printer object
+----+ +------------+ +----+ +------------+
| s1 |<--------------------------------------------->| | | s1 |<--------------------------------------------->| |
skipping to change at page 84, line 34 skipping to change at page 80, line 34
+----+ | j2 | +----+ | j2 |
| s5 |<------>| | | s5 |<------>| |
+----++ | | +----++ | |
| s6 |<----->| | s5 and s6 are Per-Job Subscription | s6 |<----->| | s5 and s6 are Per-Job Subscription
+----+ ++--------++ Objects +----+ ++--------++ Objects
| | | |
| j3 | | j3 |
| | | |
| | <----> indicates association | | <----> indicates association
+---------+ +---------+
Figure 5 - Object Model for Notification Figure 5 - Object Model for Notification
s1, s2, and s3 are Per-Printer Subscription Objects and can s1, s2, and s3 are Per-Printer Subscription Objects and can
identify Printer and/or Job Events. identify Printer and/or Job Events.
s4, s5, and s6 are Per-Job Subscription Objects and can identify s4, s5, and s6 are Per-Job Subscription Objects and can identify
Printer and/or Job Events. Printer and/or Job Events.
20.1 Object relationships 19.1 Object relationships
This sub-section defines the object relationships between the This sub-section defines the object relationships between the
Printer, Job, and Subscription Objects by example. Whether Per- Printer, Job, and Subscription Objects by example. Whether Per-
Printer Subscription Objects are actually contained in a Printer Printer Subscription Objects are actually contained in a Printer
object or are just bi-directionally associated with them in some way object or are just bi-directionally associated with them in some way
is IMPLEMENTATION DEPENDENT and is transparent to the client. is IMPLEMENTATION DEPENDENT and is transparent to the client.
Similarly, whether Per-Job Subscription Objects are actually Similarly, whether Per-Job Subscription Objects are actually
contained in a Job object or are just bi-directionally associated contained in a Job object or are just bi-directionally associated
with them in some way is IMPLEMENTATION DEPENDENT and is transparent with them in some way is IMPLEMENTATION DEPENDENT and is transparent
to the client. The object relationships are defined as follows: to the client. The object relationships are defined as follows:
20.2 Printer Object and Per-Printer Subscription Objects 19.2 Printer Object and Per-Printer Subscription Objects
1.The Printer object contains (is associated with) zero or more 1.The Printer object contains (is associated with) zero or more
Per-Printer Subscription Objects (p1 contains s1-s3 Per-Printer Per-Printer Subscription Objects (p1 contains s1-s3 Per-Printer
Subscription Objects). Subscription Objects).
2.Each Per-Printer Subscription Object (s1, s2, and s3) is 2.Each Per-Printer Subscription Object (s1, s2, and s3) is
contained in (or is associated with) exactly one Printer object contained in (or is associated with) exactly one Printer object
(p1). (p1).
20.3 Job Object and Per-Job Subscription Objects 19.3 Job Object and Per-Job Subscription Objects
1.A Job object (j1, j2, j3) is associated with zero or more Per- 1.A Job object (j1, j2, j3) is associated with zero or more Per-
Job Subscription Objects (s4-s6). Job j1 is associated with Job Subscription Objects (s4-s6). Job j1 is associated with
Per-Job Subscription Object s4, Job j2 is associated with Per- Per-Job Subscription Object s4, Job j2 is associated with Per-
Job Subscription Objects s5 and s6, and Job j3 is not associated Job Subscription Objects s5 and s6, and Job j3 is not associated
with any Per-Job Subscription Object. with any Per-Job Subscription Object.
2.Each Per-Job Subscription Object is associated with exactly one 2.Each Per-Job Subscription Object is associated with exactly one
Job object. Job object.
21 Appendix F - Per-Job versus Per-Printer Subscription Objects 20 Per-Job versus Per-Printer Subscription Objects (Normative)
(Normative)
Per-Job and Per-Printer Subscription Objects are quite similar. Per-Job and Per-Printer Subscription Objects are quite similar.
Either type of Subscription Object can subscribe to Job Events, Either type of Subscription Object can subscribe to Job Events,
Printer Events, or both. Both types of Subscription Objects can be Printer Events, or both. Both types of Subscription Objects can be
queried using the Get-Subscriptions and Get-Subscription-Attributes queried using the Get-Subscriptions and Get-Subscription-Attributes
operations and canceled using the Cancel-Subscription operation. operations and canceled using the Cancel-Subscription operation.
Both types of Subscription Objects create Subscription Objects which Both types of Subscription Objects create Subscription Objects which
have the same Subscription Object attributes defined. However, there have the same Subscription Object attributes defined. However, there
are some semantic differences between Per-Job Subscription Objects are some semantic differences between Per-Job Subscription Objects
and Per-Printer Subscription Objects. A Per-Job Subscription Object and Per-Printer Subscription Objects. A Per-Job Subscription Object
skipping to change at page 86, line 18 skipping to change at page 82, line 18
Object is valid until the time (in seconds) that the Printer Object is valid until the time (in seconds) that the Printer
returned in the "notify-lease-expiration-time" operation returned in the "notify-lease-expiration-time" operation
attribute. attribute.
3.Job Events in a Per-Job Subscription Object apply only to "one 3.Job Events in a Per-Job Subscription Object apply only to "one
job" (the Job created by the Job Creation operation or job" (the Job created by the Job Creation operation or
references by the Create-Job-Subscriptions operation) while Job references by the Create-Job-Subscriptions operation) while Job
Events in a Per-Printer Subscription Object apply to ALL jobs Events in a Per-Printer Subscription Object apply to ALL jobs
contained in the IPP Printer. contained in the IPP Printer.
22 Normative References 21 Normative References
[ipp-get-method] [ipp-get-method]
Herriot, R., and T. Hastings, "Internet Printing Protocol (IPP): Herriot, R., and T. Hastings, "Internet Printing Protocol (IPP):
The 'ippget' Delivery Method for Event Notifications", <draft-ietf- The 'ippget' Delivery Method for Event Notifications", <draft-ietf-
ipp-notify-get-09.txt>, February 21, 2003. ipp-notify-get-10.txt>, June 21, 2004.
[RFC2119] [RFC2119]
S. Bradner, "Key words for use in RFCs to Indicate Requirement S. Bradner, "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119 , March 1997 Levels", RFC 2119 , March 1997
[RFC2396] [RFC2396]
Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource
Identifiers (URI): Generic Syntax", RFC 2396, August 1998. Identifiers (URI): Generic Syntax", RFC 2396, August 1998.
[RFC2717] [RFC2717]
skipping to change at page 87, line 5 skipping to change at page 83, line 5
[RFC2911] [RFC2911]
deBry, R., Hastings, T., Herriot, R., Isaacson, S., and P. Powell, deBry, R., Hastings, T., Herriot, R., Isaacson, S., and P. Powell,
"Internet Printing Protocol/1.1: Model and Semantics", RFC 2911, "Internet Printing Protocol/1.1: Model and Semantics", RFC 2911,
September 2000. September 2000.
[RFC3381] [RFC3381]
Hastings, T., Lewis, H., and R. Bergman, "IPP: Job Progress Hastings, T., Lewis, H., and R. Bergman, "IPP: Job Progress
Attributes", RFC 3381, September 2002. Attributes", RFC 3381, September 2002.
23 Informative References 22 Informative References
[IANA-CON] [IANA-CON]
Narte, T. and H. Alvestrand, "Guidelines for Writing an IANA Narte, T. and H. Alvestrand, "Guidelines for Writing an IANA
Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
[ipp-not-req] [ipp-not-req]
deBry, R., Lewis, H., and T. Hastings, "Internet Printing deBry, R., Lewis, H., and T. Hastings, "Internet Printing
Protocol/1.1: Requirements for IPP Notifications", <draft-ietf-ipp- Protocol/1.1: Requirements for IPP Notifications", <draft-ietf-ipp-
not-06.txt>, work in progress, July 17, 2001. not-07.txt>, June 21, 2004.
[RFC2565] [RFC2565]
Herriot, R., Butler, S., Moore, P., and R. Turner, "Internet Herriot, R., Butler, S., Moore, P., and R. Turner, "Internet
Printing Protocol/1.0: Encoding and Transport", RFC 2565, April Printing Protocol/1.0: Encoding and Transport", RFC 2565, April
1999. 1999.
[RFC2566] [RFC2566]
deBry, R., , Hastings, T., Herriot, R., Isaacson, S., and P. deBry, R., , Hastings, T., Herriot, R., Isaacson, S., and P.
Powell, "Internet Printing Protocol/1.0: Model and Semantics", RFC Powell, "Internet Printing Protocol/1.0: Model and Semantics", RFC
2566, April 1999. 2566, April 1999.
skipping to change at page 87, line 48 skipping to change at page 83, line 48
[RFC2616] [RFC2616]
Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L.,
Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol - Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -
HTTP/1.1", RFC 2616, June 1999. HTTP/1.1", RFC 2616, June 1999.
[RFC3196] [RFC3196]
Hastings, T., Manros, C., Zehler, P., Kugler, C., and H. Holst, Hastings, T., Manros, C., Zehler, P., Kugler, C., and H. Holst,
"Internet Printing Protocol/1.1: Implementer's Guide", RFC3196, "Internet Printing Protocol/1.1: Implementer's Guide", RFC3196,
November 2001. November 2001.
24 IANA Considerations 23 IANA Considerations
This section contains the registration information for IANA to add to This section contains the registration information for IANA to add to
the IPP Registry according to the procedures defined in RFC 2911 the IPP Registry according to the procedures defined in RFC 2911
[RFC2911] section 6 to cover the definitions in this document. In [RFC2911] section 6 to cover the definitions in this document. In
addition, this section defines how Events and Delivery Methods will addition, this section defines how Events and Delivery Methods will
be registered when they are defined in other documents. The be registered when they are defined in other documents. The
resulting registrations will be published in the resulting registrations will be published in the
http://www.iana.org/assignments/ipp-registrations registry. http://www.iana.org/assignments/ipp-registrations registry.
Note to RFC Editors: Replace RFC NNNN below (but not RFC xxxx) Note to RFC Editors: Replace RFC NNNN below (but not RFC xxxx)
with the RFC number for this document, so that it accurately with the RFC number for this document, so that it accurately
reflects the content of the information for the IANA Registry. reflects the content of the information for the IANA Registry.
24.1 Attribute Registrations 23.1 Attribute Registrations
The following table lists all the attributes defined in this The following table lists all the attributes defined in this
document. These are to be registered according to the procedures in document. These are to be registered according to the procedures in
RFC 2911 [RFC2911] section 6.2. RFC 2911 [RFC2911] section 6.2.
Subscription Template attributes: Reference Section Subscription Template attributes: Reference Section
--------------------------------- --------- ------- --------------------------------- --------- -------
notify-attributes (1setOf type2 keyword) [RFCNNNN] 5.3.4 notify-attributes (1setOf type2 keyword) [RFCNNNN] 5.3.4
notify-attributes-supported (1setOf type2 keyword) notify-attributes-supported (1setOf type2 keyword)
[RFCNNNN] 5.3.4.1 [RFCNNNN] 5.3.4.1
skipping to change at page 89, line 12 skipping to change at page 85, line 12
notify-subscriber-user-name (name(MAX))) [RFCNNNN] 5.4.7 notify-subscriber-user-name (name(MAX))) [RFCNNNN] 5.4.7
notify-subscription-id (integer (1:MAX))) [RFCNNNN] 5.4.1 notify-subscription-id (integer (1:MAX))) [RFCNNNN] 5.4.1
Printer Description Attributes: Printer Description Attributes:
printer-state-change-date-time (dateTime)) [RFCNNNN] 6.2 printer-state-change-date-time (dateTime)) [RFCNNNN] 6.2
printer-state-change-time (integer(1:MAX))) [RFCNNNN] 6.1 printer-state-change-time (integer(1:MAX))) [RFCNNNN] 6.1
Attributes Only in Event Notifications Attributes Only in Event Notifications
notify-subscribed-event (type2 keyword) [RFCNNNN] 8.1 notify-subscribed-event (type2 keyword) [RFCNNNN] 8.1
notify-text (text(MAX)) [RFCNNNN] 8.2 notify-text (text(MAX)) [RFCNNNN] 8.2
24.2 Additional Enum Attribute Value Registrations 23.2 Additional Enum Attribute Value Registrations within the IPP
registry
The following table lists all the new enum attribute values defined The following table lists all the new enum attribute values defined
in this document. These are to be registered according to the in this document. These are to be registered within the IPP registry
procedures in RFC 2911 [RFC2911] section 6.1. according to the procedures in RFC 2911 [RFC2911] section 6.1.
Attribute Attribute
Value Name Reference Section Value Name Reference Section
------ ----------------------------- --------- ------- ------ ----------------------------- --------- -------
operations-supported (type2 enum) [RFC2911] 4.4.15 operations-supported (type2 enum) [RFC2911] 4.4.15
0x0016 Create-Printer-Subscriptions [RFCNNNN] 7.1 0x0016 Create-Printer-Subscriptions [RFCNNNN] 7.1
0x0017 Create-Job-Subscriptions [RFCNNNN] 7.1 0x0017 Create-Job-Subscriptions [RFCNNNN] 7.1
0x0018 Get-Subscription-Attributes [RFCNNNN] 7.1 0x0018 Get-Subscription-Attributes [RFCNNNN] 7.1
0x0019 Get-Subscriptions [RFCNNNN] 7.1 0x0019 Get-Subscriptions [RFCNNNN] 7.1
0x001A Renew-Subscription [RFCNNNN] 7.1 0x001A Renew-Subscription [RFCNNNN] 7.1
0x001B Cancel-Subscription [RFCNNNN] 7.1 0x001B Cancel-Subscription [RFCNNNN] 7.1
24.3 Operation Registrations 23.3 Operation Registrations
The following table lists all of the operations defined in this The following table lists all of the operations defined in this
document. These are to be registered according to the procedures in document. These are to be registered according to the procedures in
RFC 2911 [RFC2911] section 6.4. RFC 2911 [RFC2911] section 6.4.
Operation Name Reference Section Operation Name Reference Section
--------------------------------- --------- ------- --------------------------------- --------- -------
Cancel-Subscription [RFCNNNN] 11.2.7 Cancel-Subscription [RFCNNNN] 11.2.7
Create-Job - Extensions [RFCNNNN] 11.1.3 Create-Job - Extensions [RFCNNNN] 11.1.3
Create-Job-Subscriptions [RFCNNNN] 11.1.1 Create-Job-Subscriptions [RFCNNNN] 11.1.1
Create-Printer-Subscriptions [RFCNNNN] 11.1.2 Create-Printer-Subscriptions [RFCNNNN] 11.1.2
Get-Printer-Attributes - Extensions [RFCNNNN] 11.2.3 Get-Printer-Attributes - Extensions [RFCNNNN] 11.2.3
Get-Subscription-Attributes [RFCNNNN] 11.2.4 Get-Subscription-Attributes [RFCNNNN] 11.2.4
Get-Subscriptions [RFCNNNN] 11.2.5 Get-Subscriptions [RFCNNNN] 11.2.5
Print-Job - Extensions [RFCNNNN] 11.1.3 Print-Job - Extensions [RFCNNNN] 11.1.3
Print-URI - Extensions [RFCNNNN] 11.1.3 Print-URI - Extensions [RFCNNNN] 11.1.3
Renew-Subscription [RFCNNNN] 11.2.6 Renew-Subscription [RFCNNNN] 11.2.6
Validate-Job Operation - Extensions [RFCNNNN] 11.2.2 Validate-Job Operation - Extensions [RFCNNNN] 11.2.2
24.4 Status code Registrations 23.4 Status code Registrations
The following table lists all the status codes defined in this The following table lists all the status codes defined in this
document. These are to be registered according to the procedures in document. These are to be registered according to the procedures in
RFC 2911 [RFC2911] section 6.6. RFC 2911 [RFC2911] section 6.6.
Value Status Code Name Reference Section Value Status Code Name Reference Section
----- ---------------------------- --------- ------- ----- ---------------------------- --------- -------
0x0000:0x00FF - Successful: 0x0000:0x00FF - Successful:
0x0003 successful-ok-ignored-subscriptions [RFCNNNN] 12.1 0x0003 successful-ok-ignored-subscriptions [RFCNNNN] 12.1
0x0400:0x04FF - Client Error: 0x0400:0x04FF - Client Error:
0x0414 client-error-ignored-all-subscriptions [RFCNNNN] 12.2 0x0414 client-error-ignored-all-subscriptions [RFCNNNN] 12.2
24.5 Attribute Group tag Registrations 23.5 Attribute Group tag Registrations
The following table lists all the attribute group tags defined in The following table lists all the attribute group tags defined in
this document. These are to be registered according to the this document. These are to be registered according to the
procedures in RFC 2911 [RFC2911] section 6.5. procedures in RFC 2911 [RFC2911] section 6.5.
Value Attribute Group Tag Name Reference Section Value Attribute Group Tag Name Reference Section
----- -------------------------------- -------- ------- ----- -------------------------------- -------- -------
0x06 subscription-attributes-tag [RFCNNNN] 14 0x06 subscription-attributes-tag [RFCNNNN] 14
0x07 event-notification-attributes-tag [RFCNNNN] 14 0x07 event-notification-attributes-tag [RFCNNNN] 14
24.6 Registration of Events 23.6 Registration of Events
The following table lists all the Events defined in this document as The following table lists all the Events defined in this document as
type2 keywords to be used with the "notify-events", "notify-events- type2 keywords to be used with the "notify-events", "notify-events-
default", and "notify-events-supported" Subscription Template default", and "notify-events-supported" Subscription Template
attributes (see section 5.3.3)). Rather than creating a separate attributes (see section 5.3.3)). Rather than creating a separate
section in the IPP Registry for Events, these event keywords will be section in the IPP Registry for Events, these event keywords will be
registered according to the procedures of [RFC2911] section 7.1 as registered according to the procedures of [RFC2911] section 7.1 as
additional keyword attribute values for use with the "notify-events" additional keyword attribute values for use with the "notify-events"
Subscription Template attribute (see section 5.3.3), i.e., registered Subscription Template attribute (see section 5.3.3), i.e., registered
as keyword values for the "notify-events", "notify-events-default", as keyword values for the "notify-events", "notify-events-default",
skipping to change at page 91, line 31 skipping to change at page 87, line 31
printer-finishings-changed [RFCNNNN] 5.3.3.4.2 printer-finishings-changed [RFCNNNN] 5.3.3.4.2
printer-queue-order-changed [RFCNNNN] 5.3.3.4.2 printer-queue-order-changed [RFCNNNN] 5.3.3.4.2
Job Events: Job Events:
job-state-changed [RFCNNNN] 5.3.3.4.3 job-state-changed [RFCNNNN] 5.3.3.4.3
job-created [RFCNNNN] 5.3.3.4.3 job-created [RFCNNNN] 5.3.3.4.3
job-completed [RFCNNNN] 5.3.3.4.3 job-completed [RFCNNNN] 5.3.3.4.3
job-stopped [RFCNNNN] 5.3.3.4.3 job-stopped [RFCNNNN] 5.3.3.4.3
job-config-changed [RFCNNNN] 5.3.3.4.3 job-config-changed [RFCNNNN] 5.3.3.4.3
job-progress [RFCNNNN] 5.3.3.4.3 job-progress [RFCNNNN] 5.3.3.4.3
24.7 Registration of Event Notification Delivery Methods 23.7 Registration of Event Notification Delivery Methods
This section describes the requirements and procedures for This section describes the requirements and procedures for
registration and publication of Event Notification Delivery Methods registration and publication of Event Notification Delivery Methods
and for the submission of such proposals. and for the submission of such proposals.
24.7.1 Requirements for Registration of Event Notification Delivery 23.7.1 Requirements for Registration of Event Notification Delivery
Methods Methods
Registered IPP Event Notification Delivery Methods are expected to Registered IPP Event Notification Delivery Methods are expected to
follow a number of requirements described below. follow a number of requirements described below.
24.7.1.1 Required Characteristics 23.7.1.1 Required Characteristics
A Delivery Method Document MUST either (1) contain all of the A Delivery Method Document MUST either (1) contain all of the
semantics of the Delivery Method or (2) contain the IPP Delivery semantics of the Delivery Method or (2) contain the IPP Delivery
Method registration requirements and a profile of some other protocol Method registration requirements and a profile of some other protocol
that in combination is the Delivery Method (e.g., mailto). The that in combination is the Delivery Method (e.g., mailto). The
Delivery Method Document (and any documents it requires) MUST define Delivery Method Document (and any documents it requires) MUST define
either (1) a URL for a Push Delivery Method that the meets the either (1) a URL for a Push Delivery Method that the meets the
requirements of [RFC2717]. or (2) a keyword for a Pull Delivery requirements of [RFC2717]. or (2) a keyword for a Pull Delivery
method. method.
skipping to change at page 92, line 25 skipping to change at page 88, line 25
Proposed URL scheme name of this Push Delivery Method or the Proposed URL scheme name of this Push Delivery Method or the
keyword name of this Pull Delivery Method: keyword name of this Pull Delivery Method:
Name of proposer: Name of proposer:
Address of proposer: Address of proposer:
Email address of proposer: Email address of proposer:
Is this delivery method REQUIRED or OPTIONAL for conformance to the Is this delivery method REQUIRED or OPTIONAL for conformance to the
IPP Event Notification and Subscriptions document: IPP Event Notification and Subscriptions document:
Is this delivery method defining Machine Consumable and/or Human Is this delivery method defining Machine Consumable and/or Human
Consumable content: Consumable content:
24.7.1.2 Naming Requirements 23.7.1.2 Naming Requirements
Exactly one (URL scheme or keyword) name MUST be assigned to each Exactly one (URL scheme or keyword) name MUST be assigned to each
Delivery Method. Delivery Method.
Each assigned name MUST uniquely identify a single Delivery Method. Each assigned name MUST uniquely identify a single Delivery Method.
All Push Delivery Method names MUST conform to the rules for URL All Push Delivery Method names MUST conform to the rules for URL
scheme names, according to [RFC2396] and [RFC2717] for schemes in the scheme names, according to [RFC2396] and [RFC2717] for schemes in the
IETF tree. All Pull Delivery Method names MUST conform to the rules IETF tree. All Pull Delivery Method names MUST conform to the rules
for keywords according to [RFC2911]. for keywords according to [RFC2911].
24.7.1.3 Functionality Requirements 23.7.1.3 Functionality Requirements
Delivery Methods MUST function as a protocol that is capable of Delivery Methods MUST function as a protocol that is capable of
delivering (push or pull) IPP Event Notifications to Notification delivering (push or pull) IPP Event Notifications to Notification
Recipients. Recipients.
24.7.1.4 Usage and Implementation Requirements 23.7.1.4 Usage and Implementation Requirements
Use of a large number of Delivery Methods may hamper Use of a large number of Delivery Methods may hamper
interoperability. However, the use of a large number of undocumented interoperability. However, the use of a large number of undocumented
and/or unlabelled Delivery Methods hampers interoperability even and/or unlabelled Delivery Methods hampers interoperability even
more. more.
A Delivery Method should therefore be registered ONLY if it adds A Delivery Method should therefore be registered ONLY if it adds
significant functionality that is valuable to a large community, OR significant functionality that is valuable to a large community, OR
if it documents existing practice in a large community. Note that if it documents existing practice in a large community. Note that
Delivery Methods registered for the second reason should be Delivery Methods registered for the second reason should be
explicitly marked as being of limited or specialized use and should explicitly marked as being of limited or specialized use and should
only be used with prior bilateral agreement. only be used with prior bilateral agreement.
24.7.1.5 Publication Requirements 23.7.1.5 Publication Requirements
Delivery Method Documents MUST be published in a standards track, Delivery Method Documents MUST be published in a standards track,
informational, or experimental RFCs. informational, or experimental RFCs.
24.7.2 Registration Procedure 23.7.2 Registration Procedure
The IPP WG is developing a small number of Delivery Methods which are The IPP WG is developing a small number of Delivery Methods which are
intended to be published as standards track RFCs. However, some intended to be published as standards track RFCs. However, some
parties may wish to register additional Delivery Methods in the parties may wish to register additional Delivery Methods in the
future. This section describes the procedures for these additional future. This section describes the procedures for these additional
Delivery Methods. Delivery Methods.
24.7.2.1 Present the proposal to the Community 23.7.2.1 Present the proposal to the Community
First the Delivery Method Document MUST be an Internet-Draft with a First the Delivery Method Document MUST be an Internet-Draft with a
target category of standards track, informational, or experimental. target category of standards track, informational, or experimental.
The same MUST be true for any documents that it references. The same MUST be true for any documents that it references.
Deliver the proposed Delivery Method Document proposal to the Deliver the proposed Delivery Method Document proposal to the
"ipp@pwg.org" mailing list. This mailing list has been established "ipp@pwg.org" mailing list. This mailing list has been established
by [RFC2911] for reviewing proposed registrations and discussing by [RFC2911] for reviewing proposed registrations and discussing
other IPP matters. Proposed Delivery Method Documents are not other IPP matters. Proposed Delivery Method Documents are not
formally registered and MUST NOT be used until approved. formally registered and MUST NOT be used until approved.
The intent of the public posting is to solicit comments and feedback The intent of the public posting is to solicit comments and feedback
on the definition and suitability of the Delivery Method and the name on the definition and suitability of the Delivery Method and the name
chosen for it over a four week period. chosen for it over a four week period.
24.7.2.2 Delivery Method Reviewer 23.7.2.2 Delivery Method Reviewer
The Delivery Method Reviewer is the same person who has been The Delivery Method Reviewer is the same person who has been
appointed by the IETF Application Area Director(s) as the IPP appointed by the IETF Application Area Director(s) as the IPP
Designated Expert according to [RFC2911] and [IANA-CON]. When the Designated Expert according to [RFC2911] and [IANA-CON]. When the
four week period is over and the IPP Designated Expert is convinced four week period is over and the IPP Designated Expert is convinced
that consensus has been achieved, the IPP Designated Expert either that consensus has been achieved, the IPP Designated Expert either
approves the request for registration or rejects it. Rejection may approves the request for registration or rejects it. Rejection may
occur because of significant objections raised on the list or occur because of significant objections raised on the list or
objections raised externally. objections raised externally.
Decisions made by the Reviewer must be posted to the ipp@pwg.org Decisions made by the Reviewer must be posted to the ipp@pwg.org
mailing list within 14 days. Decisions made by the Reviewer may be mailing list within 14 days. Decisions made by the Reviewer may be
appealed to the IESG. appealed to the IESG.
24.7.2.3 IANA Registration 23.7.2.3 IANA Registration
Provided that the Delivery Method registration proposal has either Provided that the Delivery Method registration proposal has either
passed review or has been successfully appealed to the IESG, the IANA passed review or has been successfully appealed to the IESG, the IANA
will be notified by the delivery method reviewer and asked to will be notified by the delivery method reviewer and asked to
register the Delivery Method and make it available to the community. register the Delivery Method and make it available to the community.
24.7.3 Delivery Method Document Registrations 23.7.3 Delivery Method Document Registrations
Each Push Delivery Method Document defines a URI scheme. Such a URI Each Push Delivery Method Document defines a URI scheme. Such a URI
scheme is used in a URI value of the "notification-recipient" (uri) scheme is used in a URI value of the "notification-recipient" (uri)
Subscription Template attribute (see section 5.3.1) and the uriScheme Subscription Template attribute (see section 5.3.1) and the uriScheme
value of the "notify-schemes-supported" (1setOf uriScheme 5.3.1.1) value of the "notify-schemes-supported" (1setOf uriScheme 5.3.1.1)
Printer attribute(see section ). Rather than creating a separate Printer attribute(see section ). Rather than creating a separate
section in the IPP Registry for Delivery Methods, Push Delivery section in the IPP Registry for Delivery Methods, Push Delivery
Methods will be registered as an additional value of the "notify- Methods will be registered as an additional value of the "notify-
schemes-supported" Printer attribute. These uriScheme values will be schemes-supported" Printer attribute. These uriScheme values will be
registered according to the procedures of [RFC2911] section 7.1 for registered according to the procedures of [RFC2911] section 7.1 for
skipping to change at page 95, line 13 skipping to change at page 91, line 13
Registry entry for a Pull Delivery Method will be of the form: Registry entry for a Pull Delivery Method will be of the form:
Attribute Attribute
Value Ref. Section Value Ref. Section
--------------------- -------- ------- --------------------- -------- -------
notify-pull-method (type2 keyword) [ipp-ntfy] 5.3.2 notify-pull-method (type2 keyword) [ipp-ntfy] 5.3.2
notify-pull-method-supported (1setOf type2 keyword) notify-pull-method-supported (1setOf type2 keyword)
[ipp-ntfy] 5.3.2.1 [ipp-ntfy] 5.3.2.1
<method keyword name> RFC xxxx m.n <method keyword name> RFC xxxx m.n
24.7.4 Registration Template 23.7.4 Registration Template
To: ipp@pwg.org To: ipp@pwg.org
Subject: Registration of a new Delivery Method Subject: Registration of a new Delivery Method
Delivery Method name: Delivery Method name:
(All Push Delivery Method names must be suitable for use as the value (All Push Delivery Method names must be suitable for use as the value
of a URL scheme in the IETF tree and all Pull Delivery Method names of a URL scheme in the IETF tree and all Pull Delivery Method names
must be suitable IPP keywords according to [RFC2911]) must be suitable IPP keywords according to [RFC2911])
Published specification(s): Published specification(s):
(A specification for the Delivery Method must be openly available (A specification for the Delivery Method must be openly available
that accurately describes what is being registered.) that accurately describes what is being registered.)
Person & email address to contact for further information: Person & email address to contact for further information:
25 Intellectural Property 24 Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in RFC 2028. Copies of standards-related documentation can be found in RFC 2028. Copies of
claims of rights made available for publication and any assurances of claims of rights made available for publication and any assurances of
skipping to change at page 96, line 5 skipping to change at page 92, line 5
obtain a general license or permission for the use of such obtain a general license or permission for the use of such
proprietary rights by implementers or users of this specification can proprietary rights by implementers or users of this specification can
be obtained from the IETF Secretariat. be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive this standard. Please address the information to the IETF Executive
Director. Director.
26 Internationalization Considerations 25 Internationalization Considerations
This IPP Notification specification continues support for the This IPP Notification specification continues support for the
internationalization of [RFC2911] of attributes containing text internationalization of [RFC2911] of attributes containing text
strings and names. Allowing a Subscribing Client to specify a strings and names. Allowing a Subscribing Client to specify a
different natural language and charset for each Subscription Object different natural language and charset for each Subscription Object
increases the internationalization support. increases the internationalization support.
The Printer MUST be able to localize the content of Human Consumable The Printer MUST be able to localize the content of Human Consumable
Event Notifications and to localize the value of "notify-text" Event Notifications and to localize the value of "notify-text"
attribute in Machine Consumable Event Notifications that it delivers attribute in Machine Consumable Event Notifications that it delivers
to Notification Recipients. For localization, the Printer MUST use to Notification Recipients. For localization, the Printer MUST use
the value of the "notify-charset" attribute and the "notify-natural- the value of the "notify-charset" attribute and the "notify-natural-
language" attribute in the Subscription Object supplied by the language" attribute in the Subscription Object supplied by the
Subscribing Client. Subscribing Client.
27 Security Considerations 26 Security Considerations
Clients submitting Notification requests to the IPP Printer have the Clients submitting Notification requests to the IPP Printer have the
same security issues as submitting an IPP/1.1 print job request (see same security issues as submitting an IPP/1.1 print job request (see
[RFC2911] section 3.2.1 and section 8). The same mechanisms used by [RFC2911] section 3.2.1 and section 8). The same mechanisms used by
IPP/1.1 can therefore be used by the client Notification submission. IPP/1.1 can therefore be used by the client Notification submission.
Operations that require authentication can use the HTTP Operations that require authentication can use the HTTP
authentication. Operations that require privacy can use the HTTP/TLS authentication. Operations that require privacy can use the HTTP/TLS
privacy. As with IPP/1.1 Print Job Objects, if there is no security privacy. As with IPP/1.1 Print Job Objects, if there is no security
on Subscription Objects, sequential assignment of subscription-ids on Subscription Objects, sequential assignment of subscription-ids
exposes the system to a passive traffic monitoring threat. exposes the system to a passive traffic monitoring threat.
27.1 Client access rights 26.1 Client access rights
The Subscription Object access control model is the same as the The Subscription Object access control model is the same as the
access control model for Job objects. The client MUST have the access control model for Job objects. The client MUST have the
following access rights for the indicated Subscription operations: following access rights for the indicated Subscription operations:
1. Create-Job-Subscriptions (see section 11.1.1): A Per-Job 1. Create-Job-Subscriptions (see section 11.1.1): A Per-Job
Subscription object is associated with a Job. To create Per-Job Subscription object is associated with a Job. To create Per-Job
Subscription Objects, the authenticated user (see [RFC2911] Subscription Objects, the authenticated user (see [RFC2911]
section 8.3) performing this operation MUST (1) be the job section 8.3) performing this operation MUST (1) be the job
owner, (2) have Operator or Administrator access rights for this owner, (2) have Operator or Administrator access rights for this
skipping to change at page 98, line 29 skipping to change at page 94, line 29
or Administrator access rights for the Printer (see [RFC2911] or Administrator access rights for the Printer (see [RFC2911]
sections 1 and 8.5), or (3) be otherwise authorized by the sections 1 and 8.5), or (3) be otherwise authorized by the
Printer's administrator-configured security policy to cancel the Printer's administrator-configured security policy to cancel the
target Subscription Object. target Subscription Object.
The standard security concerns (delivery to the right user, privacy The standard security concerns (delivery to the right user, privacy
of content, tamper proof content) apply to each Delivery Method. of content, tamper proof content) apply to each Delivery Method.
Some Delivery Methods are more secure than others. Each Delivery Some Delivery Methods are more secure than others. Each Delivery
Method Document MUST discuss its Security Considerations. Method Document MUST discuss its Security Considerations.
27.2 Printer security threats 26.2 Printer security threats
Notification trap door: If a Printer supports the OPTIONAL "notify- Notification trap door: If a Printer supports the OPTIONAL "notify-
attributes" Subscription Template attribute (see section 5.3.4) where attributes" Subscription Template attribute (see section 5.3.4) where
the client can request that the Printer return any specified Job, the client can request that the Printer return any specified Job,
Printer, and Subscription object attributes, the Printer MUST apply Printer, and Subscription object attributes, the Printer MUST apply
the same security policy to these requested attributes in the Get- the same security policy to these requested attributes in the Get-
Notifications request as it does for the Get-Jobs, Get-Job- Notifications request as it does for the Get-Jobs, Get-Job-
Attributes, Get-Printer-Attributes, and Get-Subscription-Attributes Attributes, Get-Printer-Attributes, and Get-Subscription-Attributes
requests. requests.
27.3 Notification Recipient security threats 26.3 Notification Recipient security threats
Unwanted Events Notifications (spam): For any Push Delivery Method, Unwanted Events Notifications (spam): For any Push Delivery Method,
by far the biggest security concern is the abuse of notification: by far the biggest security concern is the abuse of notification:
delivering unwanted Event Notifications to third parties (i.e., delivering unwanted Event Notifications to third parties (i.e.,
spam). The problem is made worse by notification addresses that may spam). The problem is made worse by notification addresses that may
be redistributed to multiple parties. There exist scenarios where be redistributed to multiple parties. There exist scenarios where
third party notification is used (see Scenario #2 and #3 in [ipp-not- third party notification is used (see Scenario #2 and #3 in [ipp-not-
req]). Any fully secure solution would require active agreement of req]). Any fully secure solution would require active agreement of
all recipients before delivering anything. all recipients before delivering anything.
28 Contributors 27 Contributors
The following people made significant contributions to the design and The following people made significant contributions to the design and
review of this specification: review of this specification:
Scott A. Isaacson Scott A. Isaacson
Novell, Inc. Novell, Inc.
122 E 1700 S 122 E 1700 S
Provo, UT 84606 Provo, UT 84606
Phone: 801-861-7366 Phone: 801-861-7366
skipping to change at page 100, line 13 skipping to change at page 96, line 13
e-mail: mshepherd@usa.xerox.com e-mail: mshepherd@usa.xerox.com
Ron Bergman Ron Bergman
Hitachi Koki Imaging Solutions Hitachi Koki Imaging Solutions
1757 Tapo Canyon Road 1757 Tapo Canyon Road
Simi Valley, CA 93063-3394 Simi Valley, CA 93063-3394
Phone: 805-578-4421 Phone: 805-578-4421
Fax: 805-578-4001 Fax: 805-578-4001
Email: rbergma@hitachi-hkis.com Email: rbergma@hitachi-hkis.com
29 Author's Addresses 28 Author's Addresses
Robert Herriot Robert Herriot
Global Workflow Solutions
706 Colorado Ave. 706 Colorado Ave.
Palo Alto, CA 94303 Palo Alto, CA 94303
Phone: 650-327-4466 Phone: 650-324-4000
Fax: 650-327-4466
Email: bob@herriot.com Email: bob@herriot.com
Tom Hastings Tom Hastings
Xerox Corporation Xerox Corporation
737 Hawaii St. ESAE 231 737 Hawaii St. ESAE 231
El Segundo, CA 90245 El Segundo, CA 90245
Phone: 310-333-6413 Phone: 310-333-6413
Fax: 310-333-5514 Fax: 310-333-5514
e-mail: hastings@cp10.es.xerox.com e-mail: hastings@cp10.es.xerox.com
IPP Web Page: http://www.pwg.org/ipp/ 29 Description of the base IPP documents (Informative)
IPP Mailing List: ipp@pwg.org
To subscribe to the ipp mailing list, send the following email:
1) send it to majordomo@pwg.org
2) leave the subject line blank
3) put the following two lines in the message body:
subscribe ipp
end
Implementers of this specification document are encouraged to join
the IPP Mailing List in order to participate in any discussions of
clarification issues and review of registration proposals for
additional attributes and values. In order to reduce spam the
mailing list rejects mail from non-subscribers, so you must subscribe
to the mailing list in order to send a question or comment to the
mailing list.
30 Appendix G - Description of the base IPP documents (Informative)
The base set of IPP documents includes: The base set of IPP documents includes:
Design Goals for an Internet Printing Protocol [RFC2567] Design Goals for an Internet Printing Protocol [RFC2567]
Rationale for the Structure and Model and Protocol for the Internet Rationale for the Structure and Model and Protocol for the Internet
Printing Protocol [RFC2568] Printing Protocol [RFC2568]
Internet Printing Protocol/1.1: Model and Semantics [RFC2911] Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
Internet Printing Protocol/1.1: Encoding and Transport [RFC2910] Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
Internet Printing Protocol/1.1: Implementer's Guide [RFC3196] Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
Mapping between LPD and IPP Protocols [RFC2569] Mapping between LPD and IPP Protocols [RFC2569]
skipping to change at page 102, line 11 skipping to change at page 97, line 39
objects. It is intended to help them understand IPP/1.1 and some of objects. It is intended to help them understand IPP/1.1 and some of
the considerations that may assist them in the design of their client the considerations that may assist them in the design of their client
and/or IPP object implementations. For example, a typical order of and/or IPP object implementations. For example, a typical order of
processing requests is given, including error checking. Motivation processing requests is given, including error checking. Motivation
for some of the specification decisions is also included. for some of the specification decisions is also included.
The "Mapping between LPD and IPP Protocols" document gives some The "Mapping between LPD and IPP Protocols" document gives some
advice to implementers of gateways between IPP and LPD (Line Printer advice to implementers of gateways between IPP and LPD (Line Printer
Daemon) implementations. Daemon) implementations.
31 Appendix H - Full Copyright Statement (Informative) 30 Full Copyright Statement
Copyright (C) The Internet Society (1998,1999,2000,2001,2002,2003). Copyright (C) The Internet Society (1998,1999,2000,2001,2002,2003).
All Rights Reserved All Rights Reserved
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/