| < 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 7, line 50 ¶ | skipping to change at page 7, line 50 ¶ | |||
| that creates a Subscription Object, the operation contains one or | that creates a Subscription Object, the operation contains one or | |||
| more Subscription Template Attributes Groups. Each such group holds | more Subscription Template Attributes Groups. Each such group holds | |||
| information used by the Printer to initialize a newly created | information used by the Printer to initialize a newly created | |||
| Subscription Object. The Printer creates one Subscription Object for | Subscription Object. The Printer creates one Subscription Object for | |||
| each Subscription Template Attributes Group in the operation. This | each Subscription Template Attributes Group in the operation. This | |||
| group is like the Job Template Attributes group defined in [RFC2911]. | group is like the Job Template Attributes group defined in [RFC2911]. | |||
| The following is an example of the information included in a | The following is an example of the information included in a | |||
| Subscription Template Attributes Group (see section 5 for details on | Subscription Template Attributes Group (see section 5 for details on | |||
| the Subscription Object attributes): | the Subscription Object attributes): | |||
| 1.The names of Subscribed Events that are of interest to the | 1. The names of Subscribed Events that are of interest to the | |||
| Notification Recipient. | Notification Recipient. | |||
| 2.The address (URL) of one Notification Recipient for a Push | 2. The address (URL) of one Notification Recipient for a Push | |||
| Delivery Method or the method for a Pull Delivery Method. | Delivery Method or the method for a Pull Delivery Method. | |||
| 3.The Delivery Method (i.e., the protocol) which the Printer uses | 3. The Delivery Method (i.e., the protocol) which the Printer uses | |||
| to deliver the Event Notification. | to deliver the Event Notification. | |||
| 4.Some opaque data that the Printer delivers to the Notification | 4. Some opaque data that the Printer delivers to the Notification | |||
| Recipient in the Event Notification. For example, the | Recipient in the Event Notification. For example, the | |||
| Notification Recipient might use this opaque data as a | Notification Recipient might use this opaque data as a | |||
| forwarding address for the Event Notification. | forwarding address for the Event Notification. | |||
| 5.The charset to use in text fields within an Event Notification | 5. The charset to use in text fields within an Event Notification | |||
| 6.The natural language to use in the text fields of the Event | 6. The natural language to use in the text fields of the Event | |||
| Notification | Notification | |||
| 7.The requested lease time in seconds for the Subscription Object | 7. The requested lease time in seconds for the Subscription Object | |||
| An operation that creates a Subscription Object is called a | An operation that creates a Subscription Object is called a | |||
| Subscription Creation Operation. These operations include the | Subscription Creation Operation. These operations include the | |||
| following operations (see section 11.1 for further details): | following operations (see section 11.1 for further details): | |||
| - Job Creation operation: When a client performs such an | - Job Creation operation: When a client performs such an | |||
| operation (Print-Job, Print-URI, and Create-Job), a client can | operation (Print-Job, Print-URI, and Create-Job), a client can | |||
| include zero or more Subscription Template Attributes Groups in | include zero or more Subscription Template Attributes Groups in | |||
| the request. The Printer creates one Subscription Object for | the request. The Printer creates one Subscription Object for | |||
| each Subscription Template Attributes Group in the request, and | each Subscription Template Attributes Group in the request, and | |||
| the Printer associates each such Subscription Object with the | the Printer associates each such Subscription Object with the | |||
| skipping to change at page 10, line 7 ¶ | skipping to change at page 10, line 10 ¶ | |||
| - Cancel-Subscription operation: This operation (1) cancels the | - Cancel-Subscription operation: This operation (1) cancels the | |||
| lease on the specified Per-Printer Subscription Object and | lease on the specified Per-Printer Subscription Object and | |||
| thereby deletes the Per-Printer Subscription Object or (2) | thereby deletes the Per-Printer Subscription Object or (2) | |||
| deletes the Per-Job Subscription Object. | deletes the Per-Job Subscription Object. | |||
| When an Event occurs, the Printer finds all Subscription Objects | When an Event occurs, the Printer finds all Subscription Objects | |||
| listening for the Event (see section 9 for details on finding such | listening for the Event (see section 9 for details on finding such | |||
| Subscription Objects). For each such Subscription Object, the | Subscription Objects). For each such Subscription Object, the | |||
| Printer: | Printer: | |||
| a)generates an Event Notification with information specified in | a) generates an Event Notification with information specified in | |||
| section 9, AND | section 9, AND | |||
| b)either: | b) either: | |||
| i) If the Delivery Method is a Push Delivery Method as | i) If the Delivery Method is a Push Delivery Method as | |||
| indicated by the presence of the Subscription Object's | indicated by the presence of the Subscription Object's | |||
| "notify-recipient-uri" attribute, delivers the Event | "notify-recipient-uri" attribute, delivers the Event | |||
| Notification using the Delivery Method and target address | Notification using the Delivery Method and target address | |||
| identified in the Subscription Object's "notify-recipient- | identified in the Subscription Object's "notify-recipient- | |||
| uri" attribute, OR | uri" attribute, OR | |||
| ii) If the Delivery Method is a Pull Delivery Method as | ii) If the Delivery Method is a Pull Delivery Method as | |||
| indicated by the presence of the Subscription Object's | indicated by the presence of the Subscription Object's | |||
| "notify-pull-method" attribute, saves Event Notification | "notify-pull-method" attribute, saves Event Notification | |||
| for a time period called the Event Life defined by the | for a time period called the Event Life defined by the | |||
| skipping to change at page 10, line 47 ¶ | skipping to change at page 10, line 50 ¶ | |||
| embedded printer: | embedded printer: | |||
| output device or server | output device or server | |||
| PDA, desktop, or server +---------------+ | PDA, desktop, or server +---------------+ | |||
| +--------+ | ########### | | +--------+ | ########### | | |||
| | client |-----Subscription ---------># Printer # | | | client |-----Subscription ---------># Printer # | | |||
| +--------+ Creation Operation | # Object # | | +--------+ Creation Operation | # Object # | | |||
| +------------+ | #####|##### | | +------------+ | #####|##### | | |||
| |Notification| +-------|-------+ | |Notification| +-------|-------+ | |||
| |Recipient |<----IPP Event Notifications----+ | |Recipient |<----IPP Event Notifications----+ | |||
| +------------+ (Job and/or Printer Events) | +------------+ (Job and/or Printer Events) | |||
| Figure 1 - Model for Notification | Figure 1 - Model for Notification | |||
| 2.2 Additional Models for Notification (Informative) | 2.2 Additional Models for Notification (Informative) | |||
| Additional models have been proposed (see Appendices 16, 17, and 18). | Additional models have been proposed (see Appendices 16, 17, and 18). | |||
| 3 Terminology | 3 Terminology | |||
| This section defines terminology used throughout this document. | This section defines terminology used throughout this document. | |||
| 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 | |||
| 1.A Printer object is associated with zero or more Job objects. | 1. A Printer object is associated with zero or more Job objects. | |||
| 2.Each Job object is associated with exactly one Printer object. | 2. Each Job object is associated with exactly one Printer object. | |||
| 3.A Job object is associated with zero or more Per-Job Subscription | 3. A Job object is associated with zero or more Per-Job Subscription | |||
| Objects. | Objects. | |||
| 4.Each Per-Job Subscription Object is associated with exactly one | 4. Each Per-Job Subscription Object is associated with exactly one | |||
| Job object. | Job object. | |||
| 5 Subscription Object | 5 Subscription Object | |||
| A Subscribing Client creates a Subscription Object with a | A Subscribing Client creates a Subscription Object with a | |||
| Subscription Creation Operation in order to indicate its interest in | Subscription Creation Operation in order to indicate its interest in | |||
| certain Events. See section 11 for a description of these | certain Events. See section 11 for a description of these | |||
| operations. When an Event occurs, the Subscription Object specifies | operations. When an Event occurs, the Subscription Object specifies | |||
| to the Printer where to deliver Event Notifications for Push Delivery | to the Printer where to deliver Event Notifications for Push Delivery | |||
| Methods only, how to deliver them, and what to include in them. See | Methods only, how to deliver them, and what to include in them. See | |||
| section 9 for details on the contents of an Event Notification. | section 9 for details on the contents of an Event Notification. | |||
| Using the IPP Job Template attributes as a model (see [RFC2911] | Using the IPP Job Template attributes as a model (see [RFC2911] | |||
| section 4.2), the attributes of a Subscription Object are divided | section 4.2), the attributes of a Subscription Object are divided | |||
| into two categories: Subscription Template Attributes and | into two categories: Subscription Template Attributes and | |||
| Subscription Description Attributes. | Subscription Description Attributes. | |||
| Subscription Template attributes are, in turn, like the Job Template | Subscription Template attributes are, in turn, like the Job Template | |||
| attributes, divided into | attributes, divided into | |||
| 1.Subscription Object attributes that a client can supply in a | 1. Subscription Object attributes that a client can supply in a | |||
| Subscription Creation Request and | Subscription Creation Request and | |||
| 2.their associated Printer Object attributes that specify | 2. their associated Printer Object attributes that specify | |||
| supported and default values for the Subscription Object | supported and default values for the Subscription Object | |||
| attributes | attributes | |||
| The remainder of this section specifies general rules for | The remainder of this section specifies general rules for | |||
| Subscription Template Attributes and describes each attribute in a | Subscription Template Attributes and describes each attribute in a | |||
| Subscription Object. | Subscription Object. | |||
| 5.1 Rules for Support of Subscription Template Attributes | 5.1 Rules for Support of Subscription Template Attributes | |||
| Subscription Template Attributes are fundamental to the Notification | Subscription Template Attributes are fundamental to the Notification | |||
| model described in this specification. The client supplies these | model described in this specification. The client supplies these | |||
| attributes in Subscription Creation Operations and the Printer uses | attributes in Subscription Creation Operations and the Printer uses | |||
| these attributes to populate a newly created Subscription Object. | these attributes to populate a newly created Subscription Object. | |||
| Subscription Objects attributes that are Subscription Template | Subscription Objects attributes that are Subscription Template | |||
| Attributes conform to the following rules: | Attributes conform to the following rules: | |||
| 1.Each attribute's name starts with the prefix string "notify-" | 1. Each attribute's name starts with the prefix string "notify-" | |||
| and this document calls such attributes "notify-xxx". | and this document calls such attributes "notify-xxx". | |||
| 2.For each "notify-xxx" Subscription Object attribute defined in | 2. For each "notify-xxx" Subscription Object attribute defined in | |||
| column 1 of Table 1 in section 5.3, Table 1 specifies | column 1 of Table 1 in section 5.3, Table 1 specifies | |||
| corresponding Printer attributes: "notify-xxx-default", "notify- | corresponding Printer attributes: "notify-xxx-default", "notify- | |||
| xxx-supported", "yyy-supported" and "notify-max-xxx-supported" | xxx-supported", "yyy-supported" and "notify-max-xxx-supported" | |||
| defined in column 2 of Table 1. Note "xxx" stands for the same | defined in column 2 of Table 1. Note "xxx" stands for the same | |||
| string in each case and "yyy" stands for some other string. | string in each case and "yyy" stands for some other string. | |||
| 3.If a Printer supports "notify-xxx" in column 1 of Table 1, then | 3. If a Printer supports "notify-xxx" in column 1 of Table 1, then | |||
| the Printer MUST support all associated attributes specified in | the Printer MUST support all associated attributes specified in | |||
| column 2 of Table 1. For example, Table 1 shows that if the | column 2 of Table 1. For example, Table 1 shows that if the | |||
| Printer supports "notify-events", it MUST support "notify- | Printer supports "notify-events", it MUST support "notify- | |||
| events-default", "notify-events-supported" and "notify-max- | events-default", "notify-events-supported" and "notify-max- | |||
| events-supported". | events-supported". | |||
| 4.If a Printer does not support "notify-xxx" in column 1 of Table | 4. If a Printer does not support "notify-xxx" in column 1 of Table | |||
| 1, then the Printer MUST NOT support any associated "notify-yyy" | 1, then the Printer MUST NOT support any associated "notify-yyy" | |||
| attributes specified in column 2 of Table 1. For example, Table | attributes specified in column 2 of Table 1. For example, Table | |||
| 1 shows that if the Printer doesn't support "notify-events", it | 1 shows that if the Printer doesn't support "notify-events", it | |||
| MUST NOT support "notify-events-default", "notify-events- | MUST NOT support "notify-events-default", "notify-events- | |||
| supported" and "notify-max-events-supported". Note this rule | supported" and "notify-max-events-supported". Note this rule | |||
| does not apply to attributes whose names do not start with the | does not apply to attributes whose names do not start with the | |||
| string "notify-" and are thus defined in another object and used | string "notify-" and are thus defined in another object and used | |||
| by other attributes. | by other attributes. | |||
| 5.Most "notify-xxx" attributes have a corresponding "yyy- | 5. Most "notify-xxx" attributes have a corresponding "yyy- | |||
| supported" attribute that specifies the supported values for | supported" attribute that specifies the supported values for | |||
| "notify-xxx". Column 2 of Table 1 specifies the name of each | "notify-xxx". Column 2 of Table 1 specifies the name of each | |||
| "yyy-supported" attribute. The naming rules of IPP/1.1 (see | "yyy-supported" attribute. The naming rules of IPP/1.1 (see | |||
| [RFC2911]) are used when "yyy-supported" is "notify-xxx- | [RFC2911]) are used when "yyy-supported" is "notify-xxx- | |||
| supported". | supported". | |||
| 6.Some "notify-xxx" attributes have a corresponding "notify-xxx- | 6. Some "notify-xxx" attributes have a corresponding "notify-xxx- | |||
| default" attribute that specifies the value for "notify-xxx" if | default" attribute that specifies the value for "notify-xxx" if | |||
| the client does not supply it. Column 2 of Table 1 specifies | the client does not supply it. Column 2 of Table 1 specifies | |||
| the name of each "notify-xxx-default" attribute. The naming | the name of each "notify-xxx-default" attribute. The naming | |||
| rules of IPP/1.1 (see [RFC2911]) are used. | rules of IPP/1.1 (see [RFC2911]) are used. | |||
| If a client wishes to present an end user with a list of supported | If a client wishes to present an end user with a list of supported | |||
| values from which to choose, the client SHOULD query the Printer for | values from which to choose, the client SHOULD query the Printer for | |||
| its supported value attributes. The client SHOULD also query the | its supported value attributes. The client SHOULD also query the | |||
| default value attributes. If the client then limits selectable | default value attributes. If the client then limits selectable | |||
| values to only those values that are supported, the client can | values to only those values that are supported, the client can | |||
| skipping to change at page 17, line 13 ¶ | skipping to change at page 17, line 13 ¶ | |||
| Creation Request. These rules are similar to the rules for | Creation Request. These rules are similar to the rules for | |||
| processing Operation attributes in [RFC2911]. That is, the Printer | processing Operation attributes in [RFC2911]. That is, the Printer | |||
| may or may not support an attribute and a client may or may not | may or may not support an attribute and a client may or may not | |||
| supply the attribute. Some combinations of these cases are OK. | supply the attribute. Some combinations of these cases are OK. | |||
| Others return warnings or errors, and perhaps a list of unsupported | Others return warnings or errors, and perhaps a list of unsupported | |||
| attributes. | attributes. | |||
| A Printer MUST implement the following behavior for processing | A Printer MUST implement the following behavior for processing | |||
| Subscription Template Attributes in a Subscription Creation Request: | Subscription Template Attributes in a Subscription Creation Request: | |||
| 1.If a client supplies a "notify-xxx" attribute from column 1 of | 1. If a client supplies a "notify-xxx" attribute from column 1 of | |||
| Table 1 and the Printer supports it and its value, the Printer | Table 1 and the Printer supports it and its value, the Printer | |||
| MUST populate the attribute on the created Subscription Object. | MUST populate the attribute on the created Subscription Object. | |||
| 2.If a client supplies a "notify-xxx" attribute from column 1 of | 2. If a client supplies a "notify-xxx" attribute from column 1 of | |||
| Table 1 and the Printer doesn't support it or its value, the | Table 1 and the Printer doesn't support it or its value, the | |||
| Printer MUST NOT populate the attribute on the created | Printer MUST NOT populate the attribute on the created | |||
| Subscription Object with it. The Printer MUST do one of the | Subscription Object with it. The Printer MUST do one of the | |||
| following: | following: | |||
| a) If the value of the "notify-xxx" attribute is unsupported, the | a) If the value of the "notify-xxx" attribute is unsupported, the | |||
| Printer MUST return the attribute with its value in the | Printer MUST return the attribute with its value in the | |||
| Subscription Attributes Group of the response. | Subscription Attributes Group of the response. | |||
| b) If "notify-xxx" is an unsupported attribute, the Printer MUST | b) If "notify-xxx" is an unsupported attribute, the Printer MUST | |||
| return the attribute in the Subscription Attributes Group of the | return the attribute in the Subscription Attributes Group of the | |||
| response with the 'unsupported' out-of-band value. | response with the 'unsupported' out-of-band value. | |||
| Note: The rules of this step are the same as for Unsupported | Note: The rules of this step are the same as for Unsupported | |||
| Attributes [RFC2911] section 3.1.7. except that the unsupported | Attributes [RFC2911] section 3.1.7. except that the unsupported | |||
| attributes are returned in the Subscription Attributes Group | attributes are returned in the Subscription Attributes Group | |||
| rather than the Unsupported Attributes Group because Subscription | rather than the Unsupported Attributes Group because Subscription | |||
| Creation Operations can create more than one Subscription Object). | Creation Operations can create more than one Subscription Object). | |||
| 3. If a client is REQUIRED to supply a "notify-xxx" attribute from | ||||
| 3.If a client is REQUIRED to supply a "notify-xxx" attribute from | ||||
| 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 | |||
| attributes where the Printer does not populate the Job object | attributes where the Printer does not populate the Job object | |||
| with defaults - see [RFC2911]) OR | with defaults - see [RFC2911]) OR | |||
| b) does not specify a "notify-xxx-default" attribute, the Printer | b) does not specify a "notify-xxx-default" attribute, the Printer | |||
| MUST populate the "notify-xxx" attribute on the Subscription | MUST populate the "notify-xxx" attribute on the Subscription | |||
| Object according to the definition of the "notify-xxx" attribute | Object according to the definition of the "notify-xxx" attribute | |||
| in a section 5.3. For some attributes, the "notify-xxx" is | in a section 5.3. For some attributes, the "notify-xxx" is | |||
| populated with the value of some other attribute, and for | populated with the value of some other attribute, and for | |||
| others, the "notify-xxx" is NOT populated on the Subscription | others, the "notify-xxx" is NOT populated on the Subscription | |||
| object at all. | object at all. | |||
| 6.A Printer MUST create a Subscription Object for each Subscription | 6. A Printer MUST create a Subscription Object for each Subscription | |||
| Template Attributes group in a request unless the Printer: | Template Attributes group in a request unless the Printer: | |||
| a) encounters some attributes in a Subscription Template Attributes | a) encounters some attributes in a Subscription Template Attributes | |||
| Group that require the Printer not to create the Subscription | Group that require the Printer not to create the Subscription | |||
| Object OR | Object OR | |||
| b) would create a Per-Job Subscription Object when it doesn't have | b) would create a Per-Job Subscription Object when it doesn't have | |||
| space for another Per-Job Subscription Object OR | space for another Per-Job Subscription Object OR | |||
| c) would create a Per-Printer Subscription Object when it doesn't | c) would create a Per-Printer Subscription Object when it doesn't | |||
| have space for another Per-Printer Subscription Object. | have space for another Per-Printer Subscription Object. | |||
| 7.A response MUST contain one Subscription Attributes Group for each | 7. A response MUST contain one Subscription Attributes Group for each | |||
| Subscription Template Attributes Group in the request (and in the | Subscription Template Attributes Group in the request (and in the | |||
| same order) whether the Printer creates a Subscription Object from | same order) whether the Printer creates a Subscription Object from | |||
| the Subscription Template Attributes Group or not. However, the | the Subscription Template Attributes Group or not. However, the | |||
| attributes in each Subscription Attributes Group can be in any | attributes in each Subscription Attributes Group can be in any | |||
| order. | order. | |||
| 8.The Printer MUST populate each Subscription Attributes Group of | 8. The Printer MUST populate each Subscription Attributes Group of | |||
| the response such that each contains: | the response such that each contains: | |||
| a) the "notify-subscription-id" attribute (see section 5.4.1), if | a) the "notify-subscription-id" attribute (see section 5.4.1), if | |||
| and only if the Printer creates a Subscription Object. | and only if the Printer creates a Subscription Object. | |||
| b) the "notify-lease-duration" attribute (see section 5.3.8), if | b) the "notify-lease-duration" attribute (see section 5.3.8), if | |||
| and only if the Printer creates a Per-Printer Subscription | and only if the Printer creates a Per-Printer Subscription | |||
| Object. The value of this attribute is the value of the | Object. The value of this attribute is the value of the | |||
| Subscription Object's "notify-lease-duration" attribute. This | Subscription Object's "notify-lease-duration" attribute. This | |||
| value MAY be different from the client-supplied value (see | value MAY be different from the client-supplied value (see | |||
| 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 | |||
| Subscription Template Attributes are unsupported. These | Subscription Template Attributes are unsupported. These | |||
| unsupported attributes are also in the Subscription | unsupported attributes are also in the Subscription | |||
| Attributes Group. See section 13.5 for more details about | Attributes Group. See section 13.5 for more details about | |||
| this status code. See step #2 in this section for the | this status code. See step #2 in this section for the | |||
| cases that cause this status code. | cases that cause this status code. | |||
| 9. The Printer MUST validate all Subscription Template Attributes and | ||||
| 9.The Printer MUST validate all Subscription Template Attributes and | ||||
| MUST return all unsupported attributes and values in the | MUST return all unsupported attributes and values in the | |||
| corresponding Subscription Attributes Group of the response (see | corresponding Subscription Attributes Group of the response (see | |||
| step #2) unless it determines that it could not create additional | step #2) unless it determines that it could not create additional | |||
| Subscription Objects because of condition #6b) or condition #6c). | Subscription Objects because of condition #6b) or condition #6c). | |||
| Then, the Printer NEED NOT validate these additional Subscription | Then, the Printer NEED NOT validate these additional Subscription | |||
| Template Attributes and the client MUST NOT expect to find | Template Attributes and the client MUST NOT expect to find | |||
| unsupported attributes from step #2 in such additional | unsupported attributes from step #2 in such additional | |||
| Subscription Attribute Groups. | Subscription Attribute Groups. | |||
| 5.3 Subscription Template Attributes | 5.3 Subscription Template Attributes | |||
| 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 | |||
| completed, the Printer would not deliver an Event Notification for | completed, the Printer would not deliver an Event Notification for | |||
| its Subscription Object, even if Job 1 is retained in the Job | its Subscription Object, even if Job 1 is retained in the Job | |||
| Retention and/or the Job History phases (see [RFC2911] section | Retention and/or the Job History phases (see [RFC2911] section | |||
| 4.3.7.1). | 4.3.7.1). | |||
| 5.3.3.5.2 Rules for Matching of Job Events | 5.3.3.5.2 Rules for Matching of Job Events | |||
| Given that Job J causes Job Event E to occur: | Given that Job J causes Job Event E to occur: | |||
| 1.For each Per-Printer Subscription S in the Printer, if E equals | 1. For each Per-Printer Subscription S in the Printer, if E equals | |||
| a value of this attribute in S or E is a sub-value of a value of | a value 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 | this attribute in S, the Printer MUST generate an Event | |||
| Notification. | Notification. | |||
| 2.For each Per-Job Subscription S associated with Job J, if E | 2. For each Per-Job Subscription S associated with Job J, if E | |||
| equals a value of this attribute in S or E is a sub-value of a | equals a value 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 | value of this attribute in S, the Printer MUST generate an Event | |||
| Notification. | Notification. | |||
| 3.For each Per-Job Subscription S that is NOT associated Job J, if | 3. For each Per-Job Subscription S that is NOT associated Job J, if | |||
| E equals a value of this attribute in S or E is a sub-value of a | E equals a value of this attribute in S or E is a sub-value of a | |||
| value of this attribute in, the Printer MUST NOT generate an | value of this attribute in, the Printer MUST NOT generate an | |||
| Event Notification from S. | Event Notification from S. | |||
| Consider the example: There are three Subscription Objects listening | Consider the example: There are three Subscription Objects listening | |||
| for the Job Event 'job-completed'. Subscription Object A is a Per- | for the Job Event 'job-completed'. Subscription Object A is a Per- | |||
| Printer Subscription Object. Subscription Object B is a Per-Job | 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. In addition, Per-Printer Subscription | Subscription Object for Job 2. In addition, Per-Printer Subscription | |||
| Object D is listening for the Job Event 'job-state-changed'. When | Object D is listening for the Job Event 'job-state-changed'. When | |||
| 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 37 ¶ | skipping to change at page 31, line 24 ¶ | |||
| Subscription Object attribute that the Printer supports in an Event | Subscription Object attribute that the Printer supports in an Event | |||
| Notification. It MUST NOT contain any of the attributes in Section | Notification. It MUST NOT contain any of the attributes in Section | |||
| 9.1 that a Printer automatically puts in an Event Notification; it | 9.1 that a Printer automatically puts in an Event Notification; it | |||
| would be redundant. If a client supplies an attribute in Section | would be redundant. If a client supplies an attribute in Section | |||
| 9.1, the Printer MUST treat it as an unsupported attribute value of | 9.1, the Printer MUST treat it as an unsupported attribute value of | |||
| the "notify-attributes" attribute. | the "notify-attributes" attribute. | |||
| The following rules apply to each keyword value N of the "notify- | The following rules apply to each keyword value N of the "notify- | |||
| attributes" attribute: If the value N names: | attributes" attribute: If the value N names: | |||
| a)a Subscription attribute, the Printer MUST use the attribute N in | a) a Subscription attribute, the Printer MUST use the attribute N in | |||
| the Subscription Object that is being used to generate the Event | the Subscription Object that is being used to generate the Event | |||
| 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. | |||
| The Printer MUST NOT use this attribute to generate a Human | The Printer MUST NOT use this attribute to generate a Human | |||
| Consumable Event Notification. | Consumable Event Notification. | |||
| 5.3.4.1 notify-attributes-supported (1setOf type2 keyword) | 5.3.4.1 notify-attributes-supported (1setOf type2 keyword) | |||
| See sections 5.1 and 5.2 for the behavior of "xxx-supported" | See sections 5.1 and 5.2 for the behavior of "xxx-supported" | |||
| Subscription Template Printer attributes. | Subscription Template Printer attributes. | |||
| 5.3.5 notify-user-data (octetString(63)) | 5.3.5 notify-user-data (octetString(63)) | |||
| skipping to change at page 36, line 5 ¶ | skipping to change at page 35, line 37 ¶ | |||
| MAY contain the "notify-time-interval" attribute with a '0' value or | MAY contain the "notify-time-interval" attribute with a '0' value or | |||
| (2) NEED NOT contain this attribute at all. There is no "notify- | (2) NEED NOT contain this attribute at all. There is no "notify- | |||
| time-interval-default" Printer attribute. | time-interval-default" Printer attribute. | |||
| There is no "notify-time-interval-supported" Printer attribute. | There is no "notify-time-interval-supported" Printer attribute. | |||
| If the 'job-progress' Event occurs and a Subscription Object contains | If the 'job-progress' Event occurs and a Subscription Object contains | |||
| the 'job-progress' Event as a value of the 'notify-events' attribute, | the 'job-progress' Event as a value of the 'notify-events' attribute, | |||
| there are two cases to consider: | there are two cases to consider: | |||
| 1.This attribute is not present on the Subscription Object or has | 1. This attribute is not present on the Subscription Object or has | |||
| the value of 0. The Printer MUST generate and deliver an Event | the value of 0. The Printer MUST generate and deliver an Event | |||
| Notification (as is the case with other Events). | Notification (as is the case with other Events). | |||
| 2.This attribute is present with a nonzero value of N: | 2. This attribute is present with a nonzero value of N: | |||
| a)If the Printer has not sent an Event Notification for the 'job- | a) If the Printer has not sent an Event Notification for the 'job- | |||
| progress' Event for the associated Subscription Object within | progress' Event for the associated Subscription Object within | |||
| the past N seconds, the Printer MUST deliver an Event | the past N seconds, the Printer MUST deliver an Event | |||
| Notification for the Event that just occurred. Note when the | Notification for the Event that just occurred. Note when the | |||
| Printer completes the first page of a Job, this rule implies | Printer completes the first page of a Job, this rule implies | |||
| that the Printer delivers an Event Notification for a Per-Job | that the Printer delivers an Event Notification for a Per-Job | |||
| Subscription Object. | Subscription Object. | |||
| b)Otherwise, the Printer MUST NOT generate or deliver an Event | b) Otherwise, the Printer MUST NOT generate or deliver an Event | |||
| Notification for the associated Subscription Object. The | Notification for the associated Subscription Object. The | |||
| Printer MUST NOT increase the value of the "notify-sequence- | Printer MUST NOT increase the value of the "notify-sequence- | |||
| number" Subscription Object attribute (i.e., the sequence of | number" Subscription Object attribute (i.e., the sequence of | |||
| values of the "notify-sequence-number" attribute counts the | values of the "notify-sequence-number" attribute counts the | |||
| Event Notifications that the Printer sent and not the Events | Event Notifications that the Printer sent and not the Events | |||
| that do not cause an Event Notification to be sent). | that do not cause an Event Notification to be sent). | |||
| It is RECOMMENDED that a Subscribing Client use this attribute when | It is RECOMMENDED that a Subscribing Client use this attribute when | |||
| it subscribes to the 'job-progress' Event, and that the value be | it subscribes to the 'job-progress' Event, and that the value be | |||
| sufficiently large to limit the frequency with which the Printer | sufficiently large to limit the frequency with which the Printer | |||
| 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 41, line 15 ¶ | skipping to change at page 40, line 34 ¶ | |||
| not defined in this document. | not defined in this document. | |||
| 6 Printer Description Attributes Related to Notification | 6 Printer Description Attributes Related to Notification | |||
| This section defines the Printer Description attributes that are | This section defines the Printer Description attributes that are | |||
| related to Notification. Table 3 lists the Printer Description | related to Notification. Table 3 lists the Printer Description | |||
| attributes, indicates the Printer support required for conformance, | attributes, indicates the Printer support required for conformance, | |||
| and whether or not the attribute is READ-ONLY (see section 3.1): | and whether or not the attribute is READ-ONLY (see section 3.1): | |||
| Table 3 - Printer Description Attributes Associated with Notification | Table 3 - Printer Description Attributes Associated with Notification | |||
| Printer object attributes: REQUIRED READ-ONLY | ||||
| Printer object attributes: REQUIRED READ-ONLY | printer-state-change-time (integer(1:MAX)) No Yes | |||
| printer-state-change-date-time (dateTime) No Yes | ||||
| printer-state-change-time (integer(1:MAX)) No Yes | ||||
| printer-state-change-date-time (dateTime) No Yes | ||||
| 6.1 printer-state-change-time (integer(1:MAX)) | 6.1 printer-state-change-time (integer(1:MAX)) | |||
| This OPTIONAL attribute records the most recent time at which the | This OPTIONAL attribute records the most recent time at which the | |||
| 'printer-state-changed' Printer Event occurred whether or not any | 'printer-state-changed' Printer Event occurred whether or not any | |||
| Subscription objects were listening for this event. This attribute | Subscription objects were listening for this event. This attribute | |||
| helps a client or operator to determine how long the Printer has been | helps a client or operator to determine how long the Printer has been | |||
| in its current state. | in its current state. | |||
| A Printer MAY support this attribute and if so, the attribute MUST be | A Printer MAY support this attribute and if so, the attribute MUST be | |||
| skipping to change at page 42, line 28 ¶ | skipping to change at page 42, line 6 ¶ | |||
| This section contains those attributes for which additional values | This section contains those attributes for which additional values | |||
| are added. | are added. | |||
| 7.1 operations-supported (1setOf type2 enum) | 7.1 operations-supported (1setOf type2 enum) | |||
| The following "operation-id" values are added in order to support the | The following "operation-id" values are added in order to support the | |||
| new operations defined in this document: | new operations defined in this document: | |||
| Table 4 - Operation-id assignments | Table 4 - Operation-id assignments | |||
| Value Operation Name | ||||
| Value Operation Name | 0x0016 Create-Printer-Subscriptions | |||
| 0x0017 Create-Job-Subscriptions | ||||
| 0x0016 Create-Printer-Subscriptions | 0x0018 Get-Subscription-Attributes | |||
| 0x0019 Get-Subscriptions | ||||
| 0x0017 Create-Job-Subscriptions | 0x001A Renew-Subscription | |||
| 0x001B Cancel-Subscription | ||||
| 0x0018 Get-Subscription-Attributes | ||||
| 0x0019 Get-Subscriptions | ||||
| 0x001A Renew-Subscription | ||||
| 0x001B Cancel-Subscription | ||||
| 8 Attributes Only in Event Notifications | 8 Attributes Only in Event Notifications | |||
| This section contains those attributes that exist only in Event | This section contains those attributes that exist only in Event | |||
| Notifications and do not exist in any objects. | Notifications and do not exist in any objects. | |||
| 8.1 notify-subscribed-event (type2 keyword) | 8.1 notify-subscribed-event (type2 keyword) | |||
| This attribute indicates the Subscribed Event that caused the Printer | This attribute indicates the Subscribed Event that caused the Printer | |||
| to deliver this Event Notification. This attribute exists only in | to deliver this Event Notification. This attribute exists only in | |||
| 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 45, line 40 ¶ | skipping to change at page 45, line 18 ¶ | |||
| response; for others it MUST NOT deliver a response. | response; for others it MUST NOT deliver a response. | |||
| Pull Delivery Method: The Printer saves Event Notifications for | Pull Delivery Method: The Printer saves Event Notifications for | |||
| some Event Life and expects the Notification Recipient to | some Event Life and expects the Notification Recipient to | |||
| request Event Notifications. The Printer returns the Event | request Event Notifications. The Printer returns the Event | |||
| Notifications in a response to such a request. | Notifications in a response to such a request. | |||
| If an error that meets the following conditions occurs, the Printer | If an error that meets the following conditions occurs, the Printer | |||
| MUST cancel the Subscription Object. | MUST cancel the Subscription Object. | |||
| a)the error occurs during the delivering of an Event Notification | a) the error occurs during the delivering of an Event Notification | |||
| generated from Subscription Object S AND | generated from Subscription Object S AND | |||
| b)the error would continue to occur every time the Printer delivers | b) the error would continue to occur every time the Printer delivers | |||
| an Event Notification generated from Subscription Object S in the | an Event Notification generated from Subscription Object S in the | |||
| future. | future. | |||
| For example, if the address of the "notify-recipient-uri" of | For example, if the address of the "notify-recipient-uri" of | |||
| Subscription Object A references a non-existent target and the | Subscription Object A references a non-existent target and the | |||
| Printer determines this fact, it MUST delete Subscription Object A. | Printer determines this fact, it MUST delete Subscription Object A. | |||
| The next two sections describe the values that a Printer delivers in | The next two sections describe the values that a Printer delivers in | |||
| the content of Machine Consumable and Human Consumable Event | the content of Machine Consumable and Human Consumable Event | |||
| Notifications, respectively. | Notifications, respectively. | |||
| The tables in the sub-sections of this section contain the following | The tables in the sub-sections of this section contain the following | |||
| columns: | columns: | |||
| a)Source Value: the name of the attribute that supplies the value | a) Source Value: the name of the attribute that supplies the value | |||
| for the Event Notification. Asterisks in this field refer to a | for the Event Notification. Asterisks in this field refer to a | |||
| note below the table. | note below the table. | |||
| b)Delivers: if the Printer supports the value (column 1) on the | b) Delivers: if the Printer supports the value (column 1) on the | |||
| Source Object (column 3) the Delivery Method MUST specify: | Source Object (column 3) the Delivery Method MUST specify: | |||
| MUST: that the Printer MUST deliver the value. | MUST: that the Printer MUST deliver the value. | |||
| SHOULD: either that the Printer MUST deliver the value or that | SHOULD: either that the Printer MUST deliver the value or that | |||
| the value is incompatible with the Delivery Method. | the value is incompatible with the Delivery Method. | |||
| MAY: that the Printer MUST, SHOULD, MAY, MUST NOT, SHOULD NOT, | MAY: that the Printer MUST, SHOULD, MAY, MUST NOT, SHOULD NOT, | |||
| or NEED NOT deliver the value. The Delivery Method specifies | or NEED NOT deliver the value. The Delivery Method specifies | |||
| the level of conformance for the Printer. | the level of conformance for the Printer. | |||
| c)Source Object: the object from which the source value comes. If | c) Source Object: the object from which the source value comes. If | |||
| the object is "Event Notification", the Printer fabricates the | the object is "Event Notification", the Printer fabricates the | |||
| value when it delivers the Event Notification. See section 8. | value when it delivers the Event Notification. See section 8. | |||
| 9.1 Content of Machine Consumable Event Notifications | 9.1 Content of Machine Consumable Event Notifications | |||
| This section defines the attributes that a Delivery Method MUST | This section defines the attributes that a Delivery Method MUST | |||
| mention in a Delivery Method Document when specifying the Machine | mention in a Delivery Method Document when specifying the Machine | |||
| Consumable Event Notification's contents. | Consumable Event Notification's contents. | |||
| This document does not define the order of attributes in Event | This document does not define the order of attributes in Event | |||
| skipping to change at page 47, line 8 ¶ | skipping to change at page 46, line 32 ¶ | |||
| Notification Recipients MUST be able to accept Event Notifications | Notification Recipients MUST be able to accept Event Notifications | |||
| containing attributes they do not recognize. What a Notification | containing attributes they do not recognize. What a Notification | |||
| Recipient does with an unrecognized attribute is implementation- | Recipient does with an unrecognized attribute is implementation- | |||
| dependent. Notification Recipients MAY attempt to display | dependent. Notification Recipients MAY attempt to display | |||
| unrecognized attributes anyway or MAY ignore them. | unrecognized attributes anyway or MAY ignore them. | |||
| The next three sections define the attributes in Event Notification | The next three sections define the attributes in Event Notification | |||
| Contents that are: | Contents that are: | |||
| 1.for all Events | 1. for all Events | |||
| 2.for Job Events only | 2. for Job Events only | |||
| 3.for Printer Events only | 3. for Printer Events only | |||
| 9.1.1 Event Notification Content Common to All Events | 9.1.1 Event Notification Content Common to All Events | |||
| This section lists the attributes that a Delivery Method Document | This section lists the attributes that a Delivery Method Document | |||
| MUST specify for all Events. | MUST specify for all Events. | |||
| Table 5 lists potential values in each Event Notification. | Table 5 lists potential values in each Event Notification. | |||
| Table 5 - Attributes in Event Notification Content | Table 5 - Attributes in Event Notification Content | |||
| Source Value Delivers Source Object | Source Value Delivers Source Object | |||
| notify-subscription-id (integer(1:MAX)) MUST Subscription | notify-subscription-id (integer(1:MAX)) MUST Subscription | |||
| notify-printer-uri (uri) MUST Subscription | notify-printer-uri (uri) MUST Subscription | |||
| notify-subscribed-event (type2 keyword) MUST Event | notify-subscribed-event (type2 keyword) MUST Event | |||
| Notification | Notification | |||
| printer-up-time (integer(MIN:MAX)) MUST Printer | printer-up-time (integer(MIN:MAX)) MUST Printer | |||
| printer-current-time (dateTime) * MUST Printer | printer-current-time (dateTime) * MUST Printer | |||
| notify-sequence-number (integer (0:MAX)) SHOULD Subscription | notify-sequence-number (integer (0:MAX)) SHOULD Subscription | |||
| notify-charset (charset) SHOULD Subscription | notify-charset (charset) SHOULD Subscription | |||
| notify-natural-language (naturalLanguage) SHOULD Subscription | notify-natural-language (naturalLanguage) SHOULD Subscription | |||
| notify-user-data (octetString(63)) ** SHOULD Subscription | notify-user-data (octetString(63)) ** SHOULD Subscription | |||
| notify-text (text) SHOULD Event | notify-text (text) SHOULD Event | |||
| Notification | Notification | |||
| attributes from the "notify-attributes" MAY Printer | attributes from the "notify-attributes" MAY Printer | |||
| attribute *** | attribute *** | |||
| attributes from the "notify-attributes" MAY Job | attributes from the "notify-attributes" MAY Job | |||
| attribute *** | attribute *** | |||
| attributes from the "notify-attributes" MAY Subscription | attributes from the "notify-attributes" MAY Subscription | |||
| attribute *** | attribute *** | |||
| *A Printer MUST deliver this value only if and only if it supports | *A Printer MUST deliver this value only if and only if it supports | |||
| the Printer's "printer-current-time" attribute. | the Printer's "printer-current-time" attribute. | |||
| ** If the Subscription Object does not contain a "notify-user-data" | ** If the Subscription Object does not contain a "notify-user-data" | |||
| attribute and the Delivery Method Document REQUIRES the Printer to | attribute and the Delivery Method Document REQUIRES the Printer to | |||
| deliver the "notify-user-data" source value in the Event | deliver the "notify-user-data" source value in the Event | |||
| Notification, the Printer MUST deliver an octet-string of length 0. | Notification, the Printer MUST deliver an octet-string of length 0. | |||
| skipping to change at page 49, line 17 ¶ | skipping to change at page 48, line 6 ¶ | |||
| "notify-attributes" is conditioned on support of the attribute by the | "notify-attributes" is conditioned on support of the attribute by the | |||
| Printer or it MAY say that Printer MUST support the "notify- | Printer or it MAY say that Printer MUST support the "notify- | |||
| attributes" attribute if the Printer supports the Delivery Method. | attributes" attribute if the Printer supports the Delivery Method. | |||
| 9.1.2 Additional Event Notification Content for Job Events | 9.1.2 Additional Event Notification Content for Job Events | |||
| This section lists the additional attributes that a Delivery Method | This section lists the additional attributes that a Delivery Method | |||
| Document MUST specify for Job Events. See Table 6. | Document MUST specify for Job Events. See Table 6. | |||
| Table 6 - Additional Event Notification Content for Job Events | Table 6 - Additional Event Notification Content for Job Events | |||
| Source Value Delivers Source | ||||
| Source Value Delivers Source | ||||
| Object | Object | |||
| job-id (integer(1:MAX)) MUST Job | job-id (integer(1:MAX)) MUST Job | |||
| job-state (type1 enum) MUST Job | ||||
| job-state (type1 enum) MUST Job | job-state-reasons (1setOf type2 keyword) MUST Job | |||
| job-impressions-completed (integer(0:MAX)) * MUST Job | ||||
| job-state-reasons (1setOf type2 keyword) MUST Job | ||||
| job-impressions-completed (integer(0:MAX)) * MUST Job | ||||
| * The Printer MUST deliver the "job-impressions-completed" attribute | * The Printer MUST deliver the "job-impressions-completed" attribute | |||
| in an Event Notification only for the combinations of Events and | in an Event Notification only for the combinations of Events and | |||
| Subscribed Events shown in Table 7. | Subscribed Events shown in Table 7. | |||
| Table 7 - Combinations of Events and Subscribed Events for "job- | Table 7 - Combinations of Events and Subscribed Events for "job- | |||
| impressions-completed" | impressions-completed" | |||
| Job Event Subscribed Job Event | ||||
| Job Event Subscribed Job Event | 'job-progress' 'job-progress' | |||
| 'job-completed' 'job-completed' | ||||
| 'job-progress' 'job-progress' | 'job-completed' 'job-state-changed' | |||
| 'job-completed' 'job-completed' | ||||
| 'job-completed' 'job-state-changed' | ||||
| 9.1.3 Additional Event Notification Content for Printer Events | 9.1.3 Additional Event Notification Content for Printer Events | |||
| This section lists the additional attributes that a Delivery Method | This section lists the additional attributes that a Delivery Method | |||
| Document MUST specify for Printer Events. See Table 8. | Document MUST specify for Printer Events. See Table 8. | |||
| Table 8 - Additional Event Notification Content for Printer Events | Table 8 - Additional Event Notification Content for Printer Events | |||
| Source Value Delivers Source Object | ||||
| Source Value Delivers Source Object | printer-state (type1 enum) MUST Printer | |||
| printer-state-reasons (1setOf type2 MUST Printer | ||||
| printer-state (type1 enum) MUST Printer | ||||
| printer-state-reasons (1setOf type2 MUST Printer | ||||
| keyword) | keyword) | |||
| printer-is-accepting-jobs (boolean) MUST Printer | ||||
| printer-is-accepting-jobs (boolean) MUST Printer | ||||
| 9.2 Content of Human Consumable Event Notification | 9.2 Content of Human Consumable Event Notification | |||
| This section defines the information that a Delivery Method MUST | This section defines the information that a Delivery Method MUST | |||
| mention in a Delivery Method Document when specifying the Human | mention in a Delivery Method Document when specifying the Human | |||
| Consumable Event Notifications contents or the value of the "notify- | Consumable Event Notifications contents or the value of the "notify- | |||
| text" attribute. | text" attribute. | |||
| Such a Delivery Method MUST specify the following information and a | Such a Delivery Method MUST specify the following information and a | |||
| Printer SHOULD deliver it: | Printer SHOULD deliver it: | |||
| a)the Printer name (see Table 9) | a) the Printer name (see Table 9) | |||
| b)the time of the Event (see Table 11) | b) the time of the Event (see Table 11) | |||
| c)for Printer Events only: | c) for Printer Events only: | |||
| i) the Event (see Table 10) and/or Printer state information | i) the Event (see Table 10) and/or Printer state information | |||
| (see Table 14) | (see Table 14) | |||
| d)for Job Events only: | d) for Job Events only: | |||
| i) the job identity (see Table 12) | i) the job identity (see Table 12) | |||
| ii) the Event (see Table 10) and/or Job state information (see | ii) the Event (see Table 10) and/or Job state information (see | |||
| Table 13) | Table 13) | |||
| The subsections of this section specify the attributes that a Printer | The subsections of this section specify the attributes that a Printer | |||
| MUST use to obtain this information. | MUST use to obtain this information. | |||
| A Delivery Method Document MUST specify additional information (if | A Delivery Method Document MUST specify additional information (if | |||
| any) that a Printer implementation delivers in a Human Consumable | any) that a Printer implementation delivers in a Human Consumable | |||
| Event Notification or in the "notify-text" attribute. | Event Notification or in the "notify-text" attribute. | |||
| skipping to change at page 52, line 6 ¶ | skipping to change at page 50, line 18 ¶ | |||
| Table 9 lists the source of the information for the Printer Name. | Table 9 lists the source of the information for the Printer Name. | |||
| The "printer-name" is more user-friendly unless the Notification | The "printer-name" is more user-friendly unless the Notification | |||
| Recipient is in a place where the Printer name is not meaningful. | Recipient is in a place where the Printer name is not meaningful. | |||
| For example, an implementation could have the intelligence to deliver | For example, an implementation could have the intelligence to deliver | |||
| the value of the "printer-name" attribute to a Notification Recipient | the value of the "printer-name" attribute to a Notification Recipient | |||
| that can access the Printer via value of the "printer-name" attribute | that can access the Printer via value of the "printer-name" attribute | |||
| and otherwise deliver the value of the "notify-printer-uri" | and otherwise deliver the value of the "notify-printer-uri" | |||
| attribute. | attribute. | |||
| Table 9 - Printer Name in Event Notification Content | Table 9 - Printer Name in Event Notification Content | |||
| Source Value Delivers Source Object | ||||
| Source Value Delivers Source Object | printer-name (name(127)) MAY Printer | |||
| notify-printer-uri (uri) MAY Subscription | ||||
| printer-name (name(127)) MAY Printer | ||||
| notify-printer-uri (uri) MAY Subscription | ||||
| Table 10 lists the source of the information for the Event name. A | Table 10 lists the source of the information for the Event name. A | |||
| Printer MAY combine this information with state information described | Printer MAY combine this information with state information described | |||
| for Jobs in Table 13 or for Printers in Table 14. | for Jobs in Table 13 or for Printers in Table 14. | |||
| Table 10 - Event Name in Event Notification Content | Table 10 - Event Name in Event Notification Content | |||
| Source Value Delivers Source Object | ||||
| Source Value Delivers Source Object | notify-subscribed-event (type2 keyword) MAY Subscription | |||
| notify-subscribed-event (type2 keyword) MAY Subscription | ||||
| Table 11 lists the source of the information for the time that the | Table 11 lists the source of the information for the time that the | |||
| Event occurred. A Printer can deliver this value only if it supports | Event occurred. A Printer can deliver this value only if it supports | |||
| the Printer's "printer-current-time" attribute. If a Printer does | the Printer's "printer-current-time" attribute. If a Printer does | |||
| not support the "printer-current-time" attribute, it MUST NOT deliver | not support the "printer-current-time" attribute, it MUST NOT deliver | |||
| the "printer-up-time" value instead, since it is not an allowed | the "printer-up-time" value instead, since it is not an allowed | |||
| option for human consumable information. | option for human consumable information. | |||
| Table 11 - Event Time in Event Notification Content | Table 11 - Event Time in Event Notification Content | |||
| Source Value Delivers Source Object | ||||
| Source Value Delivers Source Object | printer-current-time (dateTime) MAY Printer | |||
| printer-current-time (dateTime) MAY Printer | ||||
| 9.2.2 Additional Event Notification Content for Job Events | 9.2.2 Additional Event Notification Content for Job Events | |||
| This section lists the source of the additional information that a | This section lists the source of the additional information that a | |||
| Delivery Method MUST specify for Job Events. | Delivery Method MUST specify for Job Events. | |||
| Table 12 lists the source of the information for the job name. The | Table 12 lists the source of the information for the job name. The | |||
| "job-name" is likely more meaningful to a user than "job-id". | "job-name" is likely more meaningful to a user than "job-id". | |||
| Table 12 - Job Name in Event Notification Content | Table 12 - Job Name in Event Notification Content | |||
| Source Value Delivers Source Object | ||||
| Source Value Delivers Source Object | job-name (name(MAX)) MAY Job | |||
| job-id (integer(1:MAX)) MAY Job | ||||
| job-name (name(MAX)) MAY Job | ||||
| job-id (integer(1:MAX)) MAY Job | ||||
| Table 13 lists the source of the information for the job state. If a | Table 13 lists the source of the information for the job state. If a | |||
| Printer supports the "job-state-message" and "job-detailed-state- | Printer supports the "job-state-message" and "job-detailed-state- | |||
| message" attributes, it SHOULD use those attributes for the job state | message" attributes, it SHOULD use those attributes for the job state | |||
| information, otherwise, it should fabricate such information from the | information, otherwise, it should fabricate such information from the | |||
| "job-state" and "job-state-reasons". For some Events, a Printer MAY | "job-state" and "job-state-reasons". For some Events, a Printer MAY | |||
| combine this information with Event information. | combine this information with Event information. | |||
| Table 13 - Job State in Event Notification Content | Table 13 - Job State in Event Notification Content | |||
| Source Value Delivers Source | ||||
| Source Value Delivers Source | ||||
| Object | Object | |||
| job-state-message (text(MAX)) MAY Job | job-state-message (text(MAX)) MAY Job | |||
| job-detailed-status-messages (1setOf text(MAX)) MAY Job | ||||
| job-detailed-status-messages (1setOf text(MAX)) MAY Job | job-state (type1 enum) MAY Job | |||
| job-state-reasons (1setOf type2 keyword) MAY Job | ||||
| job-state (type1 enum) MAY Job | ||||
| job-state-reasons (1setOf type2 keyword) MAY Job | ||||
| 9.2.3 Additional Event Notification Content for Printer Events | 9.2.3 Additional Event Notification Content for Printer Events | |||
| This section lists the source of the additional information that a | This section lists the source of the additional information that a | |||
| Delivery Method MUST specify for Printer Events. | Delivery Method MUST specify for Printer Events. | |||
| Table 14 lists the source of the information for the printer state. | Table 14 lists the source of the information for the printer state. | |||
| If a Printer supports the "printer-state-message", it SHOULD use that | If a Printer supports the "printer-state-message", it SHOULD use that | |||
| attribute for the job state information, otherwise it SHOULD | attribute for the job state information, otherwise it SHOULD | |||
| fabricate such information from the "printer-state" and "printer- | fabricate such information from the "printer-state" and "printer- | |||
| state-reasons". For some Events, a Printer MAY combine this | state-reasons". For some Events, a Printer MAY combine this | |||
| information with Event information. | information with Event information. | |||
| Table 14 - Printer State in Event Notification Content | Table 14 - Printer State in Event Notification Content | |||
| Source Value Delivers Source | ||||
| Source Value Delivers Source | ||||
| Object | Object | |||
| printer-state-message (text(MAX)) MAY Printer | printer-state-message (text(MAX)) MAY Printer | |||
| printer-state (type1 enum) MAY Printer | ||||
| printer-state (type1 enum) MAY Printer | printer-state-reasons (1setOf type2 keyword) MAY Printer | |||
| printer-is-accepting-jobs (boolean) MAY Printer | ||||
| printer-state-reasons (1setOf type2 keyword) MAY Printer | ||||
| printer-is-accepting-jobs (boolean) MAY Printer | ||||
| 10 Delivery Methods | 10 Delivery Methods | |||
| A Delivery Method is the mechanism, i.e., protocol, by which the | A Delivery Method is the mechanism, i.e., protocol, by which the | |||
| 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)? | |||
| 6. Is the Event Notification content | ||||
| Document Method Conformance Requirement Delivery Method | ||||
| Realization | ||||
| 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 | |||
| 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 64, line 48 ¶ | skipping to change at page 62, line 12 ¶ | |||
| This operation is extended so that it returns Printer attributes | This operation is extended so that it returns Printer attributes | |||
| defined in this document. | defined in this document. | |||
| A Printer MUST support this extension to this operation. | A Printer MUST support this extension to this operation. | |||
| In addition to the requirements of [RFC2911] section 3.2.5, a Printer | In addition to the requirements of [RFC2911] section 3.2.5, a Printer | |||
| MUST support the following additional values for the "requested- | MUST support the following additional values for the "requested- | |||
| attributes" Operation attribute in this operation and return such | attributes" Operation attribute in this operation and return such | |||
| attributes in the Printer Object Attributes group of its response. | attributes in the Printer Object Attributes group of its response. | |||
| 1.Subscription Template Attributes: Each supported attribute in | 1. Subscription Template Attributes: Each supported attribute in | |||
| column 2 of Table 1. | column 2 of Table 1. | |||
| 2.New Printer Description Attributes: Each supported attribute in | 2. New Printer Description Attributes: Each supported attribute in | |||
| section 6. | section 6. | |||
| 3.New Group Name: The 'subscription-template' group name, which | 3. New Group Name: The 'subscription-template' group name, which | |||
| names all supported Subscription Template Attribute in column 2 | names all supported Subscription Template Attribute in column 2 | |||
| of Table 1. This group name is also used in the Get- | of Table 1. This group name is also used in the Get- | |||
| Subscription-Attributes and Get-Subscriptions operation with an | Subscription-Attributes and Get-Subscriptions operation with an | |||
| analogous meaning. | analogous meaning. | |||
| 4.Extended Group Name: The 'all' group name, which names all | 4. Extended Group Name: The 'all' group name, which names all | |||
| Printer attributes according to [RFC2911] section 3.2.5. In | Printer attributes according to [RFC2911] section 3.2.5. In | |||
| this extension 'all' names all attributes specified in [RFC2911] | this extension 'all' names all attributes specified in [RFC2911] | |||
| plus those named in items 1 and 2 of this list. | plus those named in items 1 and 2 of this list. | |||
| 11.2.4 Get-Subscription-Attributes operation | 11.2.4 Get-Subscription-Attributes operation | |||
| This operation allows a client to request the values of the | This operation allows a client to request the values of the | |||
| attributes of a Subscription Object. | attributes of a Subscription Object. | |||
| A Printer MUST support this operation. | A Printer MUST support this operation. | |||
| skipping to change at page 67, line 35 ¶ | skipping to change at page 64, line 51 ¶ | |||
| requested by the client. If the client had requested a group | requested by the client. If the client had requested a group | |||
| name, such as 'all', the resulting unsupported attributes | name, such as 'all', the resulting unsupported attributes | |||
| returned MUST NOT include attribute keyword names described in | returned MUST NOT include attribute keyword names described in | |||
| the standard but not supported by the implementation. | the standard but not supported by the implementation. | |||
| Group 3: Subscription Attributes | Group 3: Subscription Attributes | |||
| This group contains a set of attributes with their current | This group contains a set of attributes with their current | |||
| values. Each attribute returned in this group: | values. Each attribute returned in this group: | |||
| a)MUST be specified by the "requested-attributes" attribute | a) MUST be specified by the "requested-attributes" attribute | |||
| in the request, AND | in the request, AND | |||
| b)MUST be present on the specified Subscription Object AND | b) MUST be present on the specified Subscription Object AND | |||
| c)MUST NOT be restricted by the security policy in force. | c) MUST NOT be restricted by the security policy in force. | |||
| For example, a Printer MAY prohibit a client who is not the | For example, a Printer MAY prohibit a client who is not the | |||
| creator of a Subscription Object from seeing some or all of | creator of a Subscription Object from seeing some or all of | |||
| its attributes. See [RFC2911] end of section 3.3.4.2 and | its attributes. See [RFC2911] end of section 3.3.4.2 and | |||
| section 8. | section 8. | |||
| The Printer can return the attributes of the Subscription | The Printer can return the attributes of the Subscription | |||
| Object in any order. The client MUST accept the attributes in | Object in any order. The client MUST accept the attributes in | |||
| any order. | any order. | |||
| 11.2.5 Get-Subscriptions operation | 11.2.5 Get-Subscriptions operation | |||
| skipping to change at page 76, line 29 ¶ | skipping to change at page 73, line 40 ¶ | |||
| except that only the Create-Job-Subscriptions and Create-Printer- | except that only the Create-Job-Subscriptions and Create-Printer- | |||
| Subscriptions operation return it. They return this status code only | Subscriptions operation return it. They return this status code only | |||
| when the Printer creates zero Subscription Objects. | when the Printer creates zero Subscription Objects. | |||
| 13 Status Codes in Subscription Attributes Groups | 13 Status Codes in Subscription Attributes Groups | |||
| This section contains values of the "notify-status-code" (type2 enum) | This section contains values of the "notify-status-code" (type2 enum) | |||
| attribute that the Printer returns in a Subscription Attributes Group | attribute that the Printer returns in a Subscription Attributes Group | |||
| in a response when the corresponding Subscription Object: | in a response when the corresponding Subscription Object: | |||
| 1.is not created or | 1. is not created or | |||
| 2.is created and some of the client-supplied attributes are not | 2. is created and some of the client-supplied attributes are not | |||
| supported. | supported. | |||
| The following sections are ordered in decreasing order of importance | The following sections are ordered in decreasing order of importance | |||
| of the status-codes. | of the status-codes. | |||
| 13.1 client-error-uri-scheme-not-supported (0x040C) | 13.1 client-error-uri-scheme-not-supported (0x040C) | |||
| This status code is defined in [RFC2911]. This document extends its | This status code is defined in [RFC2911]. This document extends its | |||
| meaning and allows it to be in a Subscription Attributes Group of a | meaning and allows it to be in a Subscription Attributes Group of a | |||
| response. | response. | |||
| skipping to change at page 78, line 36 ¶ | skipping to change at page 75, line 44 ¶ | |||
| the Printer MUST: | the Printer MUST: | |||
| - meet the Conformance Requirements detailed in section 5 of | - meet the Conformance Requirements detailed in section 5 of | |||
| [RFC2911]. | [RFC2911]. | |||
| - support the Subscription Template Attributes Group in requests | - support the Subscription Template Attributes Group in requests | |||
| and the Subscription Attributes Group in responses. | and the Subscription Attributes Group in responses. | |||
| - support all of the following attributes: | - support all of the following attributes: | |||
| a.REQUIRED Subscription Object attributes in section 5. | a. REQUIRED Subscription Object attributes in section 5. | |||
| b.REQUIRED Printer Description object attributes in section 6. | b. REQUIRED Printer Description object attributes in section 6. | |||
| c.REQUIRED attributes in Event Notification content in section | c. REQUIRED attributes in Event Notification content in section | |||
| 8. | 8. | |||
| - support the 'ippget' Pull Delivery Method and meet the | - support the 'ippget' Pull Delivery Method and meet the | |||
| conformance requirements as defined in [ipp-get-method] for | conformance requirements as defined in [ipp-get-method] for | |||
| Printers. The Printer MAY support additional Push and Pull | Printers. The Printer MAY support additional Push and Pull | |||
| Delivery Methods. | Delivery Methods. | |||
| - deliver Event Notifications that conform to the requirements of | - deliver Event Notifications that conform to the requirements of | |||
| section 9 and the requirements of the Delivery Method Document | section 9 and the requirements of the Delivery Method Document | |||
| for each supported Delivery Method (the conformance | for each supported Delivery Method (the conformance | |||
| 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. | |||
| 2.When the Printer 2 (in the output-device) generates Events, there | 2. When the Printer 2 (in the output-device) generates Events, there | |||
| are two possible system configurations: | are two possible system configurations: | |||
| a)Printer 1 forwards the client-supplied Subscription Creation | a) Printer 1 forwards the client-supplied Subscription Creation | |||
| Operations to the downstream Printer 2 and lets Printer 2 | Operations to the downstream Printer 2 and lets Printer 2 | |||
| deliver the Event Notifications directly to the Notification | deliver the Event Notifications directly to the Notification | |||
| Recipients supplied by the Client (Event Notifications(C) in the | Recipients supplied by the Client (Event Notifications(C) in the | |||
| diagram). | diagram). | |||
| b)Printer 1 performs the client-supplied Subscription Creation | b) Printer 1 performs the client-supplied Subscription Creation | |||
| Operations and also forwards the Subscription Creation | Operations and also forwards the Subscription Creation | |||
| Operations to Printer 2 with the Notification Recipient changed | Operations to Printer 2 with the Notification Recipient changed | |||
| to be the Printer 1. When an Event occurs in Printer 2, Printer | to be the Printer 1. When an Event occurs in Printer 2, Printer | |||
| 2 delivers the Event Notification (B) to Notification Recipient | 2 delivers the Event Notification (B) to Notification Recipient | |||
| of Printer 1, which relays the received Event Notification (B) | of Printer 1, which relays the received Event Notification (B) | |||
| to the client-supplied Notification Recipient (as Event | to the client-supplied Notification Recipient (as Event | |||
| Notifications(A) in the diagram). Note, when a client performs | Notifications(A) in the diagram). Note, when a client performs | |||
| a Subscription Creation Operation, Printer 1 need not forward | a Subscription Creation Operation, Printer 1 need not forward | |||
| the Subscription Creation Operation to Printer 2 if it would | the Subscription Creation Operation to Printer 2 if it would | |||
| create a duplicate Subscription Object on Printer 2. | create a duplicate Subscription Object on Printer 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 | |||
| is established by the client when submitting a job and after creating | is established by the client when submitting a job and after creating | |||
| the job using the Create-Job-Subscriptions operation by specifying | the job using the Create-Job-Subscriptions operation by specifying | |||
| the "job-id" of the Job with the "notify-job-id" attribute. A Per- | the "job-id" of the Job with the "notify-job-id" attribute. A Per- | |||
| Printer Subscription Object is established between a client and a | Printer Subscription Object is established between a client and a | |||
| Printer using the Create-Printer-Subscriptions operation. Some | Printer using the Create-Printer-Subscriptions operation. Some | |||
| specific differences are: | specific differences are: | |||
| 1.A client usually creates one or more Per-Job Subscription | 1. A client usually creates one or more Per-Job Subscription | |||
| Objects as part of the Job Creation operations (Create-Job, | Objects as part of the Job Creation operations (Create-Job, | |||
| Print-Job, and Print-URI), rather than using the OPTIONAL | Print-Job, and Print-URI), rather than using the OPTIONAL | |||
| Create-Job-Subscriptions operation, especially since Printer | Create-Job-Subscriptions operation, especially since Printer | |||
| implementations NEED NOT support the Create-Job-Subscriptions | implementations NEED NOT support the Create-Job-Subscriptions | |||
| operation, since it is OPTIONAL. | operation, since it is OPTIONAL. | |||
| 2.For Per-Job Subscription Objects, the Subscription Object is | 2. For Per-Job Subscription Objects, the Subscription Object is | |||
| only valid while the job is "not-complete" (see sections 5.4.3) | only valid while the job is "not-complete" (see sections 5.4.3) | |||
| while for the Per-Printer Subscription Objects, the Subscription | while for the Per-Printer Subscription Objects, the Subscription | |||
| 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. 254 change blocks. | ||||
| 508 lines changed or deleted | 388 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||