| < draft-ietf-ipp-notify-get-09.txt | draft-ietf-ipp-notify-get-10.txt > | |||
|---|---|---|---|---|
| Internet Printing Protocol WG R. Herriot | Internet Printing Protocol WG R. Herriot | |||
| INTERNET-DRAFT consultant | INTERNET-DRAFT Global Workflow Solutions | |||
| <draft-ietf-ipp-notify-get-09.txt> T. Hastings | <draft-ietf-ipp-notify-get-10.txt> T. Hastings | |||
| Updates: RFC 2911 and [ipp-ntfy] Xerox Corp. | Updates: RFC 2911 and [ipp-ntfy] Xerox Corp. | |||
| [Target category: standards track] H. Lewis | [Target category: standards track] H. Lewis | |||
| Expires: August 21, 2003 IBM Corp. | Expires: December 21,2004 IBM Corp. | |||
| February 21, 2003 | June 21,2004 | |||
| Internet Printing Protocol (IPP): | Internet Printing Protocol (IPP): | |||
| The 'ippget' Delivery Method for Event Notifications | The 'ippget' Delivery Method for Event Notifications | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2003). 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 | |||
| skipping to change at page 2, line 18 ¶ | skipping to change at page 2, line 18 ¶ | |||
| 2 Terminology......................................................4 | 2 Terminology......................................................4 | |||
| 2.1 Conformance Terminology........................................4 | 2.1 Conformance Terminology........................................4 | |||
| 2.2 Other terminology..............................................5 | 2.2 Other terminology..............................................5 | |||
| 3 Model and Operation..............................................5 | 3 Model and Operation..............................................5 | |||
| 4 General Information..............................................7 | 4 General Information..............................................7 | |||
| 5 Get-Notifications operation......................................8 | 5 Get-Notifications operation......................................8 | |||
| 5.1 Get-Notifications Request.....................................10 | 5.1 Get-Notifications Request......................................9 | |||
| 5.1.1 notify-subscription-ids (1setOf integer(1:MAX)).............10 | 5.1.1 notify-subscription-ids (1setOf integer(1:MAX)).............10 | |||
| 5.1.2 notify-sequence-numbers (1setOf integer(1:MAX)).............10 | 5.1.2 notify-sequence-numbers (1setOf integer(1:MAX)).............10 | |||
| 5.1.3 notify-wait (boolean).......................................11 | 5.1.3 notify-wait (boolean).......................................11 | |||
| 5.2 Get-Notifications Response....................................12 | 5.2 Get-Notifications Response....................................11 | |||
| 5.2.1 notify-get-interval (integer(0:MAX))........................14 | 5.2.1 notify-get-interval (integer(0:MAX))........................14 | |||
| 5.2.2 printer-up-time (integer(1:MAX))............................17 | 5.2.2 printer-up-time (integer(1:MAX))............................16 | |||
| 6 Additional Information about Subscription Template Attributes...21 | 6 Additional Information about Subscription Template Attributes...19 | |||
| 6.1 notify-pull-method (type2 keyword)............................21 | 6.1 notify-pull-method (type2 keyword)............................19 | |||
| 7 Subscription Description Attributes.............................21 | 7 Subscription Description Attributes.............................19 | |||
| 8 Additional Printer Description Attributes.......................22 | 8 Additional Printer Description Attributes.......................19 | |||
| 8.1 ippget-event-life (integer(15:MAX))...........................22 | 8.1 ippget-event-life (integer(15:MAX))...........................19 | |||
| 9 New Values for Existing Printer Description Attributes..........23 | 9 New Values for Existing Printer Description Attributes..........21 | |||
| 9.1 notify-pull-method-supported (1setOf type2 keyword)...........23 | 9.1 notify-pull-method-supported (1setOf type2 keyword)...........21 | |||
| 9.2 operations-supported (1setOf type2 enum)......................23 | 9.2 operations-supported (1setOf type2 enum)......................21 | |||
| 10 New Status Codes...............................................23 | 10 New Status Codes...............................................21 | |||
| 10.1 successful-ok-events-complete (0x0007).......................24 | 10.1 successful-ok-events-complete (0x0007).......................21 | |||
| 11 Encoding and Transport.........................................24 | 11 Encoding and Transport.........................................22 | |||
| 12 Conformance Requirements.......................................25 | 12 Conformance Requirements.......................................23 | |||
| 12.1 Conformance for IPP Printers.................................26 | 12.1 Conformance for IPP Printers.................................23 | |||
| 12.2 Conformance for IPP Clients..................................26 | 12.2 Conformance for IPP Clients..................................24 | |||
| 13 Normative References...........................................27 | 13 Normative References...........................................25 | |||
| 14 Informative References.........................................27 | 14 Informative References.........................................25 | |||
| 15 IANA Considerations............................................28 | 15 IANA Considerations............................................26 | |||
| 15.1 Attribute Registrations......................................29 | 15.1 Attribute Registrations......................................26 | |||
| 15.2 Delivery Method and Additional keyword attribute value | 15.2 Delivery Method and Additional keyword attribute value | |||
| registrations for existing attributes.............................29 | registrations for existing attributes.............................26 | |||
| 15.3 Additional enum attribute values.............................29 | 15.3 Additional enum attribute values.............................27 | |||
| 15.4 Operation Registrations......................................30 | 15.4 Operation Registrations......................................27 | |||
| 15.5 Status code Registrations....................................30 | 15.5 Status code Registrations....................................27 | |||
| 16 Intellectual Property..........................................30 | 16 Intellectual Property..........................................28 | |||
| 17 Internationalization Considerations............................30 | 17 Internationalization Considerations............................28 | |||
| 18 Security Considerations........................................31 | 18 Security Considerations........................................28 | |||
| 18.1 Notification Recipient client access rights..................31 | 18.1 Notification Recipient client access rights..................29 | |||
| 18.2 Printer security threats.....................................32 | 18.2 Printer security threats.....................................29 | |||
| 18.3 Notification Recipient security threats......................32 | 18.3 Notification Recipient security threats......................29 | |||
| 18.4 Security requirements for Printers...........................32 | 18.4 Security requirements for Printers...........................30 | |||
| 18.5 Security requirements for clients............................33 | 18.5 Security requirements for clients............................30 | |||
| 19 Contributors...................................................33 | 19 Contributors...................................................30 | |||
| 20 Authors' Addresses.............................................33 | 20 Authors' Addresses.............................................31 | |||
| 21 Description of Base IPP documents (Informative)................34 | 21 Description of Base IPP documents (Informative)................31 | |||
| 22 Full Copyright Statement.......................................35 | 22 Full Copyright Statement.......................................32 | |||
| Table of Tables | Table of Tables | |||
| Table 1 - Information about the Delivery Method....................7 | Table 1 - Information about the Delivery Method....................7 | |||
| Table 2 - Combinations of "notify-wait", "status-code", and "notify- | Table 2 - Combinations of "notify-wait", "status-code", and "notify- | |||
| get-interval" .................................................16 | get-interval".................................................15 | |||
| Table 3 - Attributes in Event Notification Content................19 | Table 3 - Attributes in Event Notification Content................17 | |||
| Table 4 - Additional Attributes in Event Notification Content for Job | Table 4 - Additional Attributes in Event Notification Content for Job | |||
| Events ........................................................20 | Events........................................................18 | |||
| Table 5 - Combinations of Events and Subscribed Events for "job- | Table 5 - Combinations of Events and Subscribed Events for "job- | |||
| impressions-completed" ........................................20 | impressions-completed"........................................18 | |||
| Table 6 - Additional Attributes in Event Notification Content for | Table 6 - Additional Attributes in Event Notification Content for | |||
| Printer Events ................................................21 | Printer Events................................................19 | |||
| Table 7 - Operation-id assignments................................23 | Table 7 - Operation-id assignments................................21 | |||
| Table 8 - The "event-notification-attributes-tag" value...........25 | Table 8 - The "event-notification-attributes-tag" value...........23 | |||
| 1 Introduction | 1 Introduction | |||
| This document describes an extension to the Internet Printing | This document describes an extension to the Internet Printing | |||
| Protocol/1.1: Model and Semantics [RFC 2911], [RFC 2910]. This | Protocol/1.1: Model and Semantics [RFC 2911], [RFC 2910]. This | |||
| document specifies the 'ippget' Pull Delivery Method for use with the | document specifies the 'ippget' Pull Delivery Method for use with the | |||
| "Internet Printing Protocol (IPP): Event Notifications and | "Internet Printing Protocol (IPP): Event Notifications and | |||
| Subscriptions" specification [ipp-ntfy]. This IPPGET Delivery Method | Subscriptions" specification [ipp-ntfy]. This IPPGET Delivery Method | |||
| is REQUIRED for all clients and Printers that support [ipp-ntfy]. | is REQUIRED for all clients and Printers that support [ipp-ntfy]. | |||
| The Notification Recipient, acting as a client, fetches (pulls) Event | The Notification Recipient, acting as a client, fetches (pulls) Event | |||
| skipping to change at page 7, line 12 ¶ | skipping to change at page 7, line 12 ¶ | |||
| wants to get all job or printer Events from a per-Printer | wants to get all job or printer Events from a per-Printer | |||
| Subscription object. | Subscription object. | |||
| 4 General Information | 4 General Information | |||
| 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 1 - Information about the Delivery Method | Table 1 - 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 'ippget' keyword method | 1. What is the URL scheme name for the 'ippget' keyword method | |||
| Push Delivery Method or the keyword name | Push Delivery Method or the keyword name | |||
| method name for the Pull Delivery | method name for the Pull Delivery | |||
| Method? | Method? | |||
| 2. Is the Delivery Method REQUIRED, REQUIRED | ||||
| 2. Is the Delivery Method REQUIRED, | ||||
| RECOMMENDED or OPTIONAL for an IPP | RECOMMENDED or OPTIONAL for an IPP | |||
| Printer to support? REQUIRED | Printer to support? | |||
| 3. What transport and delivery protocols IPP with one new | ||||
| 3. What transport and delivery protocols IPP with one new | does the Printer use to deliver the operation. | |||
| does the Printer use to deliver the operation. | ||||
| 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 Yes. | ||||
| 4. Can several Event Notifications be Yes. | ||||
| combined into a Compound Event | combined into a Compound Event | |||
| Notification? | Notification? | |||
| 5. Is the Delivery Method initiated by This Delivery Method is | ||||
| 5. Is the Delivery Method initiated by This Delivery Method is | the Notification Recipient (pull), or a pull method with | |||
| the Notification Recipient (pull), or a pull method with | by the Printer (push)? aspects of a push | |||
| by the Printer (push)? aspects of a push | ||||
| method, though the | method, though the | |||
| Printer does not | Printer does not | |||
| initiate the operation. | initiate the operation. | |||
| 6. Is the Event Notification content Machine Consumable | ||||
| 6. Is the Event Notification content Machine Consumable | ||||
| Machine Consumable or Human | Machine Consumable or Human | |||
| Consumable? | Consumable? | |||
| 7. What section in this document answers Section 5 | ||||
| 7. What section in this document answers Section 5 | ||||
| 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 | |||
| thereof? For a Human Consumable Event | ||||
| Notification, what is the | Notification, what is the | |||
| representation and encoding of pieces | representation and encoding of pieces | |||
| of information defined in section 9.2 | of information defined in section 9.2 | |||
| of [ipp-ntfy] and the conformance | of [ipp-ntfy] and the conformance | |||
| requirements thereof? | requirements thereof? | |||
| 8. What are the latency and reliability Same as IPP and the | ||||
| of the transport and delivery underlying HTTP | ||||
| protocol? transport | ||||
| 8. What are the latency and reliability Same as IPP and the | 9. What are the security aspects of the Same as IPP and the | |||
| of the transport and delivery underlying HTTP | transport and delivery protocol, e.g., underlying HTTP | |||
| protocol? transport | how it is handled in firewalls? transport and in the | |||
| 9. What are the security aspects of the | ||||
| transport and delivery protocol, e.g., underlying HTTP | ||||
| how it is handled in firewalls? transportPandnintthe | ||||
| same direction, so no | same direction, so no | |||
| new firewall | new firewall | |||
| considerations. | considerations. | |||
| 10.What are the content length None | ||||
| 10.What are the content length | restrictions? | |||
| restrictions? None | 11.What are the additional values or None | |||
| 11.What are the additional values or None | ||||
| pieces of information that a Printer | pieces of information that a Printer | |||
| sends in an Event Notification content | sends in an Event Notification content | |||
| and the conformance requirements | and the conformance requirements | |||
| thereof? | thereof? | |||
| 12.What are the additional Subscription None | ||||
| 12.What are the additional Subscription None | ||||
| Template and/or Subscription | Template and/or Subscription | |||
| Description attributes and the | Description attributes and the | |||
| conformance requirements thereof? | conformance requirements thereof? | |||
| 13.What are the additional Printer "ipp-event-life" | ||||
| 13.What are the additional Printer "ipp-event-life" | Description attributes and the (integer (15: MAX)) | |||
| Description attributes and the (integer (15: MAX)) | ||||
| conformance requirements thereof? | conformance requirements thereof? | |||
| 5 Get-Notifications operation | 5 Get-Notifications operation | |||
| This operation is issued by a client acting in the role of a | This operation is issued by a client acting in the role of a | |||
| Notification Recipient requesting the Printer to return all Event | Notification Recipient requesting the Printer to return all Event | |||
| Notifications held for the identified Subscription object(s). | Notifications held for the identified Subscription object(s). | |||
| A Printer MUST support this operation, MUST accept the request in any | A Printer MUST support this operation, MUST accept the request in any | |||
| state (see [RFC2911] "printer-state" and "printer-state-reasons" | state (see [RFC2911] "printer-state" and "printer-state-reasons" | |||
| skipping to change at page 16, line 8 ¶ | skipping to change at page 15, line 15 ¶ | |||
| Here is a complete table of combinations of "notify-wait", | Here is a complete table of combinations of "notify-wait", | |||
| "status-code", "notify-get-interval", and Event Notification | "status-code", "notify-get-interval", and Event Notification | |||
| Attributes Groups for Get-Notification initial (Wait and No | Attributes Groups for Get-Notification initial (Wait and No | |||
| Wait) Responses and subsequent Event Wait Mode Responses (which | Wait) Responses and subsequent Event Wait Mode Responses (which | |||
| may be staying in Event Wait Mode or may be requesting the | may be staying in Event Wait Mode or may be requesting the | |||
| Notification Recipient to leave Event Wait Mode): | Notification Recipient to leave Event Wait Mode): | |||
| Table 2 - Combinations of "notify-wait", "status-code", and "notify- | Table 2 - Combinations of "notify-wait", "status-code", and "notify- | |||
| get-interval" | get-interval" | |||
| client sends: Printer returns: Printer Event | client sends: Printer returns: Printer Event | |||
| returns: Notification | returns: Notification | |||
| "notify-wait" "status-code" "notify-get- Attribute | "notify-wait" "status-code" "notify-get- Attribute | |||
| interval" Groups | interval" Groups | |||
| 1. 'false'* 'successful-ok' MUST return N maybe | ||||
| 2. 'false'* 'not-found' MUST NOT MUST NOT | ||||
| 3. 'false'* 'busy' MUST return N MUST NOT | ||||
| 4. 'false'* 'events- 'job- | ||||
| complete' MUST NOT completed' | ||||
| 5. 'true' 'successful-ok' MUST NOT MUST | ||||
| 6. 'true' 'successful-ok' MUST return N maybe | ||||
| 7. 'true' 'not-found' MUST NOT MUST NOT | ||||
| 8. 'true' 'busy' MUST return N MUST NOT | ||||
| 9. 'true' 'events- MUST NOT 'job- | 1. 'false'* 'successful-ok' MUST return N maybe | |||
| 2. 'false'* 'not-found' MUST NOT MUST NOT | ||||
| 3. 'false'* 'busy' MUST return N MUST NOT | ||||
| 4. 'false'* 'events- MUST NOT 'job- | ||||
| complete' completed' | ||||
| 5. 'true' 'successful-ok' MUST NOT MUST | ||||
| 6. 'true' 'successful-ok' MUST return N maybe | ||||
| 7. 'true' 'not-found' MUST NOT MUST NOT | ||||
| 8. 'true' 'busy' MUST return N MUST NOT | ||||
| 9. 'true' 'events- MUST NOT 'job- | ||||
| complete' completed' or | complete' completed' or | |||
| maybe other | maybe other | |||
| * 'false' or client omits the "notify-wait" attribute. | * 'false' or client omits the "notify-wait" attribute. | |||
| Explanation: | Explanation: | |||
| 1-4: client does not request Event Wait Mode | 1-4: client does not request Event Wait Mode | |||
| 5-9: client requests Event Wait Mode | 5-9: client requests Event Wait Mode | |||
| 2,7: Subscription object not found, or was canceled earlier; | 2,7: Subscription object not found, or was canceled earlier; | |||
| client should NOT try again. | client should NOT try again. | |||
| 3,8: server busy, tells client to try later; client should try | 3,8: server busy, tells client to try later; client should try | |||
| again in N seconds. | again in N seconds. | |||
| skipping to change at page 19, line 7 ¶ | skipping to change at page 17, line 15 ¶ | |||
| If more than one Event Notification is being returned and the | If more than one Event Notification is being returned and the | |||
| status of each is not the same, then the Printer MUST return a | status of each is not the same, then the Printer MUST return a | |||
| "notify-status-code" attribute in each Event Notification | "notify-status-code" attribute in each Event Notification | |||
| Attributes group to indicate the differing status values. | Attributes group to indicate the differing status values. | |||
| For an Event Notification for all Events, the Printer includes | For an Event Notification for all Events, the Printer includes | |||
| the attributes shown in Table 3. | the attributes shown in Table 3. | |||
| Table 3 - Attributes in Event Notification Content | Table 3 - Attributes in Event Notification Content | |||
| Source Value Sends Source | Source Value Sends Source | |||
| Object | 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(1:MAX)) * MUST Printer | ||||
| printer-up-time (integer(1:MAX)) * MUST Printer | printer-current-time (dateTime) MUST ** Printer | |||
| notify-sequence-number (integer (0:MAX)) MUST Subscription | ||||
| printer-current-time (dateTime) MUST ** Printer | notify-charset (charset) MUST Subscription | |||
| notify-natural-language (naturalLanguage) MUST Subscription | ||||
| notify-sequence-number (integer (0:MAX)) MUST Subscription | notify-user-data (octetString(63)) MUST *** Subscription | |||
| notify-text (text) MUST Event | ||||
| notify-charset (charset) MUST Subscription | ||||
| notify-natural-language (naturalLanguage) MUST Subscription | ||||
| notify-user-data (octetString(63)) MUST *** Subscription | ||||
| notify-text (text) MUST Event | ||||
| Notification | Notification | |||
| attributes from the "notify-attributes" MUST **** Printer | ||||
| attributes from the "notify-attributes" MUST **** Printer | ||||
| attribute | attribute | |||
| attributes from the "notify-attributes" MUST **** Job | ||||
| attributes from the "notify-attributes" MUST **** Job | ||||
| attribute | attribute | |||
| attributes from the "notify-attributes" MUST **** Subscription | ||||
| attributes from the "notify-attributes" MUST **** Subscription | ||||
| attribute | attribute | |||
| * As specified in [ipp-ntfy] section 9, the value of the | * As specified in [ipp-ntfy] section 9, the value of the | |||
| "printer-up-time" attribute sent in each Event Notification | "printer-up-time" attribute sent in each Event Notification | |||
| MUST be the time at which the Event occurred, not the time at | MUST be the time at which the Event occurred, not the time at | |||
| which the Event Notification was sent. | which the Event Notification was sent. | |||
| ** The Printer MUST send the "printer-current-time" attribute | ** The Printer MUST send the "printer-current-time" attribute | |||
| if and only if it supports the "printer-current-time" attribute | if and only if it supports the "printer-current-time" attribute | |||
| on the Printer object. | on the Printer object. | |||
| skipping to change at page 20, line 21 ¶ | skipping to change at page 18, line 14 ¶ | |||
| specified by the "notify-attributes" attribute. Note: if the | specified by the "notify-attributes" attribute. Note: if the | |||
| Printer doesn't support the "notify-attributes" attribute, it | Printer doesn't support the "notify-attributes" attribute, it | |||
| is not present on the associated Subscription Object. | is not present on the associated Subscription Object. | |||
| For Event Notifications for Job Events, the Printer includes | For Event Notifications for Job Events, the Printer includes | |||
| the additional attributes shown in Table 4. | the additional attributes shown in Table 4. | |||
| Table 4 - Additional Attributes in Event Notification Content for | Table 4 - Additional Attributes in Event Notification Content for | |||
| Job Events | Job Events | |||
| Source Value Sends Source | Source Value Sends 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 send the "job-impressions-completed" | * The Printer MUST send the "job-impressions-completed" | |||
| attribute in an Event Notification only for the combinations of | attribute in an Event Notification only for the combinations of | |||
| Events and Subscribed Events shown in Table 5. | Events and Subscribed Events shown in Table 5. | |||
| Table 5 - Combinations of Events and Subscribed Events for "job- | Table 5 - 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-completed' | ||||
| 'job-completed' 'job-state-changed' | ||||
| 'job-completed' 'job-state-changed' | ||||
| For Event Notification for Printer Events, the Printer includes | For Event Notification for Printer Events, the Printer includes | |||
| the additional attributes shown in Table 6. | the additional attributes shown in Table 6. | |||
| Table 6 - Additional Attributes in Event Notification Content for | Table 6 - Additional Attributes in Event Notification Content for | |||
| Printer Events | Printer Events | |||
| Source Value Sends Source | Source Value Sends Source | |||
| Object | Object | |||
| printer-state (type1 enum) MUST Printer | printer-state (type1 enum) MUST Printer | |||
| printer-state-reasons (1setOf type2 keyword) MUST Printer | ||||
| printer-state-reasons (1setOf type2 keyword) MUST Printer | printer-is-accepting-jobs (boolean) MUST Printer | |||
| printer-is-accepting-jobs (boolean) MUST Printer | ||||
| 6 Additional Information about Subscription Template Attributes | 6 Additional Information about Subscription Template Attributes | |||
| The 'ippget' Delivery Method does not define any addition | The 'ippget' Delivery Method does not define any addition | |||
| Subscription Template attributes. The 'ippget' Delivery Method has | Subscription Template attributes. The 'ippget' Delivery Method has | |||
| the same conformance requirements for Subscription Template | the same conformance requirements for Subscription Template | |||
| attributes as defined in [ipp-ntfy]. This section defines additional | attributes as defined in [ipp-ntfy]. This section defines additional | |||
| information about Subscription Template attributes defined in [ipp- | information about Subscription Template attributes defined in [ipp- | |||
| ntfy]. | ntfy]. | |||
| skipping to change at page 22, line 27 ¶ | skipping to change at page 20, line 17 ¶ | |||
| Event Notification for that Event in a Get-Notifications response. | Event Notification for that Event in a Get-Notifications response. | |||
| The Printer MUST support this attribute if it supports the 'ippget' | The Printer MUST support this attribute if it supports the 'ippget' | |||
| Delivery Method. The value MUST be 15 or more (at least 15 seconds) | Delivery Method. The value MUST be 15 or more (at least 15 seconds) | |||
| and 60 (seconds) is the RECOMMENDED value to align with the PWG Job | and 60 (seconds) is the RECOMMENDED value to align with the PWG Job | |||
| Monitoring MIB [RFC2707] jmGeneralJobPersistence and | Monitoring MIB [RFC2707] jmGeneralJobPersistence and | |||
| jmGeneralAttributePersistence objects. | jmGeneralAttributePersistence objects. | |||
| For example, assume the following: | For example, assume the following: | |||
| 1.a client performs a Job Creation operation that creates a | 1. a client performs a Job Creation operation that creates a | |||
| Subscription Object associated with the 'ippget' Delivery | Subscription Object associated with the 'ippget' Delivery | |||
| Method, AND | Method, AND | |||
| 2.an Event associated with the new Job occurs immediately after | 2. an Event associated with the new Job occurs immediately after | |||
| the Subscription Object is created, AND | the Subscription Object is created, AND | |||
| 3.the same client or some other client performs a Get- | 3. the same client or some other client performs a Get- | |||
| Notifications operation such that the client is connected N | Notifications operation such that the client is connected N | |||
| seconds after the Job Creation operation. | seconds after the Job Creation operation. | |||
| Then, if N is less than the value of this attribute, the client(s) | Then, if N is less than the value of this attribute, the client(s) | |||
| performing the Get-Notifications operations can expect not to miss | performing the Get-Notifications operations can expect not to miss | |||
| any Event-Notifications, barring some unforeseen lack of memory space | any Event-Notifications, barring some unforeseen lack of memory space | |||
| in the Printer. Note: The client MUST initiate the Get- | in the Printer. Note: The client MUST initiate the Get- | |||
| Notifications a time that is sufficiently less that N seconds to | Notifications a time that is sufficiently less that N seconds to | |||
| account for network latency so that it is connected to the Printer | account for network latency so that it is connected to the Printer | |||
| before N seconds elapses. | before N seconds elapses. | |||
| skipping to change at page 23, line 34 ¶ | skipping to change at page 21, line 26 ¶ | |||
| 'ippget' - The IPP Notification Pull Delivery Method defined in | 'ippget' - The IPP Notification Pull Delivery Method defined in | |||
| this document. | this document. | |||
| 9.2 operations-supported (1setOf type2 enum) | 9.2 operations-supported (1setOf type2 enum) | |||
| Table 7 lists the "operation-id" value defined in order to support | Table 7 lists the "operation-id" value defined in order to support | |||
| the new Get-Notifications operation defined in this document. | the new Get-Notifications operation defined in this document. | |||
| Table 7 - Operation-id assignments | Table 7 - Operation-id assignments | |||
| Value Operation Name | Value Operation Name | |||
| 0x001C Get-Notifications | 0x001C Get-Notifications | |||
| 10 New Status Codes | 10 New Status Codes | |||
| The following status code is defined as an extension for this | The following status code is defined as an extension for this | |||
| Delivery Method and is returned as the status code of the Get- | Delivery Method and is returned as the status code of the Get- | |||
| Notifications operation in Group 1 or Group 3 to N (see section 5.2). | Notifications operation in Group 1 or Group 3 to N (see section 5.2). | |||
| 10.1 successful-ok-events-complete (0x0007) | 10.1 successful-ok-events-complete (0x0007) | |||
| The Printer MUST return the 'successful-ok-events-complete' status | The Printer MUST return the 'successful-ok-events-complete' status | |||
| skipping to change at page 25, line 17 ¶ | skipping to change at page 22, line 52 ¶ | |||
| future indicated by the value of the "notify-get-interval" | future indicated by the value of the "notify-get-interval" | |||
| attribute value.. | attribute value.. | |||
| 4. If the client requested Event Wait Mode ("notify-wait" = | 4. If the client requested Event Wait Mode ("notify-wait" = | |||
| 'true'), and the Printer initially honored the request, but | 'true'), and the Printer initially honored the request, but | |||
| later wishes to leave Event Wait Mode, the Printer MUST return | later wishes to leave Event Wait Mode, the Printer MUST return | |||
| the "notify-get-interval" operation attribute (see section | the "notify-get-interval" operation attribute (see section | |||
| 5.2.1). The Printer returns the response as an application/ipp | 5.2.1). The Printer returns the response as an application/ipp | |||
| part which MUST be inside an multi-part/related type. | part which MUST be inside an multi-part/related type. | |||
| Note: All of the above is without either the Printer or the | NOTE: if a Notification Recipient fails to receive a response, it can | |||
| Notification Recipient closing the connection. In fact, the | ask the Printer for the same Event Notifications again. The | |||
| connection SHOULD remain open for any subsequent IPP operations. | Notification Recipient will receive the same Event Notifications as | |||
| However, either the Notification Recipient or the Printer can | it should have received the first time except for those Event | |||
| abnormally terminate by closing the connection. But, if the Printer | Notifications that have expired in the meantime. | |||
| closes the connection too soon after returning the response, the | ||||
| client may not receive the response. | ||||
| The Printer MAY chunk the responses, but this has no significance to | The Printer MAY chunk the responses, but this has no significance to | |||
| the IPP semantics. | the IPP semantics. | |||
| Note: While HTTP/1.1 allows a proxy to collect chunked responses | ||||
| over a period of time and return them back as a single un-chunked | ||||
| response (with a Content Length instead). However, in practice no | ||||
| proxy wants to have an infinite buffer. Also no proxy want to hold | ||||
| up responses, since user would be furious. | ||||
| This notification delivery method uses the IPP transport and encoding | This notification delivery method uses the IPP transport and encoding | |||
| [RFC2910] for the Get-Notifications operation with the following | [RFC2910] for the Get-Notifications operation with the following | |||
| extension allocated in [ipp-ntfy]: | extension allocated in [ipp-ntfy]: | |||
| Table 8 - The "event-notification-attributes-tag" value | Table 8 - The "event-notification-attributes-tag" value | |||
| Tag Value (Hex) Meaning | Tag Value (Hex) Meaning | |||
| 0x07 "event-notification-attributes-tag" | 0x07 "event-notification-attributes-tag" | |||
| 12 Conformance Requirements | 12 Conformance Requirements | |||
| This section lists the conformance requirements for clients and | This section lists the conformance requirements for clients and | |||
| Printers. | Printers. | |||
| 12.1 Conformance for IPP Printers | 12.1 Conformance for IPP Printers | |||
| It is OPTIONAL for a Printer to support IPP Notifications as defined | It is OPTIONAL for a Printer to support IPP Notifications as defined | |||
| in [ipp-ntfy]. However, if a Printer supports IPP Notifications, the | in [ipp-ntfy]. However, if a Printer supports IPP Notifications, the | |||
| skipping to change at page 26, line 44 ¶ | skipping to change at page 24, line 19 ¶ | |||
| described in section 10.1; | described in section 10.1; | |||
| 8. MUST listen for the IPP Get-Notifications operation requests on | 8. MUST listen for the IPP Get-Notifications operation requests on | |||
| IANA-assigned well-known port 631, unless explicitly configured | IANA-assigned well-known port 631, unless explicitly configured | |||
| by system administrators or site policies; | by system administrators or site policies; | |||
| 9. SHOULD NOT listen for IPP Get-Notifications operation requests | 9. SHOULD NOT listen for IPP Get-Notifications operation requests | |||
| on any other port, unless explicitly configured by system | on any other port, unless explicitly configured by system | |||
| administrators or site policies. | administrators or site policies. | |||
| 10. MUST meet the security conformance requirements as stated in | 10. MUST meet the security conformance requirements as stated in | |||
| section 18.4. | section 18.4. | |||
| 12.2 Conformance for IPP Clients | 12.2 Conformance for IPP Clients | |||
| It is OPTIONAL for an IPP Client to support IPP Notifications as | It is OPTIONAL for an IPP Client to support IPP Notifications as | |||
| defined in [ipp-ntfy]. However, if a client supports IPP | defined in [ipp-ntfy]. However, if a client supports IPP | |||
| Notifications, the client MUST support the 'ippget' Delivery Method | Notifications, the client MUST support the 'ippget' Delivery Method | |||
| as defined in this document as one of its Delivery Methods. IPP | as defined in this document as one of its Delivery Methods. IPP | |||
| Clients that conform to this specification: | Clients that conform to this specification: | |||
| 1.MUST create Subscription Objects by sending Subscription | 1. MUST create Subscription Objects by sending Subscription | |||
| Creation operation requests containing the "notify-pull-method" | Creation operation requests containing the "notify-pull-method" | |||
| attribute (as opposed to the "notify-recipient-uri" attribute) | attribute (as opposed to the "notify-recipient-uri" attribute) | |||
| using the 'ippget' keyword value (see sections 6.1 and 15.2); | using the 'ippget' keyword value (see sections 6.1 and 15.2); | |||
| 2.MUST send IPP Get-Notifications operation requests (see section | 2. MUST send IPP Get-Notifications operation requests (see section | |||
| 5.1) via the port specified in the associated 'ipp' URL (if | 5.1) via the port specified in the associated 'ipp' URL (if | |||
| present) or otherwise via IANA assigned well-known port 631; | present) or otherwise via IANA assigned well-known port 631; | |||
| 3.MUST convert the associated 'ipp' URLs for use in IPP Get- | 3. MUST convert the associated 'ipp' URLs for use in IPP Get- | |||
| Notifications operation to their corresponding 'http' URL forms | Notifications operation to their corresponding 'http' URL forms | |||
| for use in the HTTP layer according to the rules in section 5 | for use in the HTTP layer according to the rules in section 5 | |||
| "IPP URL Scheme" in [RFC2910]. | "IPP URL Scheme" in [RFC2910]. | |||
| 4.MUST meet the security conformance requirements as stated in | 4. MUST meet the security conformance requirements as stated in | |||
| section 18.5. | section 18.5. | |||
| 13 Normative References | 13 Normative References | |||
| [ipp-ntfy] | [ipp-ntfy] | |||
| Herriot, R., and T. Hastings, "Internet Printing Protocol/1.1: IPP | Herriot, R., and T. Hastings, "Internet Printing Protocol/1.1: IPP | |||
| Event Notifications and Subscriptions", <draft-ietf-ipp-not-spec- | Event Notifications and Subscriptions", <draft-ietf-ipp-not-spec- | |||
| 11.txt>, February 21, 2003. | 12.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 | |||
| [RFC2910] | [RFC2910] | |||
| Herriot, R., Butler, S., Moore, P., and R. Tuner, "Internet | Herriot, R., Butler, S., Moore, P., and R. Tuner, "Internet | |||
| Printing Protocol/1.1: Encoding and Transport", RFC 2910, September | Printing Protocol/1.1: Encoding and Transport", RFC 2910, September | |||
| 2000. | 2000. | |||
| [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. | |||
| 14 Informative References | 14 Informative References | |||
| [notify-req] | [notify-req] | |||
| Hastings, T., deBry, R., and H. Lewis, "Internet Printing Protocol | Hastings, T., deBry, R., and H. Lewis, "Internet Printing Protocol | |||
| (IPP): Requirements for IPP Notifications", <draft-ietf-ipp-not- | (IPP): Requirements for IPP Notifications", <draft-ietf-ipp-not- | |||
| 06.txt>, work in progress, July 17, 2001. | 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] | |||
| R. deBry, T. Hastings, R. Herriot, S. Isaacson, and P. Powell, | R. deBry, T. Hastings, R. Herriot, S. Isaacson, and P. Powell, | |||
| "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, | "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, | |||
| April 1999. | April 1999. | |||
| skipping to change at page 33, line 25 ¶ | skipping to change at page 31, line 4 ¶ | |||
| "smart polling" coupled with multiple responses for a single | "smart polling" coupled with multiple responses for a single | |||
| operation on the same connection, one response for each event as it | operation on the same connection, one response for each event as it | |||
| occurs. Without their continual persuasion, we would not have | occurs. Without their continual persuasion, we would not have | |||
| arrived at this Delivery Method specification and would not have been | arrived at this Delivery Method specification and would not have been | |||
| able to agree on a single REQUIRED Delivery Method for IPP. | able to agree on a single REQUIRED Delivery Method for IPP. | |||
| Carl Kugler | Carl Kugler | |||
| IBM | IBM | |||
| P.O. Box 1900 | P.O. Box 1900 | |||
| Boulder, CO 80301-9191 | Boulder, CO 80301-9191 | |||
| Phone: | Phone: | |||
| Fax: | Fax: | |||
| e-mail: kugler@us.ibm.com | e-mail: kugler@us.ibm.com | |||
| 20 Authors' Addresses | 20 Authors' 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 | |||
| Thomas N. Hastings | Thomas N. 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 | |||
| email: hastings@cp10.es.xerox.com | email: hastings@cp10.es.xerox.com | |||
| skipping to change at page 34, line 4 ¶ | skipping to change at page 31, line 26 ¶ | |||
| email: bob@herriot.com | email: bob@herriot.com | |||
| Thomas N. Hastings | Thomas N. 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 | |||
| email: hastings@cp10.es.xerox.com | email: hastings@cp10.es.xerox.com | |||
| Harry Lewis | Harry Lewis | |||
| IBM | IBM | |||
| P.O. Box 1900 | P.O. Box 1900 | |||
| Boulder, CO 80301-9191 | Boulder, CO 80301-9191 | |||
| Phone: 303-924-5337 | Phone: 303-924-5337 | |||
| FAX: | FAX: | |||
| e-mail: harryl@us.ibm.com | e-mail: harryl@us.ibm.com | |||
| IPP Web Page: http://www.pwg.org/ipp/ | ||||
| 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. | ||||
| 21 Description of Base IPP documents (Informative) | 21 Description of 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] | |||
| End of changes. 78 change blocks. | ||||
| 201 lines changed or deleted | 136 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/ | ||||