+++ /dev/null
-
-
-
-
-
-
-Network Working Group R. Herriot
-Request for Comments: 3996 Global Workflow Solutions
-Updates: 2911 T. Hastings
-Category: Standards Track Xerox Corp.
- H. Lewis
- IBM Corp.
- March 2005
-
-
- Internet Printing Protocol (IPP):
- The 'ippget' Delivery Method for Event Notifications
-
-Status of This Memo
-
- This document specifies an Internet standards track protocol for the
- Internet community, and requests discussion and suggestions for
- improvements. Please refer to the current edition of the "Internet
- Official Protocol Standards" (STD 1) for the standardization state
- and status of this protocol. Distribution of this memo is unlimited.
-
-Copyright Notice
-
- Copyright (C) The Internet Society (2005).
-
-Abstract
-
- This document describes an extension to the Internet Printing
- Protocol1.1: Model and Semantics (RFC 2911, RFC 2910). This document
- specifies the 'ippget' Pull Delivery Method for use with the
- "Internet Printing Protocol (IPP): Event Notifications and
- Subscriptions" specification (RFC 3995). This IPPGET Delivery Method
- is REQUIRED for all clients and Printers that support RFC 3995. The
- Notification Recipient, acting as a client, fetches (pulls) Event
- Notifications by using the Get-Notifications operation defined in
- this document.
-
-Table of Contents
-
- 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 3
- 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 2.1. Conformance Terminology . . . . . . . . . . . . . . . . 4
- 2.2. Other Terminology . . . . . . . . . . . . . . . . . . . 4
- 3. Model and Operation . . . . . . . . . . . . . . . . . . . . . 4
- 4. General Information . . . . . . . . . . . . . . . . . . . . . 5
- 5. Get-Notifications Operation . . . . . . . . . . . . . . . . . 7
- 5.1. Get-Notifications Request . . . . . . . . . . . . . . . 8
- 5.1.1. notify-subscription-ids (1setOf integer(1:MAX)) 8
- 5.1.2. notify-sequence-numbers (1setOf integer(1:MAX)) 9
-
-
-
-Herriot, et al. Standards Track [Page 1]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- 5.1.3. notify-wait (boolean) . . . . . . . . . . . . . 10
- 5.2. Get-Notifications Response. . . . . . . . . . . . . . . 10
- 5.2.1. notify-get-interval (integer(0:MAX)). . . . . . 13
- 5.2.2. printer-up-time (integer(1:MAX)). . . . . . . . 14
- 6. Additional Information about Subscription Template Attributes 17
- 6.1. notify-pull-method (type2 keyword). . . . . . . . . . . 17
- 7. Subscription Description Attributes . . . . . . . . . . . . . 18
- 8. Additional Printer Description Attributes . . . . . . . . . . 18
- 8.1. ippget-event-life (integer(15:MAX)) . . . . . . . . . . 18
- 9. New Values for Existing Printer Description Attributes. . . . 19
- 9.1. notify-pull-method-supported (1setOf type2 keyword) . . 19
- 9.2. operations-supported (1setOf type2 enum). . . . . . . . 19
- 10. New Status Codes. . . . . . . . . . . . . . . . . . . . . . . 19
- 10.1. successful-ok-events-complete (0x0007) . . . . . . . . 20
- 11. Encoding and Transport. . . . . . . . . . . . . . . . . . . . 20
- 12. Conformance Requirements. . . . . . . . . . . . . . . . . . . 21
- 12.1. Conformance for IPP Printers . . . . . . . . . . . . . 21
- 12.2. Conformance for IPP Clients. . . . . . . . . . . . . . 22
- 13. Normative References. . . . . . . . . . . . . . . . . . . . . 23
- 14. Informative References. . . . . . . . . . . . . . . . . . . . 23
- 15. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
- 15.1. Attribute Registrations. . . . . . . . . . . . . . . . 24
- 15.2. Delivery Method and Additional Keyword Attribute Value
- registrations for Existing Attributes. . . . . . . . . 24
- 15.3. Additional Enum Attribute Values . . . . . . . . . . . 25
- 15.4. Operation Registrations. . . . . . . . . . . . . . . . 25
- 15.5. Status Code Registrations. . . . . . . . . . . . . . . 25
- 16. Internationalization Considerations . . . . . . . . . . . . . 25
- 17. Security Considerations . . . . . . . . . . . . . . . . . . . 26
- 17.1. Notification Recipient Client Access Rights. . . . . . 26
- 17.2. Printer Security Threats . . . . . . . . . . . . . . . 27
- 17.3. Notification Recipient Security Threats. . . . . . . . 27
- 17.4. Security Requirements for Printers . . . . . . . . . . 27
- 17.5. Security Requirements for clients. . . . . . . . . . . 28
- 18. Description of Base IPP Documents (Informative) . . . . . . . 28
- 19. Contributors. . . . . . . . . . . . . . . . . . . . . . . . . 29
- Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30
- Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 31
-
-Table of Tables
-
- Table 1. Information about the Delivery Method. . . . . . . . . . 5
- Table 2. Combinations of "notify-wait", "status-code", and
- "notify-get-interval". . . . . . . . . . . . . . . . . . 13
- Table 3. Attributes in Event Notification Content . . . . . . . . 15
- Table 4. Additional Attributes in Event Notification Content for
- Job Events . . . . . . . . . . . . . . . . . . . . . . . 16
-
-
-
-
-Herriot, et al. Standards Track [Page 2]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- Table 5. Combinations of Events and Subscribed Events for "job-
- impressions-completed" . . . . . . . . . . . . . . . . . 17
- Table 6. Additional Attributes in Event Notification Content for
- Printer Events . . . . . . . . . . . . . . . . . . . . . 17
- Table 7. Operation-id Assignments . . . . . . . . . . . . . . . . 19
- Table 8. The "event-notification-attributes-tag" Value. . . . . . 21
-
-1. Introduction
-
- This document describes an extension to the Internet Printing
- Protocol/1.1: Model and Semantics [RFC 2911], [RFC 2910]. This
- document specifies the 'ippget' Pull Delivery Method for use with the
- "Internet Printing Protocol (IPP): Event Notifications and
- Subscriptions" specification [RFC3995]. This IPPGET Delivery Method
- is REQUIRED for all clients and Printers that support [RFC3995]. The
- Notification Recipient, acting as a client, fetches (pulls) Event
- Notifications by using the Get-Notifications operation defined in
- this document. For a description of the base IPP documents, see
- section 21 of this document. For a description of the IPP Event
- Notification Model, see [RFC3995].
-
- With this Pull Delivery Method, when an Event occurs, the Printer
- saves the Event Notification for a period of time called the Event
- Life. The Notification Recipient fetches (pulls) the Event
- Notifications by using the Get-Notifications operation. This
- operation causes the Printer to return all Event Notifications held
- for the specified Subscription object(s). If the Notification
- Recipient has selected the Event Wait Mode option to wait for
- additional Event Notifications, the Printer MAY continue to return
- Event Notifications to the Notification Recipient as asynchronous
- Get-Notification responses as Events occur using the transaction
- originated by the Notification Recipient.
-
- The Notification Recipient can terminate Event Wait Mode (without
- closing the connection) by supplying the "notify-wait" (boolean)
- attribute with a 'false' value in a subsequent Get-Notifications
- request. Similarly, the Printer can terminate Event Wait Mode
- (without closing the connection) by returning the "notify-get-
- interval" (integer) operation attribute in a Get-Notifications
- response that tells the Notification Recipient how long to wait
- before trying again.
-
-2. Terminology
-
- This section defines the following terms that are used throughout
- this document:
-
-
-
-
-
-Herriot, et al. Standards Track [Page 3]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
-2.1. Conformance Terminology
-
- Capitalized terms such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD
- NOT, MAY, NEED NOT, and OPTIONAL have special meaning relating to
- conformance as defined in [RFC2119] and [RFC2911], section 12.1. If
- an implementation supports the extension defined in this document,
- then these terms apply; otherwise, they do not. These terms define
- conformance to this document only; they do not affect conformance to
- other documents, unless it is explicitly stated otherwise.
-
-2.2. Other terminology
-
- This document uses the same terminology as [RFC2911], including
- "client", "Printer", "Job", "attribute", "attribute value",
- "keyword", "operation", "request", "response", and "support", with
- the same meanings. This document also uses terminology defined in
- [RFC3995], such as "Subscription (object)", "Notification Recipient",
- "Event", "Event Notification", "Compound Event Notification", "Event
- Life", and "Event Notification Attribute Group", with the same
- meanings. In addition, this document defines the following terms for
- use in this document:
-
- Event Wait Mode: The mode requested by a Notification Recipient
- client in its Get-Notifications Request and granted by a Printer
- to keep the connection open while the Printer sends subsequent
- Get-Notification operation responses to the Notification
- Recipient in the form of Event Notifications as they occur.
-
-3. Model and Operation
-
- In a Subscription Creation Operation, when the "notify-pull-method"
- attribute is present and has the "ippget" keyword value, the client
- is requesting that the Printer use the "ippget" Pull Delivery Method
- for the Event Notifications associated with the new Subscription
- Object.
-
- When an Event occurs, the Printer MUST generate an Event Notification
- and MUST assign it the Event Life. The Printer MUST hold an Event
- Notification for its assigned Event Life.
-
- When a Notification Recipient wants to receive Event Notifications
- for a Subscription object, it performs the Get-Notifications
- operation supplying the Subscription object's subscription-id, which
- causes the Printer to return all un-expired Event Notifications held
- for that Subscription object. If the Notification Recipient has
- selected the Event Wait Mode option to wait for additional Event
- Notifications, the response to the Get-Notifications request
- continues indefinitely as the Printer continues to send Event
-
-
-
-Herriot, et al. Standards Track [Page 4]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- Notifications in the response as Events occur for that Subscription
- object.
-
- When the Notification Recipient requests Event Notifications for
- Per-Job Subscription Objects, the Notification Recipient typically
- performs the Get-Notifications operation within a second of
- performing the Subscription Creation operation. Because the Printer
- MUST save Event Notifications for at least 15 seconds (see section
- 8.1), the Notification Recipient is unlikely to miss any Event
- Notifications that occur between the Subscription Creation and the
- Get-Notifications operation.
-
- The 'ippget' Delivery Method is designed primarily for (1) a client
- that wants to get Events (from the job's Per-Job Subscription object)
- for a job that it has submitted and (2) a privileged client that
- wants to get all job or printer Events from a Per-Printer
- Subscription object.
-
-4. General Information
-
- If a Printer supports this Delivery Method, the following are its
- characteristics.
-
- Table 1. Information about the Delivery Method
-
- Document Method Conformance Requirement Delivery Method
- Realization
-
- 1. What is the URL scheme name for the 'ippget' keyword method
- Push Delivery Method, or the keyword name
- method name for the Pull Delivery
- Method?
-
- 2. Is the Delivery Method REQUIRED, REQUIRED
- RECOMMENDED, or OPTIONAL for an IPP
- Printer to support?
-
- 3. What transport and delivery protocols IPP with one new
- does the Printer use to deliver the operation.
- Event Notification Content; i.e.,
- what is the entire network stack?
-
- 4. Can several Event Notifications be Yes.
- combined into a Compound Event
- Notification?
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 5]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- 5. Is the Delivery Method initiated by This Delivery Method is
- the Notification Recipient (pull), a pull method with
- or by the Printer (push)? aspects of a push
- method, though the
- Printer does not
- initiate the operation.
-
- 6. Is the Event Notification content Machine Consumable.
- Machine Consumable or Human
- Consumable?
-
- 7. What section in this document answers Section 5.
- the following questions? For a Machine
- Consumable Event Notification, what is
- the representation and encoding of
- values defined in section 9.1 of
- [RFC3995], and what are the
- conformance requirements thereof? For
- a Human Consumable Event Notification,
- what is the representation and
- encoding of pieces of information
- defined in section 9.2 of
- [RFC3995], and the conformance
- requirements thereof?
-
- 8. What are the latency and reliability Same as IPP and the
- of the transport and delivery underlying HTTP
- protocol? transport.
-
- 9. What are the security aspects of the Same as IPP and the
- transport and delivery protocol; underlying HTTP
- e.g., how it is handled in transport and in the
- firewalls? same direction, so no
- new firewall
- considerations.
-
- 10. What are the content length None.
- restrictions?
-
- 11. What are the additional values or None.
- pieces of information that a Printer
- sends in an Event Notification content
- and the conformance requirements
- thereof?
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 6]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- 12. What are the additional Subscription None.
- Template and/or Subscription
- Description attributes and the
- conformance requirements thereof?
-
- 13. What are the additional Printer "ipp-event-life"
- Description attributes and the (integer (15: MAX))
- conformance requirements thereof?
-
-5. Get-Notifications Operation
-
- This operation is issued by a client acting in the role of a
- Notification Recipient requesting the Printer to return all Event
- Notifications held for the identified Subscription object(s).
-
- A Printer MUST support this operation, MUST accept the request in any
- state (see [RFC2911] "printer-state" and "printer-state-reasons"
- attributes), and MUST remain in the same state with the same
- "printer-state-reasons" values.
-
- When a Printer performs this operation, it MUST return all and only
- those Event Notifications
-
- 1. whose associated Subscription Object's "notify-subscription-id"
- Subscription Description attribute equals one of the values of
- the "notify-subscription-ids" (1setOf integer(1:MAX)) operation
- attribute AND
-
- 2. whose associated Subscription Object contains the "notify-pull-
- method" attribute and it has the 'ippget' keyword value, AND
-
- 3. whose "notify-sequence-number" is equal to or greater than the
- corresponding value of the "notify-sequence-numbers" (1setOf
- integer(1:MAX)) operation attribute if supplied AND
-
- 4. whose Event Life has not yet expired AND
-
- 5. where the Notification Recipient client has read-access rights to
- the identified Subscription Object (see Access Rights paragraph
- below).
-
- The Notification Recipient client MUST either (a) request Event Wait
- Mode by supplying the "notify-wait" operation attribute with a 'true'
- value or (b) suppress Event Wait Mode by omitting the "notify-wait"
- operation attribute or by supplying it with a 'false' value. To
- terminate Event Wait Mode subsequently, the Notification Recipient
- client MUST close the connection. To terminate Event Wait Mode, the
- Printer MUST either (a) return the "notify-get-interval" operation
-
-
-
-Herriot, et al. Standards Track [Page 7]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- attribute in a Get-Notifications response (RECOMMENDED behavior) or
- (b) close the connection. The "notify-get-interval" operation
- attributes tell the Notification Recipient how long to wait before
- trying a subsequent Get-Notifications request.
-
- Access Rights: The authenticated user (see [RFC2911], section 8.3)
- performing this operation MUST be (1) the owner of each Subscription
- Object identified by the "notify-subscription-ids" operation
- attribute (see section 5.1.1), (2) an operator or administrator of
- the Printer (see [RFC2911], sections 1 and 8.5), or (3) otherwise
- authorized by the Printer's administrator-configured security policy
- to request Event Notifications from the target Subscription
- Object(s). Otherwise, the IPP Printer MUST reject the operation and
- return: 'client-error-forbidden', 'client-error-not-authenticated',
- or 'client-error-not-authorized' status code, as appropriate.
- Furthermore, the Printer's security policy MAY limit the attributes
- returned by the Get-Notifications operation, in a manner similar to
- that of the Get-Job-Attributes operation (see [RFC2911], end of
- section 3.3.4.2).
-
-5.1. Get-Notifications Request
-
- The following groups of attributes are part of the Get-Notifications
- Request:
-
- Group 1: Operation Attributes
-
- Natural Language and Character Set:
- The "attributes-charset" and "attributes-natural-language"
- attributes, as described in [RFC2911], section 3.1.4.1.
-
- Target:
- The "printer-uri" (uri) operation attribute that is the target
- for this operation as described in [RFC2911], section 3.1.5.
-
- Requesting User Name:
- The "requesting-user-name" (name(MAX)) attribute SHOULD be
- supplied by the client as described in [RFC2911], section 8.3.
-
-5.1.1. notify-subscription-ids (1setOf integer(1:MAX))
-
- This attribute identifies one or more Subscription objects for which
- Events are requested. The client MUST supply this attribute with at
- least one value. The Printer object MUST support this attribute with
- multiple values.
-
- If no Subscription Object exists with the supplied identifier, or if
- the identified Subscription Object does not contain the "notify-
-
-
-
-Herriot, et al. Standards Track [Page 8]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- pull-method" attribute with the 'ippget' keyword value, the Printer
- MUST return the 'client-error-not-found' status code.
-
- Note: The name of both the "notify-subscription-ids" and
- "notify-sequence-numbers" end in 's', as they are multi-valued.
- However, there are other occurrences of these attribute names
- without the 's' that are single valued.
-
-5.1.2. notify-sequence-numbers (1setOf integer(1:MAX))
-
- This attribute specifies one or more of the lowest Event Notification
- sequence number values for the Subscription objects identified by the
- corresponding values of the "notify-subscription-ids" operation
- attribute. The Notification Recipient SHOULD supply this attribute,
- and the number of values SHOULD be the same as that of the "notify-
- subscriptions-ids" attribute. The Printer MUST support this
- attribute with multiple values.
-
- The Printer MUST NOT return Notification Events with lower sequence
- numbers for the corresponding Subscription object. Therefore, by
- supplying the proper values for this attribute the Notification
- Recipient can prevent getting the same Event Notifications from a
- Subscription object that were returned on a previous Get-
- Notifications request. The Notification Recipient SHOULD remember
- the highest "notify-sequence-number" value returned for each
- Subscription object requested and SHOULD pass that value for each
- requested Subscription object on the next Get-Notifications request.
-
- If the Notification Recipient supplies fewer values for this
- attribute (including omitting this attribute) than it does for the
- "notify-subscription-ids" operation attribute, the Printer assumes a
- '1' value for each missing value. A value of '1' causes the Printer
- to return any un-expired Event Notification for that Subscription
- object, as '1' is the lowest possible sequence number. If the
- Notification Recipient supplies more values for this attribute than
- the number of values for the "notify-subscription-ids" operation
- attribute, the Printer ignores the extra values.
-
- Note: If a Notification Recipient performs two consecutive Get-
- Notifications operations with the same value for "notify-sequence-
- number" (or omits the attribute), the time stamp value of the first
- Event Notification in the second Get-Notifications Response may be
- less than that of the time stamp of the last Event Notification in
- the first Get-Notification Response. This happens because the
- Printer sends all unexpired Event Notifications with an equal or
- higher sequence number according to the ordering specified in
- [RFC3995], and some Event Notifications from the first Get-
-
-
-
-
-Herriot, et al. Standards Track [Page 9]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- Notifications operation may not have expired by the time the second
- Get-Notifications operation occurs.
-
-5.1.3. notify-wait (boolean)
-
- This value indicates whether the Notification Recipient wants Event
- Wait Mode. The client MAY supply this attribute. The Printer object
- MUST support both values of this attribute.
-
- If the client supplies the 'false' value or omits this attribute, the
- client is not requesting Event Wait Mode. If the value is 'true',
- the client is requesting Event Wait Mode. See the beginning of
- section 5.2 for the rules for Event Wait Mode.
-
-5.2. Get-Notifications Response
-
- The Printer has the following options for responding to a Get-
- Notifications Request:
-
- 1. The Printer can reject the request and return the 'server-error-
- busy' status code if the Printer is too busy to accept this
- operation at this time. In this case, the Printer MUST return
- the "get-notify-interval" operation attribute to indicate when
- the client SHOULD try again.
-
- 2. If the Notification Recipient did not request Event Wait Mode
- ("notify-wait-mode" = 'false' or omitted), the Printer MUST
- immediately return whatever Event Notifications it currently
- holds in the requested Subscription object(s) and MUST return the
- "notify-get-interval" operation attribute with the number of
- seconds from now, at which the Notification Recipient SHOULD
- repeat the Get-Notifications Request to get future Event
- Notifications.
-
- 3. If the Notification Recipient requested Event Wait Mode
- ("notify-wait-mode" = 'true'), the Printer MUST immediately
- return whatever Event Notifications it currently holds in the
- requested Subscription object(s) and MUST continue to return
- Event Notifications as they occur until all the requested
- Subscription Objects are canceled. A Subscription Object is
- canceled either via the Cancel-Subscription operation or by the
- Printer (e.g., the Subscription Object is canceled when the
- associated Job completes and is no longer in the Job Retention or
- Job History phase; see the "ippget-event-life (integer(15:MAX))"
- attribute discussion in section 8.1).
-
- However, the Printer MAY decide to terminate Event Wait Mode at
- any time, including in the first response. In this case, the
-
-
-
-Herriot, et al. Standards Track [Page 10]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- Printer MUST return the "notify-get-interval" operation
- attribute. This attribute indicates that the Printer wishes to
- leave Event Wait Mode and the number of seconds in the future
- that the Notification Recipient SHOULD try the Get-Notifications
- operation again. The Notification Recipient MUST accept this
- response and MUST disconnect. If the Notification Recipient does
- not disconnect, the Printer SHOULD do so.
-
- From the Notification Recipient's view, the response appears as an
- initial burst of data, which includes the Operation Attributes Group
- and one Event Notification Attributes Group per Event Notification
- that the Printer is holding. After the initial burst of data, if the
- Notification Recipient has selected the Event Wait Mode option to
- wait for additional Event Notifications, the Notification Recipient
- receives occasional Event Notification Attribute Groups. Proxy
- servers may delay some Event Notifications or cause time-outs to
- occur. The client MUST be prepared to perform the Get-Notifications
- operation again when time-outs occur.
-
- Each attribute is encoded by using the IPP rules for encoding
- attributes [RFC2910] and MAY be encoded in any order. Note: the
- Get-Jobs response in [RFC2911] acts as a model for encoding multiple
- groups of attributes. See section 11 for the encoding and transport
- rules.
-
- The following groups of attributes are part of the Get-Notifications
- Response:
-
- Group 1: Operation Attributes
-
- Status Message: In addition to the REQUIRED status code returned
- in every response, the response OPTIONALLY includes a "status-
- message" (text(255)) and/or a "detailed-status-message"
- (text(MAX)) operation attribute, as described in [RFC2911],
- sections 13 and 3.1.6.
-
- The Printer can return any status codes defined in [RFC2911].
- If the status code is not 'successful-xxx', the Printer MUST
- NOT return any Event Notification Attribute groups. The
- following are descriptions of the important status codes:
-
- successful-ok: The response contains all Event Notification
- associated with the specified subscription-ids that had
- been supplied in the "notify-subscription-ids" operation
- attribute in the request. If the requested Subscription
- Objects have no associated Event Notification, the
- response MUST contain zero Event Notifications.
-
-
-
-
-Herriot, et al. Standards Track [Page 11]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- successful-ok-events-complete: Indicates when this return
- is the last return for all Subscription objects that
- match the request, whether or not Event Notifications are
- returned. This condition occurs for Event Wait Mode with
- Notification Recipients waiting for responses when (1)
- the Subscription Object is canceled with a Cancel-
- Subscription operation, (2) the Subscription Object is
- deleted, when the Per-Printer Subscription lease time
- expires, or (3) the 'job-completed' event occurs for a
- Per-Job Subscription. This condition also occurs for a
- Get-Notifications request that a Notification Recipient
- makes after the job completes, but before the Event Life
- expires. See section 10.1.
- client-error-not-found: The Printer has no Subscription
- Objects whose "notify-subscription-id" attribute equals
- any of the values of the "notify-subscription-ids"
- operation attribute supplied, or the identified
- Subscription Object does not contain the "notify-pull-
- method" attribute with the 'ippget' keyword value.
- server-error-busy: The Printer is too busy to accept this
- operation. The Printer SHOULD return the "notify-get-
- interval" operation attribute in the Operation Attributes
- of the response; then the Notification Recipient SHOULD
- wait for the number of seconds specified by the "notify-
- get-interval" operation attribute before performing this
- operation again. If the "notify-get-interval" Operation
- Attribute is not present, the Notification Recipient
- SHOULD use the normal network back-off algorithms to
- determine when to perform this operation again.
-
- Natural Language and Character Set:
- The "attributes-charset" and "attributes-natural-language"
- attributes, as described in [RFC2911], section 3.1.4.2.
-
- The Printer MUST use the values of "notify-charset" and
- "notify-natural-language", respectively, from one Subscription
- Object associated with the Event Notifications in this
- response.
-
- Normally, there is only one matched Subscription Object, or the
- value of the "notify-charset" and "notify-natural-language"
- attributes is the same in all Subscription Objects. If not,
- the Printer MUST pick one Subscription Object from which to
- obtain the value of these attributes. The algorithm for
- picking the Subscription Object is implementation dependent.
- The choice of natural language is not critical, because 'text'
- and 'name' values can override the "attributes-natural-
- language" operation attribute. The Printer's choice of charset
-
-
-
-Herriot, et al. Standards Track [Page 12]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- is critical because a bad choice may leave it unable to send
- some 'text' and 'name' values accurately.
-
-5.2.1. notify-get-interval (integer(0:MAX))
-
- The value of this operation attribute is the number of seconds that
- the Notification Recipient SHOULD wait before trying the Get-
- Notifications operation again. The Printer MUST return this
- operation attribute if (1) it is too busy to return events, (2) the
- Notification Recipient client did not request Event Wait Mode, or (3)
- the Printer is terminating Event Wait Mode. The client MUST accept
- this attribute and SHOULD reissue the Get-Notifications operation
- (with or without "notify-wait" = 'true') at the indicated number of
- seconds in the future in order to get more Event Notifications This
- value is intended to help the client be a good network citizen.
-
- The value of this attribute MUST be at least as large as that of the
- Printer's "ippget-event-life" Printer Description attribute (see
- section 8.1). The Printer MAY return a value that is larger than
- that of the "ippget-event-life" Printer Description attribute
- provided that the Printer increases the Event Life for this
- Subscription object so that Notification Recipients taking account of
- the larger value and polling with a longer interval will not miss
- events. Note: Implementing such an algorithm requires some hidden
- attributes in the Subscription object that are IMPLEMENTATION
- DEPENDENT.
-
- If the Printer wants to remain in Event Wait Mode, then the Printer
- MUST NOT return this attribute in the response.
-
- Here is a complete table of combinations of "notify-wait", "status-
- code", "notify-get-interval", and Event Notification Attributes
- Groups for Get-Notification initial (Wait and No Wait) Responses and
- subsequent Event Wait Mode Responses (which may stay in Event Wait
- Mode or may request the Notification Recipient to leave Event Wait
- Mode):
-
- Table 2. Combinations of "notify-wait", "status-code", and
- "notify-get-interval"
-
- Client sends: Printer returns: Printer Event
- returns: Notification
- "notify-wait" "status-code" "notify-get- Attribute
- 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
-
-
-
-Herriot, et al. Standards Track [Page 13]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- 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
- maybe other
- * 'false' or client omits the "notify-wait" attribute.
-
- Explanation:
-
- 1-4: Client does not request Event Wait Mode.
- 5-9: Client requests Event Wait Mode.
- 2,7: Subscription object not found, or was canceled earlier;
- client should NOT try again.
- 3,8: Server busy, tells client to try later; client should try
- again in N seconds.
- 4: Client polled after job completed, but before Event Life
- expired, and got the 'job-completed' event, so the client
- shouldn't bother trying again; client should NOT try
- again later.
- 5: Printer returns one or more Event Notifications and is OK
- to stay in Event Wait Mode; the client waits for more
- Event Notifications to be returned.
- 6: Printer wants to leave Event Wait mode. Can happen on
- the first response (with or without Event Notifications)
- or happen on a subsequent response with or without Event
- Notifications; the client SHOULD try again in N seconds.
- 9: Either (1) the printer returns 'job-completed' event, or
- (2) the Subscription Object was canceled by either a
- Cancel-Job or a Per-Printer Subscription expired without
- being renewed. For case (1), at least one Event
- Notification MUST be returned; for case (2), it is
- unlikely that any Event Notifications are returned, and
- the client should NOT try again.
-
-5.2.2. printer-up-time (integer(1:MAX))
-
- The value of this attribute is the Printer's "printer-up-time"
- attribute at the time when the Printer sends this response. The
- Printer MUST return this attribute. Because each Event Notification
- also contains the value of this attribute when the event occurred,
- the value of this attribute lets a Notification Recipient know when
- each Event Notification occurred relative to the time of this
- response.
-
-
-
-
-Herriot, et al. Standards Track [Page 14]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- Group 2: Unsupported Attributes
- See [RFC2911], section 3.1.7, for details on returning
- Unsupported Attributes.
-
- Group 3 through N: Event Notification Attributes
- The Printer responds with one Event Notification Attributes
- Group per matched Event Notification. The entire response is
- considered a single Compound Event Notification (see
- [RFC3995]). The matched Event Notifications are all un-expired
- Event Notifications associated with the matched Subscription
- Objects and MUST follow the "Event Notification Ordering"
- requirements for Event Notifications within a Compound Event
- Notification specified in [RFC3995] section 9. In other words,
- the Printer MUST order these Event Notification groups in
- ascending time stamp (and sequence number) order for a
- Subscription object. If Event Notifications for multiple
- Subscription objects are being returned, the Notification
- Events for the next Subscription object follow in ascending
- time stamp order, etc.
-
- Each Event Notification Group MUST contain all of attributes
- specified in section 9.1 ("Content of Machine Consumable Event
- Notifications") of [RFC3995], with exceptions denoted by
- asterisks in the tables below.
-
- The tables below are identical to those in section 9.1
- ("Content of Machine Consumable Event Notifications") of
- [RFC3995], except that each cell in the "Sends" column is a
- "MUST".
-
- If more than one Event Notification is being returned and the
- status of each is not the same, then the Printer MUST return a
- "notify-status-code" attribute in each Event Notification
- Attributes group to indicate the differing status values.
-
- For an Event Notification for all Events, the Printer includes
- the attributes shown in Table 3.
-
- Table 3. Attributes in Event Notification Content
-
- Source Value Sends Source Object
-
- notify-subscription-id (integer(1:MAX)) MUST Subscription
- notify-printer-uri (uri) MUST Subscription
- notify-subscribed-event (type2 keyword) MUST Event
- Notification
- printer-up-time (integer(1:MAX)) * MUST Printer
- printer-current-time (dateTime) MUST ** Printer
-
-
-
-Herriot, et al. Standards Track [Page 15]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- notify-sequence-number (integer (0:MAX)) MUST Subscription
- notify-charset (charset) MUST Subscription
- notify-natural-language (naturalLanguage) MUST Subscription
- notify-user-data (octetString(63)) MUST *** Subscription
- notify-text (text) MUST Event
- Notification
- attributes from the "notify-attributes" MUST **** Printer
- attribute
- attributes from the "notify-attributes" MUST **** Job
- attribute
- attributes from the "notify-attributes" MUST **** Subscription
- attribute
-
- * As specified in [RFC3995] section 9, the value of the
- "printer-up-time" attribute sent in each Event Notification
- MUST be the time at which the Event occurred, not the time at
- which the Event Notification was sent.
-
- ** The Printer MUST send the "printer-current-time" attribute
- if and only if it supports the "printer-current-time" attribute
- on the Printer object.
-
- *** If the associated Subscription Object does not contain a
- "notify-user-data" attribute, the Printer MUST send an
- octet-string of length 0.
-
- **** If the "notify-attributes" attribute is present on the
- Subscription Object, the Printer MUST send all attributes
- specified by the "notify-attributes" attribute. Note: If the
- Printer doesn't support the "notify-attributes" attribute, it
- is not present on the associated Subscription Object.
-
- For Event Notifications for Job Events, the Printer includes
- the additional attributes shown in Table 4.
-
- Table 4. Additional Attributes in Event Notification Content for
- Job Events
-
- Source Value Sends Source Object
-
- job-id (integer(1:MAX)) MUST Job
- job-state (type1 enum) MUST Job
- job-state-reasons (1setOf type2 keyword) MUST Job
- job-impressions-completed (integer(0:MAX)) MUST * Job
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 16]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- * The Printer MUST send the "job-impressions-completed" attribute
- in an Event Notification only for the combinations of Events and
- Subscribed Events shown in Table 5.
-
- Table 5. Combinations of Events and Subscribed Events for
- "job-impressions-completed"
-
- Job Event Subscribed Job Event
-
- 'job-progress' 'job-progress'
- 'job-completed' 'job-completed'
- 'job-completed' 'job-state-changed'
-
- For Event Notification for Printer Events, the Printer includes
- the additional attributes shown in Table 6.
-
- Table 6. Additional Attributes in Event Notification Content for
- Printer Events
-
- Source Value Sends Source
- Object
-
- printer-state (type1 enum) MUST Printer
- printer-state-reasons (1setOf type2 keyword) MUST Printer
- printer-is-accepting-jobs (boolean) MUST Printer
-
-6. Additional Information about Subscription Template Attributes
-
- The 'ippget' Delivery Method does not define any addition
- Subscription Template attributes and has the conformance requirements
- for Subscription Template attributes defined in [RFC3995]. This
- section defines additional information about Subscription Template
- attributes defined in [RFC3995].
-
-6.1. notify-pull-method (type2 keyword)
-
- This Subscription Template attribute identifies the Pull Delivery
- Method to be used for the Subscription Object (see [RFC3995]). To
- support the 'ippget' Pull Delivery Method defined in this document,
- the Printer MUST support this attribute with the following keyword
- value:
-
- 'ippget': Indicates that the 'ippget' Pull Delivery Method is to
- be used for this Subscription Object.
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 17]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
-7. Subscription Description Attributes
-
- The 'ippget' Delivery Method has the conformance requirements for
- Subscription Description attributes defined in [RFC3995]. The
- 'ippget' Delivery Method does not define any addition Subscription
- Description attributes.
-
-8. Additional Printer Description Attributes
-
- This section defines additional Printer Description attributes for
- use with the 'ippget' Delivery Method.
-
-8.1. ippget-event-life (integer(15:MAX))
-
- This Printer Description attribute specifies the Event Life value
- that the Printer assigns to each Event; i.e., the number of seconds
- after an Event occurs during which a Printer will return that Event
- in an Event Notification in a Get-Notifications response. After the
- Event Life expires for the Event, the Printer MAY no longer return an
- Event Notification for that Event in a Get-Notifications response.
-
- The Printer MUST support this attribute if it supports the 'ippget'
- 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
- Monitoring MIB [RFC2707] jmGeneralJobPersistence and
- jmGeneralAttributePersistence objects.
-
- For example, assume the following:
-
- 1. A client performs a Job Creation operation that creates a
- Subscription Object associated with the 'ippget' Delivery Method;
-
- 2. An Event associated with the new Job occurs immediately after the
- Subscription Object is created;
-
- 3. the same client or some other client performs a Get-Notifications
- operation so that the client is connected N seconds after the Job
- Creation operation.
-
- Then, if N is less than the value of this attribute, the client(s)
- performing the Get-Notifications operations can expect not to miss
- any Event-Notifications, barring some unforeseen lack of memory space
- in the Printer. Note: The client MUST initiate the Get-
- Notifications at a time that is sufficiently less that N seconds to
- account for network latency so that it is connected to the Printer
- before N seconds elapses.
-
-
-
-
-
-Herriot, et al. Standards Track [Page 18]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- If a Printer supports the 'ippget' Delivery Method, it MUST keep
- 'completed', 'canceled', or 'aborted' Job objects in the Job
- Retention and/or Job History phases for at least as long as this
- attribute's value. The Printer MAY retain jobs longer that this
- value. See [RFC2911], section 4.3.7.1, and the discussion in
- [RFC3995] (regarding the 'job-completed' event). The latter explains
- that a Notification Recipient can query the Job after receiving a
- 'job-completed' Event Notification in order to find out other
- information about the job that is 'completed', 'aborted', or
- 'canceled'. However, this attribute has no effect on the Cancel-
- Subscription operation, which deletes the Subscription object
- immediately whether or not it contains the "notify-pull-method"
- attribute with the 'ippget' keyword value. Immediately thereafter,
- subsequent Get-Notifications Responses MUST NOT contain Event
- Notifications associated with the canceled Subscription object.
-
-9. New Values for Existing Printer Description Attributes
-
- This section defines additional values for existing Printer
- Description attributes as defined in [RFC3995].
-
-9.1. notify-pull-method-supported (1setOf type2 keyword)
-
- The following keyword value for the "notify-pull-method-supported"
- attribute is added in order to support the new Delivery Method
- defined in this document:
-
- 'ippget': The IPP Notification Pull Delivery Method defined in
- this document.
-
-9.2. operations-supported (1setOf type2 enum)
-
- Table 7 lists the "operation-id" value defined in order to support
- the new Get-Notifications operation defined in this document.
-
- Table 7. Operation-id Assignments
-
- Value Operation Name
-
- 0x001C Get-Notifications
-
-10. New Status Codes
-
- The following status code is defined as an extension for this
- 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).
-
-
-
-
-
-Herriot, et al. Standards Track [Page 19]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
-10.1. successful-ok-events-complete (0x0007)
-
- The Printer MUST return the 'successful-ok-events-complete' status
- code to indicate when this Get-Notifications response is the last
- response for a Subscription object, whether or not there are Event
- Notifications being returned. This condition occurs for Event Wait
- Mode with Notification Recipients waiting for responses when (1) the
- Subscription Object is canceled with a Cancel-Subscription operation,
- (2) the Subscription object is deleted, when the Per-Printer
- Subscription lease time expires, or (3) the 'job-completed' event
- occurs for a Per-Job Subscription. This condition also occurs for a
- Get-Notifications request that a Notification Recipient makes after
- the job completes, but before the Event Life expires.
-
-11. Encoding and Transport
-
- This section defines the encoding and transport considerations for
- this Delivery Method based on [RFC2910].
-
- The encoding of a Get-Notifications Response is modeled after the
- Get-Jobs Response (see [RFC2911]). In a Get-Notifications Response,
- each Event Notification Attributes Group MUST start with an 'event-
- notification-attributes-tag' (see the section "Encodings of
- Additional Attribute Tags" in [RFC3995]), and end with an 'end-of-
- attributes-tag'. In addition, for Event Wait Mode the multi-
- part/related is used to separate each multiple response (in time) to
- a single Get-Notifications Request.
-
- The Printer returns Get-Notification Response as follows:
-
- 1. If the Notification Recipient client did not request Event Wait
- Mode ("notify-wait" = 'false' or omitted), the Printer ends the
- response with an 'end-of-attributes-tag' (see [RFC2911], Get-Jobs
- encoding), as with any operation response.
-
- 2. If the Notification Recipient client requests Event Wait Mode
- ("notify-wait" = 'true') and the Printer wishes to honor the
- request, the Printer MUST return the response as an
- application/ipp part inside a multi-part/related MIME media type.
- When one or more additional Events occur, the Printer returns
- each as an additional Event Notification Group using a separate
- application/ipp part under the multi-part/related type.
-
- 3. If the client requested Event Wait Mode ("notify-wait" = 'true'),
- but the Printer does not wish to honor the request in the initial
- response and wants the client explicitly polled for Event
- Notifications, the Printer MUST return the "notify-get-interval"
- operation attribute (see section 5.2.1). The Printer returns the
-
-
-
-Herriot, et al. Standards Track [Page 20]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- response as an application/ipp part that MAY be inside an multi-
- part/related type. The client MUST accept this response and
- reissue the Get-Notifications request in the future indicated by
- the value of the "notify-get-interval" attribute value.
-
- 4. If the client requested Event Wait Mode ("notify-wait" = 'true'),
- and the Printer initially honored the request but later wishes to
- leave Event Wait Mode, the Printer MUST return the "notify-get-
- interval" operation attribute (see section 5.2.1). The Printer
- returns the response as an application/ipp part that MUST be
- inside an multi-part/related type.
-
- NOTE: If a Notification Recipient fails to receive a response, it
- can ask the Printer for the same Event Notifications again. The
- Notification Recipient will receive the same Event Notifications that
- it should have received the first time, except for those Event
- Notifications that have expired in the meantime.
-
- The Printer MAY chunk the responses, but this has no significance to
- the IPP semantics.
-
- This notification delivery method uses the IPP transport and encoding
- [RFC2910] for the Get-Notifications operation with the following
- extension, allocated in [RFC3995]:
-
- Table 8. The "event-notification-attributes-tag" Value
-
- Tag Value (Hex) Meaning
-
- 0x07 "event-notification-attributes-tag"
-
-12. Conformance Requirements
-
- This section lists the conformance requirements for clients and
- Printers.
-
-12.1. Conformance for IPP Printers
-
- It is OPTIONAL for a Printer to support IPP Notifications as defined
- in [RFC3995]. However, if a Printer supports IPP Notifications, the
- Printer MUST support the 'ippget' Delivery Method, as defined in this
- document, as one of its Delivery Methods. IPP Printers that conform
- to this specification
-
- 1. MUST meet the conformance requirements defined in [RFC3995] for a
- Pull Delivery Method;
-
-
-
-
-
-Herriot, et al. Standards Track [Page 21]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- 2. MUST support the Get-Notifications operation defined in section
- 5, including Event Wait Mode;
-
- 3. MUST support the Subscription Template object attributes, as
- defined in section 6;
-
- 4. MUST support the Subscription Description object attributes, as
- defined in section 7;
-
- 5. MUST support the "ippget-event-life" Printer Description
- attribute defined in section 8.1, including retaining jobs in the
- Job Retention and/or Job History phases for at least as long as
- the value specified by the Printer's "ippget-event-life";
-
- 6. MUST support the additional values for IPP/1.1 Printer
- Description attributes defined in section 9;
-
- 7. MUST support the 'successful-ok-events-complete' status code, as
- described in section 10.1;
-
- 8. MUST listen for the IPP Get-Notifications operation requests on
- IANA-assigned well-known port 631, unless explicitly configured
- by system administrators or site policies;
-
- 9. SHOULD NOT listen for IPP Get-Notifications operation requests on
- any other port, unless explicitly configured by system
- administrators or site policies; and
-
- 10. MUST meet the security conformance requirements stated in section
- 18.4.
-
-12.2. Conformance for IPP Clients
-
- It is OPTIONAL for an IPP Client to support IPP Notifications as
- defined in [RFC3995]. However, if a client supports IPP
- Notifications, the client MUST support the 'ippget' Delivery Method
- as defined in this document as one of its Delivery Methods. IPP
- Clients that conform to this specification:
-
- 1. MUST create Subscription Objects by sending Subscription Creation
- operation requests containing the "notify-pull-method" attribute
- (as opposed to the "notify-recipient-uri" attribute) using the
- 'ippget' keyword value (see sections 6.1 and 15.2);
-
- 2. MUST send IPP Get-Notifications operation requests (see section
- 5.1) via the port specified in the associated 'ipp' URL (if
- present) or otherwise via IANA-assigned well-known port 631;
-
-
-
-
-Herriot, et al. Standards Track [Page 22]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- 3. MUST convert the associated 'ipp' URLs for use in IPP Get-
- Notifications operation to their corresponding 'http' URL forms
- for use in the HTTP layer, according to the rules in section 5,
- "IPP URL Scheme", in [RFC2910]; and
-
- 4. MUST meet the security conformance requirements stated in section
- 18.5.
-
-13. Normative References
-
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
- Requirement Levels", BCP 14, RFC 2119, March 1997.
-
- [RFC2910] Herriot, R., Butler, S., Moore, P., Turner, R., and J.
- Wenn, "Internet Printing Protocol/1.1: Encoding and
- Transport", RFC 2910, September 2000.
-
- [RFC2911] Hastings, T., Herriot, R., deBry, R., Isaacson, S., and
- P. Powell, "Internet Printing Protocol/1.1: Model and
- Semantics", RFC 2911, September 2000.
-
- [RFC3995] Herriot, R. and T. Hastings, "Internet Printing Protocol
- (IPP): Event Notifications and Subscriptions", RFC 3995,
- March 2005.
-
-14. Informative References
-
- [RFC2565] Herriot, R., Butler, S., Moore, P., and R. Turner,
- "Internet Printing Protocol/1.0: Encoding and
- Transport", RFC 2565, April 1999.
-
- [RFC2566] deBry, R., Hastings, T., Herriot, R., Isaacson, S., and
- P. Powell, "Internet Printing Protocol/1.0: Model and
- Semantics", RFC 2566, April 1999.
-
- [RFC2567] Wright, F., "Design Goals for an Internet Printing
- Protocol", RFC 2567, April 1999.
-
- [RFC2568] Zilles, S., "Rationale for the Structure of the Model
- and Protocol for the Internet Printing Protocol", RFC
- 2568, April 1999.
-
- [RFC2569] Herriot, R., Hastings, T., Jacobs, N., and J. Martin,
- "Mapping between LPD and IPP Protocols", RFC 2569, April
- 1999.
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 23]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
- Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
- Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
-
- [RFC2707] Bergman, R., Hastings, T., Isaacson, S., and H. Lewis,
- "Job Monitoring MIB - V1.0", RFC 2707, November 1999.
-
- [RFC3196] Hastings, T., Manros, C., Zehler, P., Kugler, C., and H.
- Holst, "Internet Printing Protocol/1.1: Implementor's
- Guide", RFC 3196, November 2001.
-
- [RFC3997] Hastings, T., Ed., deBry, R., and H. Lewis, "Internet
- Printing Protocol (IPP): Requirements for IPP
- Notifications", RFC 3997, March 2005.
-
-15. IANA Considerations
-
- This section contains the exact information that the IANA has added
- to the IPP Registries according to the procedures defined in
- [RFC2911], section 6. These registrations have been published in the
- http://www.iana.org/assignments/ipp-registrations registry.
-
-15.1. Attribute Registrations
-
- The following table lists the attributes defined in this document.
- This has been registered according to the procedures in RFC 2911
- [RFC2911] section 6.2.
-
- Printer Description attributes: Reference Section
- ------------------------------- --------- -------
- ippget-event-life (integer(15:MAX)) [RFC3996] 8.1
-
-15.2. Delivery Method and Additional Keyword Attribute Value
- Registrations for Existing Attributes
-
- This section lists additional keyword attribute value registrations
- for use with existing attributes defined in other documents. These
- have been registered according to the procedures in [RFC2911],
- section 6.1. According to [RFC3995], section 24.7.3, Pull Delivery
- Method registrations are the keyword attribute value registrations
- for the "notify-pull-method" and "notify-pull-method-supported"
- attributes.
-
-
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 24]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- Attribute (attribute syntax)
- Values Reference Section
- ----------------------- --------- -------
- notify-pull-method (type2 keyword) [RFC3995] 5.3.2
- notify-pull-method-supported (1setOf type2 keyword)
- [RFC3995] 5.3.2.1
- ippget [RFC3996] 9.1
-
-15.3. Additional Enum Attribute Values
-
- The following table lists the enum attribute values defined in this
- document. These have been registered according to the procedures in
- [RFC2911], section 6.1.
-
- Attribute (attribute syntax)
- Value Name Reference Section
- ------ ----------------------------- --------- -------
- operations-supported (1setOf type2 enum) [RFC2911] 4.4.15
- 0x001C Get-Notifications [RFC3996] 9.2
-
-15.4. Operation Registrations
-
- The following table lists the operations defined in this document.
- This has been registered according to the procedures in RFC 2911
- [RFC2911] section 6.4.
-
- Operations: Reference Section
- ----------- --------- -------
- Get-Notifications [RFC3996] 5
-
-15.5. Status Code Registrations
-
- The following table lists the status codes defined in this document.
- This has been registered according to the procedures in [RFC2911],
- section 6.6.
-
- Status codes: Reference Section
- ------------- --------- -------
- successful-ok-events-complete (0x0007) [RFC3996] 10.1
-
-16. Internationalization Considerations
-
- The IPP Printer MUST localize the "notify-text" attribute as
- specified in section 14 of [RFC3995].
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 25]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- In addition, when the client receives the Get-Notifications response,
- it is expected to localize the attributes that have the 'keyword'
- attribute syntax according to the charset and natural language
- requested in the Get-Notifications request.
-
-17. Security Considerations
-
- The IPP Model and Semantics document [RFC2911, section 8] discusses
- high-level security requirements (Client Authentication, Server
- Authentication and Operation Privacy). The IPP Transport and
- Encoding document [RFC2910, section 8] discusses the security
- requirements for the IPP protocol. Client Authentication is the
- mechanism by which the client proves its identity to the server in a
- secure manner. Server Authentication is the mechanism by which the
- server proves its identity to the client in a secure manner.
- Operation Privacy is defined as a mechanism for protecting operations
- from eavesdropping.
-
- The 'ippget' Delivery Method with its Get-Notifications operations
- leverages the security mechanism that are used in IPP/1.1 [RFC2910
- and RFC2911] without adding any additional security mechanisms in
- order to maintain the same security support as IPP/1.1.
-
- The access control model for the Get-Notifications operation defined
- in this document is the same as the access control model for the
- Get-Job-Attributes operation (see [RFC2911], section 3.2.6). The
- primary difference is that a Get-Notifications operation is directed
- at Subscription Objects rather than at Job objects, and a returned
- attribute group contains Event Notification attributes rather than
- Job object attributes.
-
-17.1. Notification Recipient Client Access Rights
-
- The Notification Recipient client MUST have the following access
- rights to the Subscription object(s) targeted by the Get-
- Notifications operation request:
-
- The authenticated user (see [RFC2911], section 8.3) performing
- this operation MUST be (1) the owner of each Subscription Object
- identified by the "notify-subscription-ids" operation attribute
- (see section 5.1.1), (2) an operator or administrator of the
- Printer (see [RFC2911], sections 1 and 8.5), or (3) otherwise
- authorized by the Printer's administrator-configured security
- policy to request Event Notifications from the target Subscription
- Object(s). Furthermore, the Printer's security policy MAY limit
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 26]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- the attributes returned by the Get-Notifications operation, in a
- manner similar to that of the Get-Job-Attributes operation (see
- [RFC2911], end of section 3.3.4.2).
-
-17.2. Printer Security Threats
-
- Because the Get-Notifications operation is sent in the same direction
- as are Job Creation operations, usually by the same client, this
- Event Notification Delivery Method poses no additional
- authentication, authorization, privacy, firewall, or port assignment
- issues above those for the IPP Get-Job-Attributes and Get-Printer-
- Attributes operations (see [RFC2911], sections 3.2.6 and 3.2.5).
-
-17.3. Notification Recipient Security Threats
-
- Unwanted Events Notifications (spam): Unlike Push Event Notification
- Delivery Methods in which the IPP Printer initiates the Event
- Notification, with the Pull Delivery Method defined in this document,
- the Notification Recipient is the client that initiates the Get-
- Notifications operation (see section 5). Therefore, with this method
- there is no chance of "spam" notifications.
-
- Note: When a client stays connected to a Printer by using the Event
- Wait Mode (see section 5.1.3) in order to receive Event Notifications
- as they occur, it can close down the IPP connection at any time and
- so can avoid future unwanted Event Notifications at any time.
-
- It is true that the client has control over whether to ask for Event
- Notifications. However, if the client subscribes to an event and
- does a Get-Notifications request, it gets all events for the
- Subscription Object in the sequence number range (see section 5.1.2),
- not just those it wants. If a client subscribes to a Per-Printer
- Subscription job event, such as 'job-completed', and someone then
- starts and cancels thousands of jobs, the client would have to
- receive these events in addition to those it is interested in. A
- client can protect itself better by subscribing to its own jobs by
- using a Per-Job Subscription, rather than create a Per-Printer
- subscription whose Job events apply to all jobs.
-
-17.4. Security Requirements for Printers
-
- For the Get-Notifications operation defined in this document, the
- same Printer conformance requirements apply for supporting and using
- Client Authentication, Server Authentication and Operation Privacy as
- stated in [RFC2910] section 8 for all IPP operations.
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 27]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
-17.5. Security Requirements for Clients
-
- For the Get-Notifications operation defined in this document, the
- same client conformance requirements apply for supporting and using
- Client Authentication, Server Authentication, and Operation Privacy
- as stated in [RFC2910], section 8, for all IPP operations.
-
-18. Description of Base IPP Documents (Informative)
-
- The base set of IPP documents includes the following:
-
- Design Goals for an Internet Printing Protocol [RFC2567]
- Rationale for the Structure and Model and Protocol for the Internet
- Printing Protocol [RFC2568]
- Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
- Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
- Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
- Mapping between LPD and IPP Protocols [RFC2569]
-
- "Design Goals for an Internet Printing Protocol" takes a broad look
- at distributed printing functionality, and it enumerates real-life
- scenarios that help clarify the features that need to be included in
- a printing protocol for the Internet. It identifies requirements for
- three types of users: end users, operators, and administrators. It
- calls out a subset of end user requirements that are satisfied in
- IPP/1.0 [RFC2566, RFC2565]. A few OPTIONAL operator operations have
- been added to IPP/1.1.
-
- "Rationale for the Structure and Model and Protocol for the Internet
- Printing Protocol" describes IPP from a high-level view, defines a
- roadmap for the various documents that form the suite of IPP
- specification documents, and gives background and rationale for the
- IETF working group's major decisions.
-
- "Internet Printing Protocol/1.1: Model and Semantics" describes a
- simplified model with abstract objects, their attributes, and their
- operations that are independent of encoding and transport. It
- introduces a Printer and a Job object. The Job object optionally
- supports multiple documents per Job. It also addresses security,
- internationalization, and directory issues.
-
- "Internet Printing Protocol/1.1: Encoding and Transport" is a formal
- mapping of the abstract operations and attributes defined in the
- model document onto HTTP/1.1 [RFC2616]. It defines the encoding
- rules for a new Internet MIME media type called "application/ipp".
- This document also defines the rules for transporting over HTTP a
- message body whose Content-Type is "application/ipp". This document
- defines the 'ipp' scheme for identifying IPP printers and jobs.
-
-
-
-Herriot, et al. Standards Track [Page 28]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
- "Internet Printing Protocol/1.1: Implementer's Guide" gives insight
- and advice to implementers of IPP clients and IPP 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
- and/or IPP object implementations. For example, a typical order of
- processing requests is given, including error checking. Motivation
- for some of the specification decisions is also included.
-
- "Mapping between LPD and IPP Protocols" gives some advice to
- implementers of gateways between IPP and LPD (Line Printer Daemon)
- implementations.
-
-19. Contributors
-
- Carl Kugler and Harry Lewis contributed the basic idea of in-band
- "smart polling" coupled with multiple responses for a single
- operation on the same connection, with one response for each event as
- it occurs. Without their continual persuasion, we would not have
- arrived at this Delivery Method specification and would not have been
- able to agree on a single REQUIRED Delivery Method for IPP.
-
- Carl Kugler
- IBM Corporation
- 6300 Diagonal Highway
- Boulder, CO 80301
-
- EMail: kugler@us.ibm.com
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 29]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
-Authors' Addresses
-
- Robert Herriot
- Global Workflow Solutions
- 706 Colorado Ave.
- Palo Alto, CA 94303
-
- Phone: 650-324-4000
- EMail: bob@herriot.com
-
-
- Thomas N. Hastings
- Xerox Corporation
- 710 S Aviation Blvd. ESAE 242
- El Segundo CA 90245
-
- Phone: 310-333-6413
- Fax: 310-333-6342
- EMail: hastings@cp10.es.xerox.com
-
-
- Harry Lewis
- IBM Corporation
- 6300 Diagonal Hwy
- Boulder, CO 80301
-
- Phone: (303) 924-5337
- EMail: harryl@us.ibm.com
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 30]
-\f
-RFC 3996 IPP: The 'ippget' Delivery Method March 2005
-
-
-Full Copyright Statement
-
- Copyright (C) The Internet Society (2005).
-
- This document is subject to the rights, licenses and restrictions
- contained in BCP 78, and except as set forth therein, the authors
- retain all their rights.
-
- This document and the information contained herein are provided on an
- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
- ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
- INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-Intellectual Property
-
- The IETF takes no position regarding the validity or scope of any
- Intellectual Property Rights or other rights that might be claimed to
- pertain to the implementation or use of the technology described in
- this document or the extent to which any license under such rights
- might or might not be available; nor does it represent that it has
- made any independent effort to identify any such rights. Information
- on the procedures with respect to rights in RFC documents can be
- found in BCP 78 and BCP 79.
-
- Copies of IPR disclosures made to the IETF Secretariat and any
- assurances of licenses to be made available, or the result of an
- attempt made to obtain a general license or permission for the use of
- such proprietary rights by implementers or users of this
- specification can be obtained from the IETF on-line IPR repository at
- http://www.ietf.org/ipr.
-
- The IETF invites any interested party to bring to its attention any
- copyrights, patents or patent applications, or other proprietary
- rights that may cover technology that may be required to implement
- this standard. Please address the information to the IETF at ietf-
- ipr@ietf.org.
-
-Acknowledgement
-
- Funding for the RFC Editor function is currently provided by the
- Internet Society.
-
-
-
-
-
-
-
-Herriot, et al. Standards Track [Page 31]
-\f