< 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/