| < draft-ietf-ipp-indp-method-05.txt | draft-ietf-ipp-indp-method-06.txt > | |||
|---|---|---|---|---|
| INTERNET-DRAFT Hugo Parra | Internet Printing Protocol WG Hugo Parra | |||
| <draft-ietf-ipp-indp-method-05.txt> Novell, Inc. | INTERNET-DRAFT Novell, Inc. | |||
| [Target Category: standards track] Tom Hastings | <draft-ietf-ipp-indp-method-06.txt> Tom Hastings | |||
| Xerox Corp. | Updates: RFC 2910 and 2911 Xerox Corp. | |||
| April 5, 2001 | [Target Category: standards track] July 17, 2001 | |||
| Expires: January 17, 2002 | ||||
| Internet Printing Protocol (IPP): | Internet Printing Protocol (IPP): | |||
| The 'indp' Delivery Method for Event Notifications and Protocol/1.0 | The 'indp' Delivery Method for Event Notifications and Protocol/1.0 | |||
| Copyright (C) The Internet Society (2001). All Rights Reserved. | Copyright (C) The Internet Society (2001). 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 [RFC2026]. Internet-Drafts are | all provisions of Section 10 of [RFC2026]. Internet-Drafts are | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 39 ¶ | |||
| http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
| The list of Internet-Draft Shadow Directories can be accessed as | The list of Internet-Draft Shadow Directories can be accessed as | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| Abstract | Abstract | |||
| This document describes an extension to the Internet Printing | This document describes an extension to the Internet Printing | |||
| Protocol/1.0 (IPP) [RFC2566, RFC2565] and IPP/1.1 [RFC2911, RFC2910]. | Protocol/1.0 (IPP) [RFC2566, RFC2565] and IPP/1.1 [RFC2911, RFC2910]. | |||
| This document specifies the 'indp' Delivery Method and Protocol/1.0 | This document specifies the 'indp' Delivery Method and Protocol/1.0 | |||
| for use with the IPP Event Notification Specification [ipp-ntfy]. | for use with the "IPP Event Notifications and Subscriptions" | |||
| specification [ipp-ntfy]. When IPP Notification [ipp-ntfy] is | ||||
| supported, the Delivery Method defined in this document is one of the | ||||
| RECOMMENDED Delivery Methods for Printers to support. | ||||
| This Delivery Method is a simple protocol consisting of a single | This Delivery Method is a simple protocol consisting of a single | |||
| operation: the Send-Notifications operation which uses the same | operation: the Send-Notifications operation which uses the same | |||
| encoding and transport as IPP [RFC2565, RFC2910]. | encoding and transport as IPP [RFC2565, RFC2910]. For this Delivery | |||
| Method, when an Event occurs, the Printer immediately sends (pushes) | ||||
| For this Delivery Method, when an Event occurs, the Printer | an Event Notification via the Send-Notifications operation to the | |||
| immediately sends (pushes) an Event Notification via the Send- | Notification Recipient specified in the Subscription Object. The | |||
| Notifications operation to the Notification Recipient specified in | Event Notification content consists of Machine Consumable attributes | |||
| the Subscription Object. The Event Notification content consists of | and a Human Consumable "notify-text" attribute. The Notification | |||
| Machine Consumable attributes and a Human Consumable "notify-text" | Recipient returns a response to the Printer. | |||
| attribute. The Notification Recipient returns a response to the | ||||
| Printer. | ||||
| Table of Contents | Table of Contents | |||
| 1 Introduction....................................................4 | 1 Introduction.....................................................5 | |||
| 2 Terminology.....................................................4 | 2 Terminology......................................................6 | |||
| 3 Model and Operation.............................................5 | 3 Model and Operation..............................................6 | |||
| 4 General Information.............................................6 | 4 General Information..............................................7 | |||
| 5 Subscription object attributes..................................9 | 5 Subscription object attributes..................................10 | |||
| 5.1 Subscription Template Attribute Conformance..................9 | 5.1 Subscription Template Attribute Conformance...................10 | |||
| 5.2 Additional Information about Subscription Template Attributes9 | 5.2 Additional Information about Subscription Template Attributes.10 | |||
| 5.2.1 notify-recipient-uri (uri).................................9 | 5.2.1 notify-recipient-uri (uri)..................................10 | |||
| 5.3 Subscription Description Attribute Conformance...............9 | 5.3 Subscription Description Attribute Conformance................10 | |||
| 6 Printer Description Attributes..................................9 | 6 New Values for Existing Printer Description Attributes..........11 | |||
| 6.1 Printer Description Attribute Conformance...................10 | 6.1 notify-schemes-supported (1setOf uriScheme)...................11 | |||
| 6.2 New Values for Existing Printer Description Attributes......10 | 6.2 operations-supported (1setOf type2 enum)......................11 | |||
| 6.2.1 notify-schemes-supported (1setOf uriScheme)...............10 | ||||
| 6.2.2 operations-supported (1setOf type2 enum)..................10 | ||||
| 7 Attributes Only in Event Notifications.........................10 | 7 Attributes Only in Event Notifications..........................11 | |||
| 8 Operations for Notification....................................11 | 8 Operations for Notification.....................................12 | |||
| 8.1 Send-Notifications operation................................11 | 8.1 Send-Notifications operation..................................12 | |||
| 8.1.1 Send-Notifications Request................................11 | 8.1.1 Send-Notifications Request..................................12 | |||
| 8.1.2 Send-Notifications Response...............................15 | 8.1.2 Send-Notifications Response.................................17 | |||
| 9 Status Codes...................................................16 | 9 Status Codes....................................................18 | |||
| 9.1 Additional Status Codes.....................................16 | 9.1 Additional Status Codes.......................................18 | |||
| 9.1.1 successful-ok-ignored-notifications (0x0004)..............17 | 9.1.1 successful-ok-ignored-notifications (0x0004)................19 | |||
| 9.1.2 client-error-ignored-all-notifications (0x0416)...........17 | 9.1.2 client-error-ignored-all-notifications (0x0416).............19 | |||
| 9.2 Status Codes returned in Event Notification Attributes Groups17 | 9.2 Status Codes returned in Event Notification Attributes Groups.19 | |||
| 9.2.1 client-error-not-found (0x0406)...........................17 | 9.2.1 client-error-not-found (0x0406).............................19 | |||
| 9.2.2 successful-ok-but-cancel-subscription (0x0006)............18 | 9.2.2 successful-ok-but-cancel-subscription (0x0006)..............20 | |||
| 10 Encoding and Transport.........................................18 | 10 Encoding and Transport.........................................20 | |||
| 10.1 Encoding of the Operation Layer.............................18 | 10.1 Encoding of the Operation Layer..............................20 | |||
| 10.2 Encoding of Transport Layer.................................18 | 10.2 Encoding of Transport Layer..................................20 | |||
| 11 Conformance Requirements.......................................18 | 11 Conformance Requirements.......................................20 | |||
| 11.1 Conformance Requirements for Printers.......................19 | 11.1 Conformance Requirements for Printers........................21 | |||
| 11.2 Conformance Requirements for INDP Notification Recipients...19 | 11.2 Conformance Requirements for INDP Notification Recipients....21 | |||
| 12 INDP URL Scheme................................................20 | 12 INDP URL Scheme................................................22 | |||
| 12.1 INDP URL Scheme Applicability and Intended Usage............20 | 12.1 INDP URL Scheme Applicability and Intended Usage.............22 | |||
| 12.2 INDP URL Scheme Associated INDP Port........................20 | 12.2 INDP URL Scheme Associated INDP Port.........................22 | |||
| 12.3 INDP URL Scheme Associated MIME Type........................20 | 12.3 INDP URL Scheme Associated MIME Type.........................22 | |||
| 12.4 INDP URL Scheme Character Encoding..........................20 | 12.4 INDP URL Scheme Character Encoding...........................22 | |||
| 12.5 INDP URL Scheme Syntax in ABNF..............................21 | 12.5 INDP URL Scheme Syntax in ABNF...............................23 | |||
| 12.5.1 INDP URL Examples.........................................22 | 12.5.1 INDP URL Examples..........................................23 | |||
| 12.5.2 INDP URL Comparisons......................................22 | 12.5.2 INDP URL Comparisons.......................................24 | |||
| 13 IANA Considerations............................................22 | 13 IANA Considerations............................................24 | |||
| 13.1 Operation Registrations.....................................23 | 13.1 Operation Registrations......................................25 | |||
| 13.2 Additional values of existing attributes....................23 | 13.2 Additional attribute value registrations for existing attributes | |||
| 13.2.1 Additional values for the "notify-schemes-supported" Printer | 25 | |||
| attribute..............................................23 | 13.2.1 Additional values for the "notify-schemes-supported" Printer | |||
| 13.2.2 Additional values for the "operations-supported" Printer | attribute..............................................25 | |||
| attribute..............................................24 | 13.2.2 Additional values for the "operations-supported" Printer | |||
| 13.3 Status code Registrations...................................24 | attribute..............................................26 | |||
| 13.3 Status code Registrations....................................26 | ||||
| 14 Internationalization Considerations............................24 | 14 Internationalization Considerations............................26 | |||
| 15 Security Considerations........................................24 | 15 Security Considerations........................................27 | |||
| 15.1 Security Conformance........................................25 | 15.1 Security Conformance.........................................27 | |||
| 16 References.....................................................25 | 16 References.....................................................28 | |||
| 17 Author's Addresses.............................................27 | 17 Author's Addresses.............................................29 | |||
| 18 Summary of Base IPP documents..................................27 | 18 Summary of Base IPP documents..................................30 | |||
| 19 Full Copyright Statement.......................................29 | 19 Full Copyright Statement.......................................32 | |||
| Tables | Tables | |||
| Table 1 - Information about the Delivery Method....................7 | Table 1 - Information about the Delivery Method....................8 | |||
| Table 2 - Operation-id assignments................................10 | Table 2 - Operation-id assignments................................11 | |||
| Table 3 - Attributes in Event Notification Content................13 | Table 3 - Attributes in Event Notification Content................15 | |||
| Table 4 - Additional Attributes in Event Notification Content for Job | Table 4 - Additional Attributes in Event Notification Content for Job | |||
| Events ........................................................14 | Events ........................................................16 | |||
| Table 5 - Combinations of Events and Subscribed Events for "job- | Table 5 - Combinations of Events and Subscribed Events for "job- | |||
| impressions-completed" ........................................14 | impressions-completed" ........................................16 | |||
| Table 6 - Additional Attributes in Event Notification Content for | Table 6 - Additional Attributes in Event Notification Content for | |||
| Printer Events ................................................15 | Printer Events ................................................17 | |||
| Table 7 - The "event-notification-attributes-tag" value...........18 | Table 7 - The "event-notification-attributes-tag" value...........20 | |||
| 1 Introduction | 1 Introduction | |||
| The "IPP Event Notification Specification" document [ipp-ntfy] | The "IPP Event Notifications and Subscriptions" document [ipp-ntfy] | |||
| defines an extension to Internet Printing Protocol/1.0 (IPP) | defines an OPTIONAL extension to Internet Printing Protocol/1.0 (IPP) | |||
| [RFC2566, RFC2565] and IPP/1.1 [RFC2911, RFC2910]. This extension | [RFC2566, RFC2565] and IPP/1.1 [RFC2911, RFC2910] (for a description | |||
| defines operations that a client can perform in order to create | of the base IPP documents, see section 18). That extension defines | |||
| Subscription Objects in a Printer and carry out other operations on | operations that a client can perform in order to create Subscription | |||
| them. A Subscription Object represents a Subscription abstraction. | Objects in a Printer and carry out other operations on them. A | |||
| A client associates Subscription Objects with a particular Job by | Subscription Object represents a Subscription abstraction. A client | |||
| performing the Create-Job-Subscriptions operation or by submitting a | associates Subscription Objects with a particular Job by performing | |||
| Job with subscription information. A client associates Subscription | the Create-Job-Subscriptions operation or by submitting a Job with | |||
| Objects with the Printer by performing a Create-Printer-Subscriptions | subscription information. A client associates Subscription Objects | |||
| with the Printer by performing a Create-Printer-Subscriptions | ||||
| operation. Four other operations are defined for Subscription | operation. Four other operations are defined for Subscription | |||
| Objects: Get-Subscriptions-Attributes, Get-Subscriptions, Renew- | Objects: Get-Subscriptions-Attributes, Get-Subscriptions, Renew- | |||
| Subscription, and Cancel-Subscription. The Subscription Object | Subscription, and Cancel-Subscription. The Subscription Object | |||
| specifies that when one of the specified Events occurs, the Printer | specifies that when one of the specified Events occurs, the Printer | |||
| sends an asynchronous Event Notification to the specified | sends an asynchronous Event Notification to the specified | |||
| Notification Recipient via the specified Delivery Method (i.e., | Notification Recipient via the specified Delivery Method (i.e., | |||
| protocol). | protocol). | |||
| The "IPP Event Notification Specification" document [ipp-ntfy] | The "IPP Event Notifications and Subscriptions" document [ipp-ntfy] | |||
| specifies that each Delivery Method is defined in another document. | specifies that each Delivery Method is defined in another document. | |||
| This document is one such document, and it specifies the 'indp' | This document is one such document, and it specifies the 'indp' | |||
| Delivery Method. This Delivery Method is a simple protocol | Delivery Method. When IPP Notification [ipp-ntfy] is supported, the | |||
| consisting of a single operation: the Send-Notifications operation | Delivery Method defined in this document is one of the RECOMMENDED | |||
| which uses the same encoding and transport as IPP. This document | Delivery Methods for Printers to support. This Delivery Method is a | |||
| defines version '1.0' of the protocol. | simple protocol consisting of a single operation: the Send- | |||
| Notifications operation which uses the same encoding and transport as | ||||
| IPP. This document defines version '1.0' of the protocol. | ||||
| For the 'indp' Delivery Method, an IPP Printer sends (pushes) a Send- | For the 'indp' Delivery Method, an IPP Printer sends (pushes) a Send- | |||
| Notifications operation request containing one or more Event | Notifications operation request containing one or more Event | |||
| Notifications to the Notification Recipient specified in the | Notifications to the Notification Recipient specified in the | |||
| Subscription Object. The Event Notification content consists of | Subscription Object. The Event Notification content consists of | |||
| Machine Consumable attributes and a Human Consumable "notify-text" | Machine Consumable attributes and a Human Consumable "notify-text" | |||
| attribute. | attribute. | |||
| The Notification Recipient receives the Event Notification as a Send- | The Notification Recipient receives the Event Notification as a Send- | |||
| Notifications operation, in the same way as an IPP Printer receives | Notifications operation, in the same way as an IPP Printer receives | |||
| IPP operations. The Notification Recipient returns a response to the | IPP operations. The Notification Recipient returns a response to the | |||
| Printer. | Printer. | |||
| 2 Terminology | 2 Terminology | |||
| This section defines the following terms that are used throughout | This section defines the following terms that are used throughout | |||
| this document: | this document: | |||
| Terms such as attributes, keywords, and support. These terms have | This document uses the same terminology as [RFC2911], such as | |||
| special meaning and are defined in the model terminology | "client", "Printer", "attribute", "attribute value", "keyword", | |||
| [RFC2911] section 12.2. | "operation", "request", "response", and "support". | |||
| Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, | Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, | |||
| SHOULD NOT, MAY, NEED NOT, and OPTIONAL, have special | SHOULD NOT, MAY, NEED NOT, and OPTIONAL, have special meaning | |||
| meaning relating to conformance as specified in RFC 2119 | relating to conformance as defined in RFC 2119 [RFC2119] and | |||
| [RFC2119] and [RFC2911] section 12.1. These terms refer to | [RFC2911] section 12.1. If an implementation supports the | |||
| conformance to this document, if this document is | extension defined in this document, then these terms apply; | |||
| implemented. | otherwise, they do not. These terms define conformance to this | |||
| document only; they do not affect conformance to other documents, | ||||
| Capitalized terms, such as Notification Recipient, Event | unless explicitly stated otherwise. | |||
| Notification, Printer, etc., that are defined in [ipp-ntfy] | ||||
| with the same meanings and are not reproduced here. | ||||
| Event Notification Attributes Group - The attributes group in a | Event Notification Attributes Group - The attributes group in a | |||
| request that contains Event Notification Attributes in a | request that contains Event Notification Attributes in a | |||
| request or response. | request or response. | |||
| 3 Model and Operation | Other capitalized terms, such as Notification Recipient, Event | |||
| Notification, Compound Event Notification, Printer, etc., are | ||||
| defined in [ipp-ntfy], have the same meanings, and are not | ||||
| reproduced here. | ||||
| 3 Model and Operation | ||||
| See [ipp-ntfy] for the description of the Event Notification Model | See [ipp-ntfy] for the description of the Event Notification Model | |||
| and Operation. This Delivery Method takes advantage of combining | and Operation. This Delivery Method takes advantage of combining | |||
| several Event Notifications into a single Compound Event Notification | several Event Notifications into a single Compound Event Notification | |||
| that is delivery by a single Send-Notification operation to a single | that is delivery by a single Send-Notification operation to a single | |||
| Notification Recipient. | Notification Recipient. | |||
| When creating each Subscription object, the client supplies the | When creating each Subscription object, the client supplies the | |||
| "notify-recipient" (uri) Subscription Template attribute. The | "notify-recipient" (uri) Subscription Template attribute. The | |||
| "notify-recipient" attribute specifies both a single Notification | "notify-recipient" attribute specifies both a single Notification | |||
| skipping to change at page 6, line 35 ¶ | skipping to change at page 7, line 44 ¶ | |||
| b)send the Send-Notifications request to the Notification | b)send the Send-Notifications request to the Notification | |||
| Recipient specified by the address part of the "notify- | Recipient specified by the address part of the "notify- | |||
| recipient-uri" attribute value (see section 5.2.1). | recipient-uri" attribute value (see section 5.2.1). | |||
| If several events occur sufficiently close to one another for the | If several events occur sufficiently close to one another for the | |||
| same or different Subscription objects, but with the same | same or different Subscription objects, but with the same | |||
| Notification Recipient, the Printer MAY combine them into a single | Notification Recipient, the Printer MAY combine them into a single | |||
| Send-Notifications request using a separate Event Notification | Send-Notifications request using a separate Event Notification | |||
| Attributes group for each event (see section 8.1.1). | Attributes group for each event (see section 8.1.1). | |||
| 4 General Information | 4 General Information | |||
| If a Printer supports this Delivery Method, Table 1 lists its | If a client or Printer supports this Delivery Method, Table 1 lists | |||
| characteristics. | its characteristics. | |||
| Table 1 - Information about the Delivery Method | Table 1 - Information about the Delivery Method | |||
| Document Method conformance 'indp' realization | Document Method conformance 'indp' realization | |||
| requirement | requirement | |||
| 1. What is the URL scheme name indp | 1. What is the URL scheme name indp | |||
| for the Delivery Method? | for the Delivery Method? | |||
| 2. Is the Delivery Method is RECOMMENDED | 2. Is the Delivery Method is | |||
| REQUIRED, RECOMMENDED, or | REQUIRED, RECOMMENDED, or | |||
| OPTIONAL for an IPP Printer to | OPTIONAL for an IPP Printer to | |||
| support? | support? RECOMMENDED | |||
| 3. What transport and delivery A Printer MUST support a | 3. What transport and delivery | |||
| protocol does the Printer use complete HTTP/1.1 stack | protocol does the Printer use complete HTTP/1.1 stack | |||
| to deliver the Event [RFC2616] | to deliver the Event [RFC2616] | |||
| Notification content, i.e., | Notification content, i.e., | |||
| what is the entire network | what is the entire network | |||
| stack? | stack? A Printer MUST support a | |||
| 4. Can several Event A Printer implementation MAY | 4. Can several Event A Printer implementation MAY | |||
| Notifications be combined into combine several Event | Notifications be combined into combine several Event | |||
| a Compound Event Notification? Notifications into a single | a Compound Event Notification? Notifications into a single | |||
| Event Notifications request as | Event Notifications request as | |||
| separate Event Notification | separate Event Notification | |||
| Attributes Groups, see section | Attributes Groups, see section | |||
| 8.1.1 | 8.1.1 | |||
| 5. Is the Delivery Method This Delivery Method is a push. | 5. Is the Delivery Method This Delivery Method is a push. | |||
| skipping to change at page 7, line 51 ¶ | skipping to change at page 9, line 4 ¶ | |||
| 7. What section in this document The representation and encoding | 7. What section in this document The representation and encoding | |||
| answers the following is the same as IPP. See | answers the following is the same as IPP. See | |||
| question? For a Machine section 8.1.1 | question? For a Machine section 8.1.1 | |||
| Consumable Event Notification, | Consumable Event Notification, | |||
| what is the representation and | what is the representation and | |||
| encoding of values defined in | encoding of values defined in | |||
| section 9.1 of [ipp-ntfy] and | section 9.1 of [ipp-ntfy] and | |||
| the conformance requirements | the conformance requirements | |||
| thereof? For a Human | thereof? For a Human | |||
| Consumable Event Notification, | ||||
| Document Method conformance 'indp' realization | Document Method conformance 'indp' realization | |||
| requirement | requirement | |||
| thereof? For a Human | ||||
| Consumable Event Notification, | ||||
| what is the representation and | what is the representation and | |||
| encoding of pieces of | encoding of pieces of | |||
| information defined in section | information defined in section | |||
| 9.2 of [ipp-ntfy] and the | 9.2 of [ipp-ntfy] and the | |||
| conformance requirements | conformance requirements | |||
| thereof? | thereof? | |||
| 8. What are the latency and | 8. What are the latency and | |||
| reliability of the transport itselfs(see [RFC2911]).IPP/1.1 | reliability of the transport itself (see [RFC2911]). | |||
| and delivery protocol? | and delivery protocol? Same as for IPP/1.0 or IPP/1.1 | |||
| 9. What are the security aspects 15 | 9. What are the security aspects See section 15 | |||
| of the transport and delivery | of the transport and delivery | |||
| protocol, e.g., how it is See section | protocol, e.g., how it is | |||
| handled in firewalls? | handled in firewalls? | |||
| 10. What are the content length They are the same as for | 10. What are the content length They are the same as for | |||
| restrictions? IPP/1.0 and IPP/1.1 itself (see | restrictions? IPP/1.0 and IPP/1.1 itself (see | |||
| [RFC2911]). | [RFC2911]). | |||
| 11. What are the additional values A new Event Notifications | 11. What are the additional values A new Event Notifications | |||
| or pieces of information that attribute group (see section | or pieces of information that attribute group (see section | |||
| a Printer sends in an Event 10.1) and additional status | a Printer sends in an Event 10.1) and additional status | |||
| Notification and the codes for use in the response | Notification and the codes for use in the response | |||
| skipping to change at page 9, line 5 ¶ | skipping to change at page 10, line 5 ¶ | |||
| requirements thereof? | requirements thereof? | |||
| 13. What are the additional None | 13. What are the additional None | |||
| Printer Description attributes | Printer Description attributes | |||
| and the conformance | and the conformance | |||
| requirements thereof? | requirements thereof? | |||
| The remaining sections of this document parallel the sections of | The remaining sections of this document parallel the sections of | |||
| [ipp-ntfy]. | [ipp-ntfy]. | |||
| 5 Subscription object attributes | 5 Subscription object attributes | |||
| This section defines the Subscription object conformance requirements | This section defines the Subscription object conformance requirements | |||
| for Printers. | for Printers. | |||
| 5.1 Subscription Template Attribute Conformance | 5.1 Subscription Template Attribute Conformance | |||
| The 'indp' Delivery Method has the same conformance requirements for | The 'indp' Delivery Method has the same conformance requirements for | |||
| Subscription Template attributes as defined in [ipp-ntfy]. The | Subscription Template attributes as defined in [ipp-ntfy]. The | |||
| 'indp' Delivery Method does not define any addition Subscription | 'indp' Delivery Method does not define any addition Subscription | |||
| Template attributes. | Template attributes. | |||
| 5.2 Additional Information about Subscription Template Attributes | 5.2 Additional Information about Subscription Template Attributes | |||
| This section defines additional information about Subscription | This section defines additional information about Subscription | |||
| Template attributes defined in [ipp-ntfy]. | Template attributes defined in [ipp-ntfy]. | |||
| 5.2.1 notify-recipient-uri (uri) | 5.2.1 notify-recipient-uri (uri) | |||
| This section describes the syntax of the value of this attribute for | This section describes the syntax of the value of this attribute for | |||
| the 'indp' Delivery Method. The syntax for values of this attribute | the 'indp' Delivery Method. The syntax for values of this attribute | |||
| for other Delivery Method is defined in other Delivery Method | for other Delivery Method is defined in other Delivery Method | |||
| Documents. | Documents. | |||
| In order to support the 'indp' Delivery Method and Protocol, the | In order to support the 'indp' Delivery Method and Protocol, the | |||
| Printer MUST support the following syntax: | Printer MUST support the following syntax: | |||
| The 'indp://' URI scheme. The remainder of the URI indicates | The 'indp://' URI scheme. The remainder of the URI indicates | |||
| the host name or host address (and optional path) of the | the host name or host address (and optional path) of the | |||
| Notification Recipient that is to receive the Send- | Notification Recipient that is to receive the Send- | |||
| Notification operation. See section 12 for a complete | Notification operation. See section 12 for a complete | |||
| definition of the syntax of the INDP URL. | definition of the syntax of the INDP URL. | |||
| 5.3 Subscription Description Attribute Conformance | 5.3 Subscription Description Attribute Conformance | |||
| The 'indp' Delivery Method has the same conformance requirements for | The 'indp' Delivery Method has the same conformance requirements for | |||
| Subscription Description attributes as defined in [ipp-ntfy]. The | Subscription Description attributes as defined in [ipp-ntfy]. The | |||
| 'indp' Delivery Method does not define any addition Subscription | 'indp' Delivery Method does not define any addition Subscription | |||
| Description attributes. | Description attributes. | |||
| 6 Printer Description Attributes | 6 New Values for Existing Printer Description Attributes | |||
| This section defines the Printer Description Attributes conformance | ||||
| requirements for Printers. | ||||
| 6.1 Printer Description Attribute Conformance | ||||
| The 'indp' Delivery Method has the same conformance requirements for | ||||
| Printer Description attributes as defined in [ipp-ntfy]. The 'indp' | ||||
| Delivery Method does not define any addition Printer Description | ||||
| attributes. | ||||
| 6.2 New Values for Existing Printer Description Attributes | ||||
| This section defines additional values for existing Printer | This Delivery Method does not define any additional Printer | |||
| Description attributes. | Description attribute from those defined in [ipp-ntfy]. However, it | |||
| does define additional values for existing Printer Description | ||||
| attributes defined in [ipp-ntfy]. This section defines those | ||||
| additional values. | ||||
| 6.2.1 notify-schemes-supported (1setOf uriScheme) | 6.1 notify-schemes-supported (1setOf uriScheme) | |||
| The following "notify-schemes-supported" value is added in order to | The following value of the "notify-schemes-supported" Printer | |||
| support the new Delivery Method defined in this document: | attribute (see [ipp-ntfy] section 5.3.1) is added in order to support | |||
| the new Delivery Method defined in this document: | ||||
| 'indp' - The IPP Notification Delivery Method defined in this | 'indp' - The IPP Notification Delivery Method defined in this | |||
| document. | document. | |||
| 6.2.2 operations-supported (1setOf type2 enum) | 6.2 operations-supported (1setOf type2 enum) | |||
| Table 2 lists the "operation-id" value added in order to support the | Table 2 lists the value of the "operation-id" operation parameter | |||
| (see [RFC2911]) and the value of the "operations-supported" Printer | ||||
| Description attribute (see [RFC2911]) added in order to support the | ||||
| new operation defined in this document. The operation-id is assigned | new operation defined in this document. The operation-id is assigned | |||
| in the same name space as other operations that a Printer supports. | in the same name space as other operations that a Printer supports. | |||
| However, a Printer MUST NOT include this value in its "operations- | However, a Printer MUST NOT include this value in its "operations- | |||
| supported" attribute unless it can accept the Send-Notifications | supported" attribute unless it can accept the Send-Notifications | |||
| request. | request. | |||
| Table 2 - Operation-id assignments | Table 2 - Operation-id assignments | |||
| Value Operation Name | Value Operation Name | |||
| 0x001D Send-Notifications | 0x001D Send-Notifications | |||
| 7 Attributes Only in Event Notifications | 7 Attributes Only in Event Notifications | |||
| No additional attributes are defined only for use in Event | No additional attributes are defined only for use in Event | |||
| Notifications besides those defined in [ipp-ntfy]. | Notifications besides those defined in [ipp-ntfy]. | |||
| 8 Operations for Notification | 8 Operations for Notification | |||
| This section defines the operation for Event Notification using the | This section defines the operation for Event Notification using the | |||
| 'indp' Delivery Method. | 'indp' Delivery Method. | |||
| There is only one operation defined: Send-Notifications. Section | There is only one operation defined: Send-Notifications. Section | |||
| 6.2.2 assigns of the "operation-id" for the Send-Notifications | 6.2 assigns of the "operation-id" for the Send-Notifications | |||
| operation and the following section defined the operation. | operation and the following section defined the operation. | |||
| 8.1 Send-Notifications operation | 8.1 Send-Notifications operation | |||
| This REQUIRED operation allows a Printer to send one or more Event | This REQUIRED operation allows a Printer to send one or more Event | |||
| Notifications to a Notification Recipient using HTTP. | Notifications to a Notification Recipient using HTTP. | |||
| The Printer composes the information defined for an IPP Notification | The Printer composes the information defined for an IPP Notification | |||
| [ipp-ntfy] and sends it using the Sent-Notifications operation to the | [ipp-ntfy] and sends it using the Send-Notifications operation to the | |||
| Notification Recipient supplied in the Subscription object. | Notification Recipient supplied in the Subscription object. The | |||
| ordering of separate Send-Notifications operations that a Printer | ||||
| sends MUST follow the "Event Notification Ordering" requirements in | ||||
| [ipp-ntfy] section 9. | ||||
| The Send-Notifications operation uses the operations model defined by | The Send-Notifications operation uses the operations model defined by | |||
| IPP [RFC2566]. This includes, the use of a URI as the identifier for | IPP [RFC2566]. This includes, the use of a URI as the identifier for | |||
| the target of each operation, the inclusion of a version number, | the target of each operation, the inclusion of a version number, | |||
| operation-id, and request-id in each request, and the definition of | operation-id, and request-id in each request, and the definition of | |||
| attribute groups. The Send-Notifications operation uses the Operation | attribute groups. The Send-Notifications operation uses the Operation | |||
| Attributes group, but currently has no need for the Unsupported | Attributes group, but currently has no need for the Unsupported | |||
| Attributes, Printer Object Attributes, and Job-Object Attributes | Attributes, Printer Object Attributes, and Job-Object Attributes | |||
| groups. However, it uses a new attribute group, the Event | groups. However, it uses a new attribute group, the Event | |||
| Notification Attributes group. | Notification Attributes group. | |||
| skipping to change at page 11, line 43 ¶ | skipping to change at page 12, line 46 ¶ | |||
| The Notification Recipient MUST accept the request in any state. | The Notification Recipient MUST accept the request in any state. | |||
| There is no state defined for the Notification Recipient for this | There is no state defined for the Notification Recipient for this | |||
| Delivery Method. | Delivery Method. | |||
| Access Rights: Notification Recipient MAY enforce access rights. If | Access Rights: Notification Recipient MAY enforce access rights. If | |||
| the Printer receives a rejection with these status codes: 'client- | the Printer receives a rejection with these status codes: 'client- | |||
| error-forbidden', 'client-error-not-authenticated', or 'client-error- | error-forbidden', 'client-error-not-authenticated', or 'client-error- | |||
| not-authorized' status code , the Printer SHOULD cancel the | not-authorized' status code , the Printer SHOULD cancel the | |||
| subscription. | subscription. | |||
| 8.1.1 Send-Notifications Request | 8.1.1 Send-Notifications Request | |||
| Every operation request MUST contains the following parameters (see | Every operation request MUST contains the following parameters (see | |||
| [RFC2911] section 3.1.1): | [RFC2911] section 3.1.1): | |||
| - a "version-number" '1.0' - the version of the 'indp' | - a "version-number" '1.0' - the version of the 'indp' | |||
| protocol is '1.0'. | protocol is '1.0'. | |||
| - an "operation-id" - the value defined in Table 2 | - an "operation-id" - the value defined in Table 2 | |||
| - a "request-id" - the request id (see [RFC2911] section 3.1.2). | - a "request-id" - the request id (see [RFC2911] section 3.1.2). | |||
| The following groups of attributes MUST be part of the Send- | The following groups of attributes MUST be part of the Send- | |||
| skipping to change at page 12, line 38 ¶ | skipping to change at page 13, line 43 ¶ | |||
| Target: | Target: | |||
| A copy of the Subscription object's "notify-recipient-uri" | A copy of the Subscription object's "notify-recipient-uri" | |||
| (uri) attribute which is the target of this operation as | (uri) attribute which is the target of this operation as | |||
| described in [RFC2911] section 3.1.5, i.e., the URI of the | described in [RFC2911] section 3.1.5, i.e., the URI of the | |||
| 'indp' Notification Recipient (see section 5.2.1). | 'indp' Notification Recipient (see section 5.2.1). | |||
| Group 2 to N: Event Notification Attributes | Group 2 to N: Event Notification Attributes | |||
| In each group 2 to N, each attribute is encoded using the IPP | In each group 2 to N, each attribute is encoded using the IPP | |||
| rules for encoding attributes [RFC2910] and may be encoded in | rules for encoding attributes [RFC2910] and the attributes | |||
| any order. Note: the Get-Jobs response in [RFC2911] acts as a | within a group MAY be encoded in any order. Note: the Get-Jobs | |||
| model for encoding multiple groups of attributes. | response in [RFC2911] acts as a model for encoding multiple | |||
| groups of attributes. The entire request is considered a | ||||
| single Compound Event Notification and MUST follow the "Event | ||||
| Notification Ordering" requirements for Event Notifications | ||||
| within a Compound Event Notification specified in [ipp-ntfy] | ||||
| section 9. | ||||
| Each Event Notification Group MUST contain all of attributes | Each Event Notification Group MUST contain all of attributes | |||
| specified in [ipp-ntfy] section 9.1 ("Content of Machine | specified in [ipp-ntfy] section 9.1 ("Content of Machine | |||
| Consumable Event Notifications") with exceptions denoted by | Consumable Event Notifications") with exceptions denoted by | |||
| asterisks in the tables below. | asterisks in the tables below. | |||
| The tables below are copies of the tables in [ipp-ntfy] section | The tables below are copies of the tables in [ipp-ntfy] section | |||
| 9.1 ("Content of Machine Consumable Event Notifications") | 9.1 ("Content of Machine Consumable Event Notifications") | |||
| except that each cell in the "Sends" column is a "MUST". | except that each cell in the "Sends" column is a "MUST". | |||
| skipping to change at page 14, line 13 ¶ | skipping to change at page 16, line 15 ¶ | |||
| 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 and the | is not present on the associated Subscription Object and the | |||
| Printer does not send any client-requested attributes. | Printer does not send any client-requested attributes. | |||
| For Event Notifications for Job Events, the Printer sends the | For Event Notifications for Job Events, the Printer sends the | |||
| following additional attributes shown in Table 4. | following 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 Object | Source Value Sends Source | |||
| 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-state-reasons (1setOf type2 keyword) MUST Job | |||
| job-impressions-completed MUST * Job | job-impressions-completed (integer(0:MAX)) MUST * Job | |||
| (integer(0:MAX)) | ||||
| * 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 | |||
| skipping to change at page 15, line 16 ¶ | skipping to change at page 17, line 16 ¶ | |||
| Printer Events | Printer Events | |||
| Source Value Sends Source Object | Source Value Sends Source 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 | |||
| 8.1.2 Send-Notifications Response | 8.1.2 Send-Notifications Response | |||
| The Notification Recipient MUST return (to the client which is the | The Notification Recipient MUST return (to the client which is the | |||
| Printer) the following sets of attributes as part of a Send- | Printer) the following sets of attributes as part of a Send- | |||
| Notifications response: | Notifications response: | |||
| Every operation response contains the following REQUIRED parameters | Every operation response contains the following REQUIRED parameters | |||
| (see [RFC2911] section 3.1.1}: | (see [RFC2911] section 3.1.1}: | |||
| - a "version-number" | - a "version-number" | |||
| - a "status-code" | - a "status-code" | |||
| skipping to change at page 16, line 40 ¶ | skipping to change at page 18, line 40 ¶ | |||
| MUST cancel the Subscription and MUST NOT attempt to send | MUST cancel the Subscription and MUST NOT attempt to send | |||
| any further Event Notifications from the associated | any further Event Notifications from the associated | |||
| Subscription object. | Subscription object. | |||
| 'successful-ok-but-cancel-subscription' - the Event | 'successful-ok-but-cancel-subscription' - the Event | |||
| Notification Attribute Group was consumed, but the | Notification Attribute Group was consumed, but the | |||
| Notification Recipient wishes to cancel the Subscription | Notification Recipient wishes to cancel the Subscription | |||
| object. The Printer MUST cancel the Subscription and | object. The Printer MUST cancel the Subscription and | |||
| MUST NOT attempt to send any further Event Notifications | MUST NOT attempt to send any further Event Notifications | |||
| from the associated Subscription object. | from the associated Subscription object. | |||
| 9 Status Codes | 9 Status Codes | |||
| This section lists status codes whose meaning have been extended | This section lists status codes whose meaning have been extended | |||
| and/or defined for returning in Event Notification Attribute Groups | and/or defined for returning in Event Notification Attribute Groups | |||
| as the value of the "notify-status-code" operation attribute. The | as the value of the "notify-status-code" operation attribute. The | |||
| code values are allocated in the same space as the status codes in | code values are allocated in the same space as the status codes in | |||
| [RFC2911]. | [RFC2911]. | |||
| 9.1 Additional Status Codes | 9.1 Additional Status Codes | |||
| The following status codes are defined as extensions for Notification | The following status codes are defined as extensions for Notification | |||
| and are returned as the value of the "status-code" parameter in the | and are returned as the value of the "status-code" parameter in the | |||
| Operation Attributes Group of a response (see [RFC2911] section | Operation Attributes Group of a response (see [RFC2911] section | |||
| 3.1.6.1). Operations in this document can also return the status | 3.1.6.1). Operations in this document can also return the status | |||
| codes defined in section 13 of [RFC2911]. The 'successful-ok' status | codes defined in section 13 of [RFC2911]. The 'successful-ok' status | |||
| code is an example of such a status code. | code is an example of such a status code. | |||
| 9.1.1 successful-ok-ignored-notifications (0x0004) | 9.1.1 successful-ok-ignored-notifications (0x0004) | |||
| The Notification Recipient was able to consume some, but not all, of | The Notification Recipient was able to consume some, but not all, of | |||
| the Event Notifications Attributes Groups sent by the Printer in the | the Event Notifications Attributes Groups sent by the Printer in the | |||
| Send-Notifications request. See section 8.1.2 for further details. | Send-Notifications request. See section 8.1.2 for further details. | |||
| 9.1.2 client-error-ignored-all-notifications (0x0416) | 9.1.2 client-error-ignored-all-notifications (0x0416) | |||
| The Notification Recipient was unable to consume any of the Event | The Notification Recipient was unable to consume any of the Event | |||
| Notification Attributes Groups sent by the Printer. The Event | Notification Attributes Groups sent by the Printer. The Event | |||
| Notification Attributes Groups with a "notify-status-code" attribute | Notification Attributes Groups with a "notify-status-code" attribute | |||
| are the ones that were ignored or are to be canceled. The Printer | are the ones that were ignored or are to be canceled. The Printer | |||
| MAY remove subscriptions for future events which this client was | MAY remove subscriptions for future events which this client was | |||
| unable to consume. | unable to consume. | |||
| 9.2 Status Codes returned in Event Notification Attributes Groups | 9.2 Status Codes returned in Event Notification Attributes Groups | |||
| This section contains values of the "notify-status-code" attribute | This section contains values of the "notify-status-code" attribute | |||
| that the Notification Recipient returns in a Event Notification | that the Notification Recipient returns in a Event Notification | |||
| Attributes Group in a response when the corresponding Event | Attributes Group in a response when the corresponding Event | |||
| Notification Attributes Group in the request: | Notification Attributes Group in the request: | |||
| 1.was not consumed OR | 1.was not consumed OR | |||
| 2.was consumed, but the Notification Recipient wants to cancel the | 2.was consumed, but the Notification Recipient wants to cancel the | |||
| corresponding Subscription object | corresponding Subscription object | |||
| The following sections are ordered in decreasing order of importance | The following sections are ordered in decreasing order of importance | |||
| of the status-codes. | of the status-codes. | |||
| 9.2.1 client-error-not-found (0x0406) | 9.2.1 client-error-not-found (0x0406) | |||
| This status code is defined in [RFC2911]. This document extends its | This status code is defined in [RFC2911]. This document extends its | |||
| meaning and allows it to be returned in an Event Notification | meaning and allows it to be returned in an Event Notification | |||
| Attributes Group of a response. | Attributes Group of a response. | |||
| The Notification Recipient was unable to consume this Event | The Notification Recipient was unable to consume this Event | |||
| Notification Attributes Group because it was not expected. See | Notification Attributes Group because it was not expected. See | |||
| section 8.1.2 for further details. | section 8.1.2 for further details. | |||
| 9.2.2 successful-ok-but-cancel-subscription (0x0006) | 9.2.2 successful-ok-but-cancel-subscription (0x0006) | |||
| The Notification Recipient was able to consume this Event | The Notification Recipient was able to consume this Event | |||
| Notification Attributes Group that the Printer sent, but wants the | Notification Attributes Group that the Printer sent, but wants the | |||
| corresponding Subscription object to be canceled none-the-less. See | corresponding Subscription object to be canceled none-the-less. See | |||
| section 8.1.2 for further details. | section 8.1.2 for further details. | |||
| 10 Encoding and Transport | 10 Encoding and Transport | |||
| This section defines the encoding and transport used by the 'indp' | This section defines the encoding and transport used by the 'indp' | |||
| Delivery Method. | Delivery Method. | |||
| skipping to change at page 18, line 35 ¶ | skipping to change at page 20, line 35 ¶ | |||
| Tag Value (Hex) Meaning | Tag Value (Hex) Meaning | |||
| 0x07 "event-notification-attributes-tag" | 0x07 "event-notification-attributes-tag" | |||
| 10.2 Encoding of Transport Layer | 10.2 Encoding of Transport Layer | |||
| The 'indp' Notification Delivery Method uses the IPP transport layer | The 'indp' Notification Delivery Method uses the IPP transport layer | |||
| encoding described in [RFC2910]. | encoding described in [RFC2910]. | |||
| It is REQUIRED that an 'indp' Notification Recipient implementation | It is REQUIRED that an 'indp' Notification Recipient implementation | |||
| support HTTP over the IANA assigned Well Known Port assigned to the | support HTTP over the IANA-assigned well known system port assigned | |||
| 'indp' Delivery Method as its default port by IANA (see section 13), | to the 'indp' Delivery Method as its default port by IANA (see | |||
| though a Notification Recipient implementation MAY support HTTP over | section 13), though a Notification Recipient implementation MAY | |||
| some other port as well. | support HTTP over some other port as well. | |||
| 11 Conformance Requirements | 11 Conformance Requirements | |||
| This section defines conformance requirements for Printers and | This section defines conformance requirements for Printers and | |||
| Notification Recipients. | Notification Recipients. | |||
| 11.1 Conformance Requirements for Printers | 11.1 Conformance Requirements for Printers | |||
| The 'indp' Delivery Method is RECOMMENDED for a Printer to support. | The 'indp' Delivery Method is RECOMMENDED for a Printer to support. | |||
| skipping to change at page 19, line 29 ¶ | skipping to change at page 21, line 29 ¶ | |||
| object attributes defined in section 6. | object attributes defined in section 6. | |||
| 4.MUST support the 'indp' protocol by sending Event Notifications | 4.MUST support the 'indp' protocol by sending Event Notifications | |||
| using the Send-Notifications operation defined in section 8.1. | using the Send-Notifications operation defined in section 8.1. | |||
| 5.MUST send INDP URLs (e.g., in the "notify-recipient-uri" attribute | 5.MUST send INDP URLs (e.g., in the "notify-recipient-uri" attribute | |||
| in 'Send-Notifications') that conform to the ABNF specified in | in 'Send-Notifications') that conform to the ABNF specified in | |||
| section 12.5 of this document; | section 12.5 of this document; | |||
| 6.MUST send the Send-Notifications operation via the port specified | 6.MUST send the Send-Notifications operation via the port specified | |||
| in the INDP URL (if present) or otherwise via IANA assigned well- | in the INDP URL (if present) or otherwise via the IANA-assigned | |||
| known port [TBD]; | well-known system port xxx [TBA by IANA]; | |||
| 7.MUST convert INDP URLs for use in the Send-Notifications operation | 7.MUST convert INDP URLs for use in the Send-Notifications operation | |||
| to their corresponding HTTP URL forms for use in the HTTP layer by | to their corresponding HTTP URL forms for use in the HTTP layer by | |||
| the same rules used to convert IPP URLs to their corresponding | the same rules used to convert IPP URLs to their corresponding | |||
| HTTP URL forms (see section 5 'IPP URL Scheme' in [RFC2910]). | HTTP URL forms (see section 5 'IPP URL Scheme' in [RFC2910]). | |||
| 11.2 Conformance Requirements for INDP Notification Recipients | 11.2 Conformance Requirements for INDP Notification Recipients | |||
| INDP Notification Recipients that conform to this specification: | INDP Notification Recipients that conform to this specification: | |||
| 1.MUST accept Send-Notifications requests and return Send- | 1.MUST accept Send-Notifications requests and return Send- | |||
| Notifications responses as defined in sections 8 and 9. | Notifications responses as defined in sections 8 and 9. | |||
| 2.SHOULD reject received INDP URLs in "application/ipp" request | 2.SHOULD reject received INDP URLs in "application/ipp" request | |||
| bodies (e.g., in the "notify-recipient-uri" attribute in 'Send- | bodies (e.g., in the "notify-recipient-uri" attribute in 'Send- | |||
| Notifications') that do not conform to the ABNF for INDP URLs | Notifications') that do not conform to the ABNF for INDP URLs | |||
| specified in section 12.5 of this document; | specified in section 12.5 of this document; | |||
| 3.MUST listen for INDP operations on IANA-assigned well-known port | 3.MUST listen for INDP operations on IANA-assigned well-known system | |||
| [TBD], unless explicitly configured by system administrators or | port xxx [TBA by IANA], unless explicitly configured by system | |||
| site policies; | administrators or site policies; | |||
| 4.SHOULD NOT listen for INDP operations on any other port, unless | 4.SHOULD NOT listen for INDP operations on any other port, unless | |||
| explicitly configured by system administrators or site policies. | explicitly configured by system administrators or site policies. | |||
| 12 INDP URL Scheme | 12 INDP URL Scheme | |||
| 12.1 INDP URL Scheme Applicability and Intended Usage | 12.1 INDP URL Scheme Applicability and Intended Usage | |||
| This section is intended for use in registering the "indp" URL scheme | This section is intended for use in registering the "indp" URL scheme | |||
| with IANA and fully conforms to the requirements in [RFC2717]. This | with IANA and fully conforms to the requirements in [RFC2717]. This | |||
| document defines the "indp" URL (Uniform Resource Locator) scheme for | document defines the "indp" URL (Uniform Resource Locator) scheme for | |||
| specifying the location of an INDP Notification Recipient object | specifying the location of an INDP Notification Recipient object | |||
| which implements IPP Notification Delivery Protocol (INDP) specified | which implements IPP Notification Delivery Protocol (INDP) specified | |||
| in this document. | in this document. | |||
| The intended usage of the "indp" URL scheme is COMMON. | The intended usage of the "indp" URL scheme is COMMON. | |||
| 12.2 INDP URL Scheme Associated INDP Port | 12.2 INDP URL Scheme Associated INDP Port | |||
| All INDP URLs which do NOT explicitly specify a port MUST be used | All INDP URLs which do NOT explicitly specify a port MUST be used | |||
| over IANA-assigned well-known port [TBD] for the INDP protocol. | over IANA-assigned well-known system port xxx [TBA by IANA] for the | |||
| INDP protocol. | ||||
| See: IANA Port Numbers Registry [IANA-PORTREG]. | See: IANA Port Numbers Registry [IANA-PORTREG]. | |||
| 12.3 INDP URL Scheme Associated MIME Type | 12.3 INDP URL Scheme Associated MIME Type | |||
| All INDP protocol operations (requests and responses) MUST be | All INDP protocol operations (requests and responses) MUST be | |||
| conveyed in an "application/ipp" MIME media type as registered in | conveyed in an "application/ipp" MIME media type as registered in | |||
| [IANA-MIMEREG]. INDP URLs MUST refer to INDP Notification Recipient | [IANA-MIMEREG]. INDP URLs MUST refer to INDP Notification Recipient | |||
| objects which support this "application/ipp" MIME media type. | objects which support this "application/ipp" MIME media type. | |||
| skipping to change at page 21, line 7 ¶ | skipping to change at page 23, line 7 ¶ | |||
| the HTTP URL scheme defined in HTTP/1.1 [RFC2616], which is derived | the HTTP URL scheme defined in HTTP/1.1 [RFC2616], which is derived | |||
| from the URI Generic Syntax [RFC2396] and further updated by | from the URI Generic Syntax [RFC2396] and further updated by | |||
| [RFC2732] and [RFC2373] (for IPv6 addresses in URLs). The INDP URL | [RFC2732] and [RFC2373] (for IPv6 addresses in URLs). The INDP URL | |||
| scheme is case-insensitive in the 'scheme' and 'host' (host name or | scheme is case-insensitive in the 'scheme' and 'host' (host name or | |||
| host address) part; however the 'abs_path' part is case-sensitive, as | host address) part; however the 'abs_path' part is case-sensitive, as | |||
| in [RFC2396]. Code points outside [US-ASCII] MUST be hex escaped by | in [RFC2396]. Code points outside [US-ASCII] MUST be hex escaped by | |||
| the mechanism specified in [RFC2396]. | the mechanism specified in [RFC2396]. | |||
| 12.5 INDP URL Scheme Syntax in ABNF | 12.5 INDP URL Scheme Syntax in ABNF | |||
| This section is intended for use in registering the "indp" URL scheme | ||||
| with IANA and fully conforms to the requirements in [RFC2717]. This | ||||
| document defines the "indp" URL (Uniform Resource Locator) scheme for | ||||
| specifying the location of an INDP Notification Recipient object | ||||
| which implements IPP Notification Delivery Protocol (INDP) specified | ||||
| in this document. | ||||
| The intended usage of the "indp" URL scheme is COMMON. | ||||
| The IPP protocol places a limit of 1023 octets (NOT characters) on | The IPP protocol places a limit of 1023 octets (NOT characters) on | |||
| the length of a URI (see section 4.1.5 'uri' in [RFC2911]). An INDP | the length of a URI (see section 4.1.5 'uri' in [RFC2911]). An INDP | |||
| Notification Recipient MUST return 'client-error-request-value-too- | Notification Recipient MUST return 'client-error-request-value-too- | |||
| long' (see section 13.1.4.10 in [RFC2911]) when a URI received in a | long' (see section 13.1.4.10 in [RFC2911]) when a URI received in a | |||
| request is too long. | request is too long. | |||
| Note: INDP Notification Recipients ought to be cautious about | Note: INDP Notification Recipients ought to be cautious about | |||
| depending on URI lengths above 255 bytes, because some older client | depending on URI lengths above 255 bytes, because some older client | |||
| or proxy implementations might not properly support these lengths. | or proxy implementations might not properly support these lengths. | |||
| skipping to change at page 21, line 38 ¶ | skipping to change at page 23, line 29 ¶ | |||
| information on URL syntax and semantics, see "Uniform Resource | information on URL syntax and semantics, see "Uniform Resource | |||
| Identifiers (URI): Generic Syntax and Semantics" [RFC2396]. This | Identifiers (URI): Generic Syntax and Semantics" [RFC2396]. This | |||
| specification adopts the definitions of "port", "host", "abs_path", | specification adopts the definitions of "port", "host", "abs_path", | |||
| and "query" from [RFC2396], as updated by [RFC2732] and [RFC2373] | and "query" from [RFC2396], as updated by [RFC2732] and [RFC2373] | |||
| (for IPv6 addresses in URLs). | (for IPv6 addresses in URLs). | |||
| The INDP URL scheme syntax in ABNF is as follows: | The INDP URL scheme syntax in ABNF is as follows: | |||
| indp_URL = "indp:" "//" host [ ":" port ] [ abs_path [ "?" query ]] | indp_URL = "indp:" "//" host [ ":" port ] [ abs_path [ "?" query ]] | |||
| If the port is empty or not given, IANA-assigned well-known port | If the port is empty or not given, IANA-assigned well-known system | |||
| [TBD] is assumed. The semantics are that the identified resource | port xxx [TBA by IANA] is assumed. The semantics are that the | |||
| (see section 5.1.2 of [RFC2616]) is located at the INDP Notification | identified resource (see section 5.1.2 of [RFC2616]) is located at | |||
| Recipient listening for HTTP connections on that port of that host, | the INDP Notification Recipient listening for HTTP connections on | |||
| and the Request-URI for the identified resource is 'abs_path'. | that port of that host, and the Request-URI for the identified | |||
| resource is 'abs_path'. | ||||
| Note: The use of IP addresses in URLs SHOULD be avoided whenever | Note: The use of IP addresses in URLs SHOULD be avoided whenever | |||
| possible (see [RFC1900]). | possible (see [RFC1900]). | |||
| If the 'abs_path' is not present in the URL, it MUST be given as "/" | If the 'abs_path' is not present in the URL, it MUST be given as "/" | |||
| when used as a Request-URI for a resource (see section 5.1.2 of | when used as a Request-URI for a resource (see section 5.1.2 of | |||
| [RFC2616]). If a proxy receives a host name which is not a fully | [RFC2616]). If a proxy receives a host name which is not a fully | |||
| qualified domain name, it MAY add its domain to the host name it | qualified domain name, it MAY add its domain to the host name it | |||
| received. If a proxy receives a fully qualified domain name, the | received. If a proxy receives a fully qualified domain name, the | |||
| proxy MUST NOT change the host name. | proxy MUST NOT change the host name. | |||
| skipping to change at page 22, line 44 ¶ | skipping to change at page 24, line 37 ¶ | |||
| indp://[::192.9.5.5]/listener | indp://[::192.9.5.5]/listener | |||
| indp://[::FFFF:129.144.52.38]/listener | indp://[::FFFF:129.144.52.38]/listener | |||
| indp://[2010:836B:4179::836B:4179]/listeners/tom | indp://[2010:836B:4179::836B:4179]/listeners/tom | |||
| 12.5.2 INDP URL Comparisons | 12.5.2 INDP URL Comparisons | |||
| When comparing two INDP URLs to decide if they match or not, the | When comparing two INDP URLs to decide if they match or not, the | |||
| comparer MUST use the same rules as those defined for HTTP URI | comparer MUST use the same rules as those defined for HTTP URI | |||
| comparisons in [RFC2616], with the sole following exception: | comparisons in [RFC2616], with the sole following exception: | |||
| . A port that is empty or not given MUST be treated as equivalent | ? A port that is empty or not given MUST be treated as equivalent | |||
| to the well-known port for that INDP URL (port [TBD]); | to the well-known system port xxx [TBA by IANA] for that INDP | |||
| URL; | ||||
| 13 IANA Considerations | 13 IANA Considerations | |||
| IANA is requested to register the indp URL scheme as defined in | IANA shall register the indp URL scheme as defined in section 12 | |||
| section 12. | according to the procedures of [RFC2717] and assign a well-known | |||
| system port. | ||||
| IANA is requested to assign a default system port (less than 1024) | ||||
| for use with the indp URL as defined in section 12. | ||||
| The rest of this section contains the exact information for IANA to | The rest of this section contains the exact information for IANA to | |||
| add to the IPP Registries according to the procedures defined in RFC | add to the IPP Registries according to the procedures defined in RFC | |||
| 2911 [RFC2911] section 6. | 2911 [RFC2911] section 6. | |||
| Note to RFC Editors: Replace RFC NNNN below with the RFC number | Note to RFC Editors: Replace RFC NNNN below with the RFC number | |||
| for this document, so that it accurately reflects the content of | for this document, so that it accurately reflects the content of | |||
| the information for the IANA Registry. | the information for the IANA Registry. | |||
| 13.1 Operation Registrations | 13.1 Operation Registrations | |||
| The operations defined in this document will be published by IANA | The following table lists the operation defined in this document. | |||
| according to the procedures in RFC 2911 [RFC2911] section 6.4 with | This is to be registered according to the procedures in RFC 2911 | |||
| the following path: | [RFC2911] section 6.4. | |||
| ftp.isi.edu/iana/assignments/ipp/operations/ | Operations: Ref. | |||
| Section: | ||||
| Send-Notifications operation RFC NNNN 8.1 | ||||
| The registry entry will contain the following information: | The resulting operation registration will be published in the | |||
| ftp://ftp.iana.org/in-notes/iana/assignments/ipp/operations/ | ||||
| area. | ||||
| Operations: Ref. Section: | 13.2 Additional attribute value registrations for existing attributes | |||
| Send-Notifications operation RFC NNNN 8.1 | ||||
| 13.2 Additional values of existing attributes | This section lists additional attribute value registrations for use | |||
| with existing attributes defined in other documents. | ||||
| 13.2.1 Additional values for the "notify-schemes-supported" Printer | 13.2.1 Additional values for the "notify-schemes-supported" Printer | |||
| attribute | attribute | |||
| The "notify-schemes-supported" uriScheme attribute value defined in | The following table lists the uriScheme value defined in this | |||
| this document will be published by IANA according to the procedures | document as an additional uriScheme value for use with the "notify- | |||
| in RFC 2911 [RFC2911] section 6.1 with the following path: | schemes-supported" Printer attribute defined in [ipp-ntfy]. This is | |||
| to be registered according to the procedures in RFC 2911 [RFC2911] | ||||
| section 6.1. | ||||
| ftp.isi.edu/iana/assignments/ipp/attribute-values/notify-schemes- | uriScheme Attribute Values: Ref. Section: | |||
| supported/ | indp RFC NNNN 6.1 | |||
| The registry entry will contain the following information: | The resulting URI scheme attribute value registration will be | |||
| published in the | ||||
| ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute- | ||||
| Ref. Section: | values/notify-schemes-supported/ | |||
| indp RFC NNNN 6.2.1 | area. | |||
| 13.2.2 Additional values for the "operations-supported" Printer | 13.2.2 Additional values for the "operations-supported" Printer | |||
| attribute | attribute | |||
| The "operations-supported" type2 enum attribute value defined in this | ||||
| document will be published by IANA according to the procedures in RFC | ||||
| 2911 [RFC2911] section 6.1 with the following path: | ||||
| ftp.isi.edu/iana/assignments/ipp/attribute-values/operations- | The following table lists the enum attribute value defined in this | |||
| supported/ | document as an additional type2 enum value for use with the | |||
| "operations-supported" Printer attribute defined in [RFC2911]. This | ||||
| is to be registered according to the procedures in RFC 2911 [RFC2911] | ||||
| section 6.1. | ||||
| The registry entry will contain the following information: | type2 enum Attribute Values: Value Ref. Section: | |||
| Send-Notifications 0x001D RFC NNNN 6.2 | ||||
| Value Ref. Section: | The resulting enum attribute value registration will be published in | |||
| Send-Notifications 0x001D RFC NNNN 6.2.1 | the | |||
| ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute- | ||||
| values/operations-supported/ | ||||
| area. | ||||
| 13.3 Status code Registrations | 13.3 Status code Registrations | |||
| The status codes defined in this document will be published by IANA | The following table lists all the status codes defined in this | |||
| according to the procedures in RFC 2911 [RFC2911] section 6.6 with | document. These are to be registered according to the procedures in | |||
| the following path: | RFC 2911 [RFC2911] section 6.6. | |||
| ftp.isi.edu/iana/assignments/ipp/status-codes/ | ||||
| The registry entry will contain the following information: | ||||
| Status codes: Ref. Section: | Status codes: Ref. Section: | |||
| successful-ok-ignored-notifications (0x0004) RFC NNNN 9.1.1 | successful-ok-ignored-notifications (0x0004) RFC NNNN 9.1.1 | |||
| client-error-ignored-all-notifications (0x0416) RFC NNNN 9.1.2 | client-error-ignored-all-notifications (0x0416) RFC NNNN 9.1.2 | |||
| Status Codes in Event Notification Attributes Groups: | ||||
| client-error-not-found (0x0406) RFC NNNN 9.2.1 | ||||
| successful-ok-but-cancel-subscription (0x0006) RFC NNNN 9.2.2 | ||||
| The resulting status code registrations will be published in the | ||||
| ftp://ftp.iana.org/in-notes/iana/assignments/ipp/status-codes/ | ||||
| area. | ||||
| 14 Internationalization Considerations | 14 Internationalization Considerations | |||
| When the client requests Human Consumable form by supplying the | When the client requests Human Consumable form by supplying the | |||
| "notify-text-format" operation attribute (see [ipp-ntfy]), the IPP | "notify-text-format" operation attribute (see [ipp-ntfy]), the IPP | |||
| Printer (or any Notification Service that the IPP Printer might be | Printer (or any Notification Service that the IPP Printer might be | |||
| configured to use) supplies and localizes the text value of the | configured to use) supplies and localizes the text value of the | |||
| "human-readable-report" attribute in the Notification according to | "human-readable-report" attribute in the Notification according to | |||
| the charset and natural language requested in the notification | the charset and natural language requested in the notification | |||
| subscription. | subscription. | |||
| skipping to change at page 25, line 39 ¶ | skipping to change at page 28, line 10 ¶ | |||
| recipients MAY support Basic Authentication (described in HTTP/1.1 | recipients MAY support Basic Authentication (described in HTTP/1.1 | |||
| [RFC2616]) for client authentication if the channel is secure. TLS | [RFC2616]) for client authentication if the channel is secure. TLS | |||
| with the above mandated cipher suite can provide such a secure | with the above mandated cipher suite can provide such a secure | |||
| channel. | channel. | |||
| 16 References | 16 References | |||
| [ipp-iig] | [ipp-iig] | |||
| Hastings, T., Manros, C., Kugler, K, Holst H., Zehler, P., | Hastings, T., Manros, C., Kugler, K, Holst H., Zehler, P., | |||
| "Internet Printing Protocol/1.1: draft-ietf-ipp-implementers- | "Internet Printing Protocol/1.1: draft-ietf-ipp-implementers- | |||
| guide-v11-02.txt, work in progress, January 25, 2001 | guide-v11-03.txt, work in progress, July 17, 2001 | |||
| [ipp-ntfy] | [ipp-ntfy] | |||
| Isaacson, S., Martin, J., deBry, R., Hastings, T., Shepherd, M., | Isaacson, S., Martin, J., deBry, R., Hastings, T., Shepherd, M., | |||
| Bergman, R., "Internet Printing Protocol/1.1: IPP Event | Bergman, R., "Internet Printing Protocol/1.1: IPP Event | |||
| Notification Specification", <draft-ietf-ipp-not-spec-06.txt>, | Notifications and Subscriptions", <draft-ietf-ipp-not-spec-07.txt>, | |||
| January 24, 2001. | July 17, 2001. | |||
| [IANA-MIMEREG] | [IANA-MIMEREG] | |||
| IANA MIME Media Types Registry. ftp://ftp.isi.edu/in- | IANA MIME Media Types Registry. ftp://ftp.iana.org/in- | |||
| notes/iana/assignments/media-types/ | notes/iana/assignments/media-types/ | |||
| [IANA-PORTREG] | [IANA-PORTREG] | |||
| IANA Port Numbers Registry. ftp://ftp.isi.edu/in- | IANA Port Numbers Registry. ftp://ftp.iana.org/in- | |||
| notes/iana/assignments/port-numbers | notes/iana/assignments/port-numbers | |||
| [RFC1900] | [RFC1900] | |||
| B. Carpenter, Y. Rekhter. Renumbering Needs Work, RFC 1900, | B. Carpenter, Y. Rekhter. Renumbering Needs Work, RFC 1900, | |||
| February 1996. | February 1996. | |||
| [RFC2026] | [RFC2026] | |||
| S. Bradner, "The Internet Standards Process -- Revision 3", RFC | S. Bradner, "The Internet Standards Process -- Revision 3", RFC | |||
| 2026, October 1996. | 2026, October 1996. | |||
| skipping to change at page 27, line 48 ¶ | skipping to change at page 30, line 22 ¶ | |||
| Tom Hastings | Tom Hastings | |||
| Xerox Corporation | Xerox Corporation | |||
| 737 Hawaii St. ESAE 231 | 737 Hawaii St. ESAE 231 | |||
| El Segundo, CA 90245 | El Segundo, CA 90245 | |||
| Phone: 310-333-6413 | Phone: 310-333-6413 | |||
| Fax: 310-333-5514 | Fax: 310-333-5514 | |||
| e-mail: hastings@cp10.es.xerox.com | e-mail: hastings@cp10.es.xerox.com | |||
| IPP Web Page: http://www.pwg.org/ipp/ | ||||
| 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. | ||||
| 18 Summary of Base IPP documents | 18 Summary of Base IPP documents | |||
| The base IPP documents includes: | The base 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 | Rationale for the Structure and Model and Protocol for the | |||
| Internet Printing Protocol [RFC2568] | Internet 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 [ipp-iig] | Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig] | |||
| Mapping between LPD and IPP Protocols [RFC2569] | Mapping between LPD and IPP Protocols [RFC2569] | |||
| Internet Printing Protocol (IPP): IPP Event Notification | Internet Printing Protocol (IPP): IPP Event Notifications and | |||
| Specification [ipp-ntfy] | Subscriptions [ipp-ntfy] | |||
| The "Design Goals for an Internet Printing Protocol" document takes a | The "Design Goals for an Internet Printing Protocol" document takes a | |||
| broad look at distributed printing functionality, and it enumerates | broad look at distributed printing functionality, and it enumerates | |||
| real-life scenarios that help to clarify the features that need to be | real-life scenarios that help to clarify the features that need to be | |||
| included in a printing protocol for the Internet. It identifies | included in a printing protocol for the Internet. It identifies | |||
| requirements for three types of users: end users, operators, and | requirements for three types of users: end users, operators, and | |||
| administrators. It calls out a subset of end user requirements that | administrators. It calls out a subset of end user requirements that | |||
| are satisfied in IPP/1.0 [RFC2566, RFC2565]. A few OPTIONAL operator | are satisfied in IPP/1.0 [RFC2566, RFC2565]. A few OPTIONAL operator | |||
| operations have been added to IPP/1.1 [RFC2911, RFC2910]. | operations have been added to IPP/1.1 [RFC2911, RFC2910]. | |||
| skipping to change at page 29, line 9 ¶ | skipping to change at page 32, line 5 ¶ | |||
| objects. It is intended to help them understand IPP/1.1 and some of | objects. It is intended to help them understand IPP/1.1 and some of | |||
| the considerations that may assist them in the design of their client | the considerations that may assist them in the design of their client | |||
| and/or IPP object implementations. For example, a typical order of | and/or IPP object implementations. For example, a typical order of | |||
| processing requests is given, including error checking. Motivation | processing requests is given, including error checking. Motivation | |||
| for some of the specification decisions is also included. | for some of the specification decisions is also included. | |||
| The "Mapping between LPD and IPP Protocols" document gives some | The "Mapping between LPD and IPP Protocols" document gives some | |||
| advice to implementers of gateways between IPP and LPD (Line Printer | advice to implementers of gateways between IPP and LPD (Line Printer | |||
| Daemon) implementations. | Daemon) implementations. | |||
| The "Internet Printing Protocol (IPP): IPP Event Notification | The "Internet Printing Protocol (IPP): IPP Event Notifications and | |||
| Specification" document defines an extension to IPP/1.0 [RFC2566, | Subscriptions" document defines an extension to IPP/1.0 [RFC2566, | |||
| RFC2565] and IPP/1.1 [RFC2911, RFC2910]. This extension allows a | RFC2565] and IPP/1.1 [RFC2911, RFC2910]. This extension allows a | |||
| client to subscribe to printing related Events by creating a | client to subscribe to printing related Events by creating a | |||
| Subscription Object and defines the semantics for delivering | Subscription Object and defines the semantics for delivering | |||
| asynchronous Event Notifications to the specified Notification | asynchronous Event Notifications to the specified Notification | |||
| Recipient via a specified Delivery Method (i.e., protocols) defined | Recipient via a specified Delivery Method (i.e., protocols) defined | |||
| in (separate) Delivery Method documents. | in (separate) Delivery Method documents. | |||
| 19 Full Copyright Statement | 19 Full Copyright Statement | |||
| Copyright (C) The Internet Society (2001). All Rights Reserved. | Copyright (C) The Internet Society (2001). All Rights Reserved. | |||
| End of changes. 107 change blocks. | ||||
| 242 lines changed or deleted | 278 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/ | ||||