draft-ietf-ipp-model-v11-03.txt   draft-ietf-ipp-model-v11-04.txt 
INTERNET-DRAFT INTERNET-DRAFT
draft-ietf-ipp-model-v11-03.txt draft-ietf-ipp-model-v11-04.txt
R. deBry R. deBry
Utah Valley State College Utah Valley State College
T. Hastings (editor) T. Hastings (editor)
Xerox Corporation Xerox Corporation
R. Herriot R. Herriot
Xerox Corporation Xerox Corporation
S. Isaacson S. Isaacson
Novell, Inc. Novell, Inc.
P. Powell P. Powell
Astart Technologies Astart Technologies
June 11, 1998 June 23, 1999
Internet Printing Protocol/1.1: Model and Semantics Internet Printing Protocol/1.1: Model and Semantics
Copyright (C) The Internet Society (1999). All Rights Reserved. Copyright (C) The Internet Society (1999). All Rights Reserved.
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of [RFC2026]. Internet-Drafts are working provisions of Section 10 of [RFC2026]. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and documents of the Internet Engineering Task Force (IETF), its areas, and
skipping to change at page 2, line 5 skipping to change at page 2, line 5
model consists of a Printer and a Job object. A Job optionally supports model consists of a Printer and a Job object. A Job optionally supports
multiple documents. IPP 1.1 semantics allow end-users and operators to multiple documents. IPP 1.1 semantics allow end-users and operators to
query printer capabilities, submit print jobs, inquire about the status query printer capabilities, submit print jobs, inquire about the status
of print jobs and printers, cancel, hold, release, and restart print of print jobs and printers, cancel, hold, release, and restart print
jobs. IPP 1.1 semantics allow operators to pause, resume, and purge jobs. IPP 1.1 semantics allow operators to pause, resume, and purge
(jobs from) Printer objects. This document also addresses security, (jobs from) Printer objects. This document also addresses security,
internationalization, and directory issues. internationalization, and directory issues.
The full set of IPP documents includes: The full set of IPP documents includes:
Design Goals for an Internet Printing Protocol [RFC2567] Design Goals for an Internet Printing Protocol [RFC2567]
Expires December 11, 1999 Expires December 23, 1999
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 (this document) Internet Printing Protocol/1.1: Model and Semantics (this document)
Internet Printing Protocol/1.1: Encoding and Transport [IPP-PRO] Internet Printing Protocol/1.1: Encoding and Transport [IPP-PRO]
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]
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
skipping to change at page 2, line 30 skipping to change at page 2, line 30
added to IPP/1.1. added to IPP/1.1.
The "Rationale for the Structure and Model and Protocol for the Internet The "Rationale for the Structure and Model and Protocol for the Internet
Printing Protocol" document describes IPP from a high level view, Printing Protocol" document describes IPP from a high level view,
defines a roadmap for the various documents that form the suite of IPP defines a roadmap for the various documents that form the suite of IPP
specification documents, and gives background and rationale for the IETF specification documents, and gives background and rationale for the IETF
working group's major decisions. working group's major decisions.
The "Internet Printing Protocol/1.1: Encoding and Transport" document is The "Internet Printing Protocol/1.1: Encoding and Transport" document is
a formal mapping of the abstract operations and attributes defined in a formal mapping of the abstract operations and attributes defined in
the model document onto HTTP/1.1. It defines the encoding rules for a the model document onto HTTP/1.1 [RFC2616]. It defines the encoding
new Internet MIME media type called "application/ipp". This document rules for a new Internet MIME media type called "application/ipp". This
also defines the rules for transporting over HTTP a message body whose document also defines the rules for transporting over HTTP a message
Content-Type is "application/ipp". This document defines a new scheme body whose Content-Type is "application/ipp". This document defines a
named 'ipp' for identifying IPP printers and jobs. Finally, this new scheme named 'ipp' for identifying IPP printers and jobs.
document defines interoperability rules for supporting IPP/1.0 clients.
The "Internet Printing Protocol/1.1: Implementer's Guide" document gives The "Internet Printing Protocol/1.1: Implementer's Guide" document gives
insight and advice to implementers of IPP clients and IPP objects. It insight and advice to implementers of IPP clients and IPP objects. It
is intended to help them understand IPP/1.1 and some of the is intended to help them understand IPP/1.1 and some of the
considerations that may assist them in the design of their client and/or considerations that may assist them in the design of their client and/or
IPP object implementations. For example, a typical order of processing IPP object implementations. For example, a typical order of processing
requests is given, including error checking. Motivation for some of the requests is given, including error checking. Motivation for some of the
specification decisions is also included. specification decisions is also included.
The "Mapping between LPD and IPP Protocols" document gives some advice The "Mapping between LPD and IPP Protocols" document gives some advice
to implementers of gateways between IPP and LPD (Line Printer Daemon) to implementers of gateways between IPP and LPD (Line Printer Daemon)
implementations. implementations.
Expires December 11, 1999 Expires December 23, 1999
Table of Contents Table of Contents
1. Introduction.....................................................9 1. Introduction.....................................................9
1.1 Simplified Printing Model...................................10 1.1 Simplified Printing Model....................................10
2. IPP Objects.....................................................12 2. IPP Objects.....................................................12
2.1 Printer Object..............................................13 2.1 Printer Object...............................................13
2.2 Job Object..................................................15 2.2 Job Object...................................................15
2.3 Object Relationships........................................16 2.3 Object Relationships.........................................16
2.4 Object Identity.............................................17 2.4 Object Identity..............................................17
3. IPP Operations..................................................20 3. IPP Operations..................................................20
3.1 Common Semantics............................................20 3.1 Common Semantics.............................................20
3.1.1 Required Parameters......................................21 3.1.1 Required Parameters......................................21
3.1.2 Operation IDs and Request IDs............................21 3.1.2 Operation IDs and Request IDs............................21
3.1.3 Attributes...............................................21 3.1.3 Attributes...............................................21
3.1.4 Character Set and Natural Language Operation Attributes..23 3.1.4 Character Set and Natural Language Operation Attributes..23
3.1.4.1 Request Operation Attributes..........................23 3.1.4.1 Request Operation Attributes..........................23
3.1.4.2 Response Operation Attributes.........................27 3.1.4.2 Response Operation Attributes.........................27
3.1.5 Operation Targets........................................28 3.1.5 Operation Targets........................................28
3.1.6 Operation Response Status Codes and Status Messages......29 3.1.6 Operation Response Status Codes and Status Messages......29
3.1.6.1 "status-code" (type2 enum)............................29 3.1.6.1 "status-code" (type2 enum)............................29
3.1.6.2 "status-message" (text(255))..........................30 3.1.6.2 "status-message" (text(255))..........................30
3.1.6.3 "detailed-status-message" (text(MAX)) ...............31 3.1.6.3 "detailed-status-message" (text(MAX)) ...............31
3.1.6.4 "document-access-error" (text(MAX)) .................31 3.1.6.4 "document-access-error" (text(MAX)) .................31
3.1.7 Unsupported Attributes...................................31 3.1.7 Unsupported Attributes...................................31
3.1.8 Versions.................................................33 3.1.8 Versions.................................................33
3.1.9 Job Creation Operations..................................35 3.1.9 Job Creation Operations..................................35
3.2 Printer Operations..........................................37 3.2 Printer Operations...........................................37
3.2.1 Print-Job Operation......................................37 3.2.1 Print-Job Operation......................................37
3.2.1.1 Print-Job Request.....................................37 3.2.1.1 Print-Job Request.....................................37
3.2.1.2 Print-Job Response....................................41 3.2.1.2 Print-Job Response....................................41
3.2.2 Print-URI Operation......................................43 3.2.2 Print-URI Operation......................................43
3.2.3 Validate-Job Operation...................................44 3.2.3 Validate-Job Operation...................................44
3.2.4 Create-Job Operation.....................................44 3.2.4 Create-Job Operation.....................................44
3.2.5 Get-Printer-Attributes Operation.........................45 3.2.5 Get-Printer-Attributes Operation.........................45
3.2.5.1 Get-Printer-Attributes Request........................46 3.2.5.1 Get-Printer-Attributes Request........................46
3.2.5.2 Get-Printer-Attributes Response.......................47 3.2.5.2 Get-Printer-Attributes Response.......................47
3.2.6 Get-Jobs Operation.......................................48 3.2.6 Get-Jobs Operation.......................................48
3.2.6.1 Get-Jobs Request......................................49 3.2.6.1 Get-Jobs Request......................................49
3.2.6.2 Get-Jobs Response.....................................50 3.2.6.2 Get-Jobs Response.....................................50
3.2.7 Pause-Printer Operation..................................51 3.2.7 Pause-Printer Operation..................................51
3.2.7.1 Pause-Printer Request.................................53 3.2.7.1 Pause-Printer Request.................................53
3.2.7.2 Pause-Printer Response................................53 3.2.7.2 Pause-Printer Response................................53
3.2.8 Resume-Printer Operation.................................53 3.2.8 Resume-Printer Operation.................................53
3.2.9 Purge-Jobs Operation.....................................54 3.2.9 Purge-Jobs Operation.....................................54
3.3 Job Operations..............................................55 3.3 Job Operations...............................................55
3.3.1 Send-Document Operation..................................55 3.3.1 Send-Document Operation..................................55
3.3.1.1 Send-Document Request.................................56 3.3.1.1 Send-Document Request.................................56
3.3.1.2 Send-Document Response................................57 3.3.1.2 Send-Document Response................................57
3.3.2 Send-URI Operation.......................................58 3.3.2 Send-URI Operation.......................................58
3.3.3 Cancel-Job Operation.....................................58 3.3.3 Cancel-Job Operation.....................................58
3.3.3.1 Cancel-Job Request....................................59 3.3.3.1 Cancel-Job Request....................................59
Expires December 11, 1999 Expires December 23, 1999
3.3.3.2 Cancel-Job Response...................................60 3.3.3.2 Cancel-Job Response...................................60
3.3.4 Get-Job-Attributes Operation.............................60 3.3.4 Get-Job-Attributes Operation.............................60
3.3.4.1 Get-Job-Attributes Request............................61 3.3.4.1 Get-Job-Attributes Request............................61
3.3.4.2 Get-Job-Attributes Response...........................62 3.3.4.2 Get-Job-Attributes Response...........................62
3.3.5 Hold-Job Operation.......................................62 3.3.5 Hold-Job Operation.......................................62
3.3.5.1 Hold-Job Request......................................63 3.3.5.1 Hold-Job Request......................................63
3.3.5.2 Hold-Job Response.....................................64 3.3.5.2 Hold-Job Response.....................................64
3.3.6 Release-Job Operation....................................64 3.3.6 Release-Job Operation....................................64
3.3.7 Restart-Job Operation....................................65 3.3.7 Restart-Job Operation....................................65
3.3.7.1 Restart-Job Request...................................66 3.3.7.1 Restart-Job Request...................................66
3.3.7.2 Restart-Job Response..................................67 3.3.7.2 Restart-Job Response..................................67
4. Object Attributes...............................................68 4. Object Attributes...............................................68
4.1 Attribute Syntaxes..........................................68 4.1 Attribute Syntaxes...........................................68
4.1.1 'text'...................................................69 4.1.1 'text'...................................................69
4.1.1.1 'textWithoutLanguage'.................................70 4.1.1.1 'textWithoutLanguage'.................................70
4.1.1.2 'textWithLanguage'....................................70 4.1.1.2 'textWithLanguage'....................................70
4.1.2 'name'...................................................71 4.1.2 'name'...................................................71
4.1.2.1 'nameWithoutLanguage'.................................71 4.1.2.1 'nameWithoutLanguage'.................................71
4.1.2.2 'nameWithLanguage'....................................71 4.1.2.2 'nameWithLanguage'....................................71
4.1.2.3 Matching 'name' attribute values......................72 4.1.2.3 Matching 'name' attribute values......................72
4.1.3 'keyword'................................................72 4.1.3 'keyword'................................................72
4.1.4 'enum'...................................................73 4.1.4 'enum'...................................................73
4.1.5 'uri'....................................................73 4.1.5 'uri'....................................................73
skipping to change at page 4, line 43 skipping to change at page 4, line 43
4.1.9 'mimeMediaType'..........................................75 4.1.9 'mimeMediaType'..........................................75
4.1.9.1 Application/octet-stream -- Auto-Sensing the document 4.1.9.1 Application/octet-stream -- Auto-Sensing the document
format 76 format 76
4.1.10 'octetString'............................................77 4.1.10 'octetString'............................................77
4.1.11 'boolean'................................................77 4.1.11 'boolean'................................................77
4.1.12 'integer'................................................77 4.1.12 'integer'................................................77
4.1.13 'rangeOfInteger'.........................................77 4.1.13 'rangeOfInteger'.........................................77
4.1.14 'dateTime'...............................................77 4.1.14 'dateTime'...............................................77
4.1.15 'resolution'.............................................78 4.1.15 'resolution'.............................................78
4.1.16 '1setOf X'..............................................78 4.1.16 '1setOf X'..............................................78
4.2 Job Template Attributes.....................................78 4.2 Job Template Attributes......................................78
4.2.1 job-priority (integer(1:100))............................82 4.2.1 job-priority (integer(1:100))............................82
4.2.2 job-hold-until (type3 keyword | name (MAX))..............83 4.2.2 job-hold-until (type3 keyword | name (MAX))..............83
4.2.3 job-sheets (type3 keyword | name(MAX))...................83 4.2.3 job-sheets (type3 keyword | name(MAX))...................83
4.2.4 multiple-document-handling (type2 keyword)...............84 4.2.4 multiple-document-handling (type2 keyword)...............84
4.2.5 copies (integer(1:MAX))..................................85 4.2.5 copies (integer(1:MAX))..................................85
4.2.6 finishings (1setOf type2 enum)...........................85 4.2.6 finishings (1setOf type2 enum)...........................85
4.2.7 page-ranges (1setOf rangeOfInteger (1:MAX))..............87 4.2.7 page-ranges (1setOf rangeOfInteger (1:MAX))..............87
4.2.8 sides (type2 keyword)....................................88 4.2.8 sides (type2 keyword)....................................88
4.2.9 number-up (integer(1:MAX))...............................89 4.2.9 number-up (integer(1:MAX))...............................89
4.2.10 orientation-requested (type2 enum).......................89 4.2.10 orientation-requested (type2 enum).......................89
4.2.11 media (type3 keyword | name(MAX))........................91 4.2.11 media (type3 keyword | name(MAX))........................91
4.2.12 printer-resolution (resolution)..........................91 4.2.12 printer-resolution (resolution)..........................91
4.2.13 print-quality (type2 enum)...............................91 4.2.13 print-quality (type2 enum)...............................91
4.3 Job Description Attributes..................................92 4.3 Job Description Attributes...................................92
4.3.1 job-uri (uri)............................................94 4.3.1 job-uri (uri)............................................94
4.3.2 job-id (integer(1:MAX))..................................94 4.3.2 job-id (integer(1:MAX))..................................94
Expires December 11, 1999 Expires December 23, 1999
4.3.3 job-printer-uri (uri)....................................94 4.3.3 job-printer-uri (uri)....................................94
4.3.4 job-more-info (uri)......................................95 4.3.4 job-more-info (uri)......................................95
4.3.5 job-name (name(MAX)).....................................95 4.3.5 job-name (name(MAX)).....................................95
4.3.6 job-originating-user-name (name(MAX))....................95 4.3.6 job-originating-user-name (name(MAX))....................95
4.3.7 job-state (type1 enum)...................................95 4.3.7 job-state (type1 enum)...................................95
4.3.7.1 Forwarding Servers ..................................98 4.3.7.1 Forwarding Servers ..................................98
4.3.7.2 Partitioning of Job States............................98 4.3.7.2 Partitioning of Job States............................98
4.3.8 job-state-reasons (1setOf type2 keyword)................99 4.3.8 job-state-reasons (1setOf type2 keyword)................99
4.3.9 job-state-message (text(MAX))...........................103 4.3.9 job-state-message (text(MAX))...........................103
4.3.10 job-detailed-status-messages (1setOf text(MAX)) ........103 4.3.10 job-detailed-status-messages (1setOf text(MAX)) ........103
skipping to change at page 5, line 39 skipping to change at page 5, line 39
4.3.17 Job Size Attributes.....................................106 4.3.17 Job Size Attributes.....................................106
4.3.17.1 job-k-octets (integer(0:MAX))........................106 4.3.17.1 job-k-octets (integer(0:MAX))........................106
4.3.17.2 job-impressions (integer(0:MAX)).....................107 4.3.17.2 job-impressions (integer(0:MAX)).....................107
4.3.17.3 job-media-sheets (integer(0:MAX))....................107 4.3.17.3 job-media-sheets (integer(0:MAX))....................107
4.3.18 Job Progress Attributes.................................107 4.3.18 Job Progress Attributes.................................107
4.3.18.1 job-k-octets-processed (integer(0:MAX))..............107 4.3.18.1 job-k-octets-processed (integer(0:MAX))..............107
4.3.18.2 job-impressions-completed (integer(0:MAX))...........108 4.3.18.2 job-impressions-completed (integer(0:MAX))...........108
4.3.18.3 job-media-sheets-completed (integer(0:MAX))..........108 4.3.18.3 job-media-sheets-completed (integer(0:MAX))..........108
4.3.19 attributes-charset (charset)............................108 4.3.19 attributes-charset (charset)............................108
4.3.20 attributes-natural-language (naturalLanguage)...........108 4.3.20 attributes-natural-language (naturalLanguage)...........108
4.4 Printer Description Attributes.............................109 4.4 Printer Description Attributes..............................109
4.4.1 printer-uri-supported (1setOf uri)......................111 4.4.1 printer-uri-supported (1setOf uri)......................111
4.4.2 uri-authentication-supported (1setOf type2 keyword) ...111 4.4.2 uri-authentication-supported (1setOf type2 keyword) ...111
4.4.3 uri-security-supported (1setOf type2 keyword)...........112 4.4.3 uri-security-supported (1setOf type2 keyword)...........112
4.4.4 printer-name (name(127))................................114 4.4.4 printer-name (name(127))................................114
4.4.5 printer-location (text(127))............................114 4.4.5 printer-location (text(127))............................114
4.4.6 printer-info (text(127))................................114 4.4.6 printer-info (text(127))................................114
4.4.7 printer-more-info (uri).................................114 4.4.7 printer-more-info (uri).................................114
4.4.8 printer-driver-installer (uri)..........................114 4.4.8 printer-driver-installer (uri)..........................114
4.4.9 printer-make-and-model (text(127))......................114 4.4.9 printer-make-and-model (text(127))......................114
4.4.10 printer-more-info-manufacturer (uri)....................115 4.4.10 printer-more-info-manufacturer (uri)....................115
4.4.11 printer-state (type1 enum)..............................115 4.4.11 printer-state (type1 enum)..............................115
4.4.12 printer-state-reasons (1setOf type2 keyword)............115 4.4.12 printer-state-reasons (1setOf type2 keyword)............115
4.4.13 printer-state-message (text(MAX)).......................118 4.4.13 printer-state-message (text(MAX)).......................118
4.4.14 ipp-versions-supported (1setOf type2 keyword) .........118 4.4.14 ipp-versions-supported (1setOf type2 keyword) .........118
4.4.15 operations-supported (1setOf type2 enum)................118 4.4.15 operations-supported (1setOf type2 enum)................118
4.4.16 multiple-document-jobs-supported (boolean) ............119 4.4.16 multiple-document-jobs-supported (boolean) ............119
4.4.17 charset-configured (charset)............................119 4.4.17 charset-configured (charset)............................119
4.4.18 charset-supported (1setOf charset)......................120 4.4.18 charset-supported (1setOf charset)......................120
4.4.19 natural-language-configured (naturalLanguage)...........120 4.4.19 natural-language-configured (naturalLanguage)...........120
Expires December 11, 1999 Expires December 23, 1999
4.4.20 generated-natural-language-supported (1setOf naturalLanguage) 4.4.20 generated-natural-language-supported (1setOf naturalLanguage)
120 120
4.4.21 document-format-default (mimeMediaType).................121 4.4.21 document-format-default (mimeMediaType).................121
4.4.22 document-format-supported (1setOf mimeMediaType)........121 4.4.22 document-format-supported (1setOf mimeMediaType)........121
4.4.23 printer-is-accepting-jobs (boolean).....................121 4.4.23 printer-is-accepting-jobs (boolean).....................121
4.4.24 queued-job-count (integer(0:MAX)).......................121 4.4.24 queued-job-count (integer(0:MAX)).......................121
4.4.25 printer-message-from-operator (text(127))...............121 4.4.25 printer-message-from-operator (text(127))...............121
4.4.26 color-supported (boolean)...............................122 4.4.26 color-supported (boolean)...............................122
4.4.27 reference-uri-schemes-supported (1setOf uriScheme)......122 4.4.27 reference-uri-schemes-supported (1setOf uriScheme)......122
4.4.28 pdl-override-supported (type2 keyword)..................122 4.4.28 pdl-override-supported (type2 keyword)..................122
skipping to change at page 6, line 27 skipping to change at page 6, line 27
4.4.30 printer-current-time (dateTime).........................123 4.4.30 printer-current-time (dateTime).........................123
4.4.31 multiple-operation-time-out (integer(1:MAX))............123 4.4.31 multiple-operation-time-out (integer(1:MAX))............123
4.4.32 compression-supported (1setOf type3 keyword)............124 4.4.32 compression-supported (1setOf type3 keyword)............124
4.4.33 job-k-octets-supported (rangeOfInteger(0:MAX))..........124 4.4.33 job-k-octets-supported (rangeOfInteger(0:MAX))..........124
4.4.34 job-impressions-supported (rangeOfInteger(0:MAX)).......124 4.4.34 job-impressions-supported (rangeOfInteger(0:MAX)).......124
4.4.35 job-media-sheets-supported (rangeOfInteger(0:MAX))......124 4.4.35 job-media-sheets-supported (rangeOfInteger(0:MAX))......124
4.4.36 pages-per-minute (integer(0:MAX)).......................125 4.4.36 pages-per-minute (integer(0:MAX)).......................125
4.4.37 pages-per-minute-color (integer(0:MAX)).................125 4.4.37 pages-per-minute-color (integer(0:MAX)).................125
5. Conformance....................................................125 5. Conformance....................................................125
5.1 Client Conformance Requirements............................126 5.1 Client Conformance Requirements.............................126
5.2 IPP Object Conformance Requirements........................127 5.2 IPP Object Conformance Requirements.........................127
5.2.1 Objects.................................................127 5.2.1 Objects.................................................127
5.2.2 Operations..............................................127 5.2.2 Operations..............................................127
5.2.3 IPP Object Attributes...................................128 5.2.3 IPP Object Attributes...................................128
5.2.4 Versions................................................128 5.2.4 Versions................................................128
5.2.5 Extensions..............................................129 5.2.5 Extensions..............................................129
5.2.6 Attribute Syntaxes......................................129 5.2.6 Attribute Syntaxes......................................129
5.2.7 Security ...............................................129 5.2.7 Security ...............................................129
5.3 Charset and Natural Language Requirements..................130 5.3 Charset and Natural Language Requirements...................130
6. IANA Considerations (registered and private extensions)........130 6. IANA Considerations (registered and private extensions)........130
6.1 Typed 'keyword' and 'enum' Extensions......................130 6.1 Typed 'keyword' and 'enum' Extensions.......................131
6.2 Attribute Extensibility....................................132 6.2 Attribute Extensibility.....................................133
6.3 Attribute Syntax Extensibility.............................133 6.3 Attribute Syntax Extensibility..............................133
6.4 Operation Extensibility....................................133 6.4 Operation Extensibility.....................................133
6.5 Attribute Groups...........................................134 6.5 Attribute Groups............................................134
6.6 Status Code Extensibility..................................134 6.6 Status Code Extensibility...................................134
6.7 Registration of MIME types/sub-types for document-formats..134 6.7 Registration of MIME types/sub-types for document-formats...135
6.8 Registration of charsets for use in 'charset' attribute values135 6.8 Registration of charsets for use in 'charset' attribute values135
7. Internationalization Considerations............................135 7. Internationalization Considerations............................135
8. Security Considerations........................................138 8. Security Considerations........................................139
8.1 Security Scenarios.........................................139 8.1 Security Scenarios..........................................140
8.1.1 Client and Server in the Same Security Domain...........139 8.1.1 Client and Server in the Same Security Domain...........140
8.1.2 Client and Server in Different Security Domains.........140 8.1.2 Client and Server in Different Security Domains.........140
8.1.3 Print by Reference......................................140 8.1.3 Print by Reference......................................140
8.2 URIs in Operation, Job, and Printer attributes.............140 8.2 URIs in Operation, Job, and Printer attributes..............140
8.3 URIs for each authentication mechanisms....................140 8.3 URIs for each authentication mechanisms.....................141
8.4 Restricted Queries.........................................141 8.4 Restricted Queries..........................................142
8.5 Operations performed by operators and system administrators141 8.5 Operations performed by operators and system administrators.142
8.6 Queries on jobs submitted using non-IPP protocols..........142 8.6 Queries on jobs submitted using non-IPP protocols...........142
Expires December 11, 1999 Expires December 23, 1999
9. References.....................................................142 9. References.....................................................143
10.Author's Address..............................................146 10.Author's Address..............................................146
11.Formats for IPP Registration Proposals........................148 11.Formats for IPP Registration Proposals........................149
11.1 Type2 keyword attribute values registration................148 11.1Type2 keyword attribute values registration.................149
11.2 Type3 keyword attribute values registration................148 11.2Type3 keyword attribute values registration.................149
11.3 Type2 enum attribute values registration...................148 11.3Type2 enum attribute values registration....................149
11.4 Type3 enum attribute values registration...................149 11.4Type3 enum attribute values registration....................150
11.5 Attribute registration.....................................149 11.5Attribute registration......................................150
11.6 Attribute Syntax registration..............................150 11.6Attribute Syntax registration...............................151
11.7 Operation registration.....................................150 11.7Operation registration......................................151
11.8 Attribute Group registration...............................150 11.8Attribute Group registration................................151
11.9 Status code registration...................................151 11.9Status code registration....................................152
12.APPENDIX A: Terminology.......................................151 12.APPENDIX A: Terminology.......................................152
12.1 Conformance Terminology....................................151 12.1Conformance Terminology.....................................152
12.1.1 NEED NOT................................................151 12.1.1 NEED NOT................................................152
12.2 Model Terminology..........................................151 12.2Model Terminology...........................................152
12.2.1 Keyword.................................................151 12.2.1 Keyword.................................................152
12.2.2 Attributes..............................................151 12.2.2 Attributes..............................................152
12.2.2.1 Attribute Name.......................................152 12.2.2.1 Attribute Name.......................................153
12.2.2.2 Attribute Group Name.................................152 12.2.2.2 Attribute Group Name.................................153
12.2.2.3 Attribute Value......................................152 12.2.2.3 Attribute Value......................................153
12.2.2.4 Attribute Syntax.....................................152 12.2.2.4 Attribute Syntax.....................................153
12.2.3 Supports................................................152 12.2.3 Supports................................................153
12.2.4 print-stream page.......................................154 12.2.4 print-stream page.......................................155
12.2.5 impression..............................................154 12.2.5 impression..............................................155
13.APPENDIX B: Status Codes and Suggested Status Code Messages..154 13.APPENDIX B: Status Codes and Suggested Status Code Messages..155
13.1 Status Codes...............................................155 13.1Status Codes................................................156
13.1.1 Informational...........................................156 13.1.1 Informational...........................................157
13.1.2 Successful Status Codes.................................156 13.1.2 Successful Status Codes.................................157
13.1.2.1 successful-ok (0x0000)...............................156 13.1.2.1 successful-ok (0x0000)...............................157
13.1.2.2 successful-ok-ignored-or-substituted-attributes (0x0001)156 13.1.2.2 successful-ok-ignored-or-substituted-attributes (0x0001)157
13.1.2.3 successful-ok-conflicting-attributes (0x0002)........156 13.1.2.3 successful-ok-conflicting-attributes (0x0002)........157
13.1.3 Redirection Status Codes................................157 13.1.3 Redirection Status Codes................................158
13.1.4 Client Error Status Codes...............................157 13.1.4 Client Error Status Codes...............................158
13.1.4.1 client-error-bad-request (0x0400)....................157 13.1.4.1 client-error-bad-request (0x0400)....................158
13.1.4.2 client-error-forbidden (0x0401)......................157 13.1.4.2 client-error-forbidden (0x0401)......................158
13.1.4.3 client-error-not-authenticated (0x0402)..............157 13.1.4.3 client-error-not-authenticated (0x0402)..............158
13.1.4.4 client-error-not-authorized (0x0403).................157 13.1.4.4 client-error-not-authorized (0x0403).................158
13.1.4.5 client-error-not-possible (0x0404)...................158 13.1.4.5 client-error-not-possible (0x0404)...................159
13.1.4.6 client-error-timeout (0x0405)........................158 13.1.4.6 client-error-timeout (0x0405)........................159
13.1.4.7 client-error-not-found (0x0406)......................158 13.1.4.7 client-error-not-found (0x0406)......................159
13.1.4.8 client-error-gone (0x0407)...........................158 13.1.4.8 client-error-gone (0x0407)...........................159
13.1.4.9 client-error-request-entity-too-large (0x0408).......159 13.1.4.9 client-error-request-entity-too-large (0x0408).......160
13.1.4.10client-error-request-value-too-long (0x0409).........159 13.1.4.10client-error-request-value-too-long (0x0409).........160
13.1.4.11client-error-document-format-not-supported (0x040A)..159 13.1.4.11client-error-document-format-not-supported (0x040A)..160
13.1.4.12client-error-attributes-or-values-not-supported (0x040B)159 13.1.4.12client-error-attributes-or-values-not-supported (0x040B)160
13.1.4.13client-error-uri-scheme-not-supported (0x040C).......160 13.1.4.13client-error-uri-scheme-not-supported (0x040C).......161
13.1.4.14client-error-charset-not-supported (0x040D)..........160 13.1.4.14client-error-charset-not-supported (0x040D)..........161
13.1.4.15client-error-conflicting-attributes (0x040E).........160 13.1.4.15client-error-conflicting-attributes (0x040E).........161
13.1.4.16client-error-compression-not-supported (0x040F) .....160 13.1.4.16client-error-compression-not-supported (0x040F) .....161
Expires December 11, 1999 Expires December 23, 1999
13.1.4.17client-error-compression-error (0x0410) ............161 13.1.4.17client-error-compression-error (0x0410) ............162
13.1.4.18client-error-document-format-error (0x0411) ........161 13.1.4.18client-error-document-format-error (0x0411) ........162
13.1.4.19client-error-document-access-error (0x0412) ........161 13.1.4.19client-error-document-access-error (0x0412) ........162
13.1.5 Server Error Status Codes...............................161 13.1.5 Server Error Status Codes...............................162
13.1.5.1 server-error-internal-error (0x0500).................161 13.1.5.1 server-error-internal-error (0x0500).................162
13.1.5.2 server-error-operation-not-supported (0x0501)........162 13.1.5.2 server-error-operation-not-supported (0x0501)........163
13.1.5.3 server-error-service-unavailable (0x0502)............162 13.1.5.3 server-error-service-unavailable (0x0502)............163
13.1.5.4 server-error-version-not-supported (0x0503)..........162 13.1.5.4 server-error-version-not-supported (0x0503)..........163
13.1.5.5 server-error-device-error (0x0504)...................162 13.1.5.5 server-error-device-error (0x0504)...................163
13.1.5.6 server-error-temporary-error (0x0505)................163 13.1.5.6 server-error-temporary-error (0x0505)................164
13.1.5.7 server-error-not-accepting-jobs (0x0506).............163 13.1.5.7 server-error-not-accepting-jobs (0x0506).............164
13.1.5.8 server-error-busy (0x0507)...........................163 13.1.5.8 server-error-busy (0x0507)...........................164
13.1.5.9 server-error-job-canceled (0x0508)...................163 13.1.5.9 server-error-job-canceled (0x0508)...................164
13.1.5.10server-error-multiple-document-jobs-not-supported (0x0509) 13.1.5.10server-error-multiple-document-jobs-not-supported (0x0509)
163 164
13.2 Status Codes for IPP Operations............................164 13.2Status Codes for IPP Operations.............................165
14.APPENDIX C: "media" keyword values...........................166 14.APPENDIX C: "media" keyword values...........................167
15.APPENDIX D: Processing IPP Attributes.........................170 15.APPENDIX D: Processing IPP Attributes.........................171
15.1 Fidelity...................................................170 15.1Fidelity....................................................171
15.2 Page Description Language (PDL) Override...................171 15.2Page Description Language (PDL) Override....................172
15.3 Using Job Template Attributes During Document Processing...173 15.3Using Job Template Attributes During Document Processing....174
16.APPENDIX E: Generic Directory Schema..........................174 16.APPENDIX E: Generic Directory Schema..........................175
17.APPENDIX F: Differences between the IPP/1.0 and IPP/1.1 "Model and 17.APPENDIX F: Differences between the IPP/1.0 and IPP/1.1 "Model and
Semantics" Documents..............................................177 Semantics" Documents..............................................178
18.Full Copyright Statement......................................183 18.Full Copyright Statement......................................184
Expires December 11, 1999 Expires December 23, 1999
1. Introduction 1. Introduction
The Internet Printing Protocol (IPP) is an application level protocol The Internet Printing Protocol (IPP) is an application level protocol
that can be used for distributed printing using Internet tools and that can be used for distributed printing using Internet tools and
technologies. IPP version 1.1 (IPP/1.1) focuses only on end user technologies. IPP version 1.1 (IPP/1.1) focuses only on end user
functionality. This document is just one of a suite of documents that functionality. This document is just one of a suite of documents that
fully define IPP. The full set of IPP documents includes: fully define IPP. The full set of IPP documents includes:
Design Goals for an Internet Printing Protocol [RFC2567] Design Goals for an Internet Printing Protocol [RFC2567]
skipping to change at page 10, line 5 skipping to change at page 10, line 5
12.1 on conformance terminology, most of which is taken from 12.1 on conformance terminology, most of which is taken from
RFC 2119 [RFC2119]. RFC 2119 [RFC2119].
- Section 15 is an appendix that helps to clarify the effects of - Section 15 is an appendix that helps to clarify the effects of
interactions between related attributes and their values. interactions between related attributes and their values.
- Section 16 is an appendix that enumerates the subset of Printer - Section 16 is an appendix that enumerates the subset of Printer
attributes that form a generic directory schema. These attributes attributes that form a generic directory schema. These attributes
are useful when registering a Printer so that a client can find the are useful when registering a Printer so that a client can find the
Printer not just by name, but by filtered searches as well. Printer not just by name, but by filtered searches as well.
Expires December 11, 1999 Expires December 23, 1999
- Section 17 is an appendix summarizing the additions and changes - Section 17 is an appendix summarizing the additions and changes
from the IPP/1.0 "Model and Semantics" document [RFC2566] to make from the IPP/1.0 "Model and Semantics" document [RFC2566] to make
this IPP/1.1 document. this IPP/1.1 document.
- Section 18 is the full copyright notice. - Section 18 is the full copyright notice.
1.1 Simplified Printing Model 1.1 Simplified Printing Model
In order to achieve its goal of realizing a workable printing protocol In order to achieve its goal of realizing a workable printing protocol
for the Internet, the Internet Printing Protocol (IPP) is based on a for the Internet, the Internet Printing Protocol (IPP) is based on a
simplified printing model that abstracts the many components of real simplified printing model that abstracts the many components of real
skipping to change at page 11, line 5 skipping to change at page 11, line 5
Each object type has an associated set of operations (see section 3) and Each object type has an associated set of operations (see section 3) and
attributes (see section 4). attributes (see section 4).
It is important, however, to understand that in real system It is important, however, to understand that in real system
implementations (which lie underneath the abstracted IPP/1.1 model), implementations (which lie underneath the abstracted IPP/1.1 model),
there are other components of a print service which are not explicitly there are other components of a print service which are not explicitly
defined in the IPP/1.1 model. The following figure illustrates where defined in the IPP/1.1 model. The following figure illustrates where
IPP/1.1 fits with respect to these other components. IPP/1.1 fits with respect to these other components.
Expires December 11, 1999 Expires December 23, 1999
+--------------+ +--------------+
| Application | | Application |
o +. . . . . . . | o +. . . . . . . |
\|/ | Spooler | \|/ | Spooler |
/ \ +. . . . . . . | +---------+ / \ +. . . . . . . | +---------+
End-User | Print Driver |---| File | End-User | Print Driver |---| File |
+-----------+ +-----+ +------+-------+ +----+----+ +-----------+ +-----+ +------+-------+ +----+----+
| Browser | | GUI | | | | Browser | | GUI | | |
+-----+-----+ +--+--+ | | +-----+-----+ +--+--+ | |
| | | | | | | |
skipping to change at page 12, line 5 skipping to change at page 12, line 5
with the entry in the directory which only represents the Printer with the entry in the directory which only represents the Printer
object. object.
IPP clients implement the IPP protocol on the client side and give end IPP clients implement the IPP protocol on the client side and give end
users (or programs running on behalf of end users) the ability to query users (or programs running on behalf of end users) the ability to query
Printer objects and submit and manage print jobs. An IPP server is just Printer objects and submit and manage print jobs. An IPP server is just
that part of the Printer object that implements the server-side that part of the Printer object that implements the server-side
protocol. The rest of the Printer object implements (or gateways into) protocol. The rest of the Printer object implements (or gateways into)
the application semantics of the print service itself. The Printer the application semantics of the print service itself. The Printer
Expires December 11, 1999 Expires December 23, 1999
objects may be embedded in an output device or may be implemented on a objects may be embedded in an output device or may be implemented on a
host on the network that communicates with an output device. host on the network that communicates with an output device.
When a job is submitted to the Printer object and the Printer object When a job is submitted to the Printer object and the Printer object
validates the attributes in the submission request, the Printer object validates the attributes in the submission request, the Printer object
creates a new Job object. The end user then interacts with this new Job creates a new Job object. The end user then interacts with this new Job
object to query its status and monitor the progress of the job. An end object to query its status and monitor the progress of the job. An end
user can also cancel their print jobs by using the Job object's Cancel- user can also cancel their print jobs by using the Job object's Cancel-
Job operation. An end-user can also hold, release, and restart their Job operation. An end-user can also hold, release, and restart their
skipping to change at page 13, line 5 skipping to change at page 13, line 5
Each attribute included in the set of attributes defining an object type Each attribute included in the set of attributes defining an object type
is labeled as: is labeled as:
- "REQUIRED": each object MUST support the attribute. - "REQUIRED": each object MUST support the attribute.
- "RECOMMENDED": each object SHOULD support the attribute. - "RECOMMENDED": each object SHOULD support the attribute.
- "OPTIONAL": each object MAY support the attribute. - "OPTIONAL": each object MAY support the attribute.
Some definitions of attribute values indicate that an object MUST or Some definitions of attribute values indicate that an object MUST or
SHOULD support the value; otherwise, support of the value is OPTIONAL. SHOULD support the value; otherwise, support of the value is OPTIONAL.
Expires December 11, 1999 Expires December 23, 1999
However, if an implementation supports an attribute, it MUST support at However, if an implementation supports an attribute, it MUST support at
least one of the possible values for that attribute. least one of the possible values for that attribute.
2.1 Printer Object 2.1 Printer Object
The major component of the IPP/1.1 model is the Printer object. A The major component of the IPP/1.1 model is the Printer object. A
Printer object implements the server-side of the IPP/1.1 protocol. Printer object implements the server-side of the IPP/1.1 protocol.
Using the protocol, end users may query the attributes of the Printer Using the protocol, end users may query the attributes of the Printer
object and submit print jobs to the Printer object. The actual object and submit print jobs to the Printer object. The actual
skipping to change at page 14, line 5 skipping to change at page 14, line 5
embedded case below represents configurations 1 and 2. The hosted and embedded case below represents configurations 1 and 2. The hosted and
fan-out figures below represent configurations 3a and 3b. fan-out figures below represent configurations 3a and 3b.
In this document the term "client" refers to a software entity that In this document the term "client" refers to a software entity that
sends IPP operation requests to an IPP Printer object and accepts IPP sends IPP operation requests to an IPP Printer object and accepts IPP
operation responses. A client MAY be: operation responses. A client MAY be:
1. contained within software controlled by an end user, e.g. activated 1. contained within software controlled by an end user, e.g. activated
by the "Print" menu item in an application or by the "Print" menu item in an application or
Expires December 11, 1999 Expires December 23, 1999
2. the print server component that sends IPP requests to either an 2. the print server component that sends IPP requests to either an
output device or another "downstream" print server. output device or another "downstream" print server.
The term "IPP Printer" is a network entity that accepts IPP operation The term "IPP Printer" is a network entity that accepts IPP operation
requests and returns IPP operation responses. As such, an IPP object requests and returns IPP operation responses. As such, an IPP object
MAY be: MAY be:
1. an (embedded) device component that accepts IPP requests and 1. an (embedded) device component that accepts IPP requests and
controls the device or controls the device or
2. a component of a print server that accepts IPP requests (where the 2. a component of a print server that accepts IPP requests (where the
print server controls one or more networked devices using IPP or print server controls one or more networked devices using IPP or
other protocols). other protocols).
Expires December 11, 1999 Expires December 23, 1999
Legend: Legend:
##### indicates a Printer object which is ##### indicates a Printer object which is
either embedded in an output device or is either embedded in an output device or is
hosted in a server. The Printer object hosted in a server. The Printer object
might or might not be capable of queuing/spooling. might or might not be capable of queuing/spooling.
any indicates any network protocol or direct any indicates any network protocol or direct
connect, including IPP connect, including IPP
skipping to change at page 16, line 5 skipping to change at page 16, line 5
2.2 Job Object 2.2 Job Object
A Job object is used to model a print job. A Job object contains A Job object is used to model a print job. A Job object contains
documents. The information required to create a Job object is sent in a documents. The information required to create a Job object is sent in a
create request from the end user via an IPP Client to the Printer create request from the end user via an IPP Client to the Printer
object. The Printer object validates the create request, and if the object. The Printer object validates the create request, and if the
Printer object accepts the request, the Printer object creates the new Printer object accepts the request, the Printer object creates the new
Job object. Section 3 describes each of the Job operations in detail. Job object. Section 3 describes each of the Job operations in detail.
Expires December 11, 1999 Expires December 23, 1999
The characteristics and state of a Job object are described by its The characteristics and state of a Job object are described by its
attributes. Job attributes are grouped into two groups as follows: attributes. Job attributes are grouped into two groups as follows:
- "job-template" attributes: These attributes can be supplied by the - "job-template" attributes: These attributes can be supplied by the
client or end user and include job processing instructions which client or end user and include job processing instructions which
are intended to override any Printer object defaults and/or are intended to override any Printer object defaults and/or
instructions embedded within the document data. (See section 4.2) instructions embedded within the document data. (See section 4.2)
- "job-description" attributes: These attributes describe the Job - "job-description" attributes: These attributes describe the Job
object's identification, state, size, etc. The client supplies some object's identification, state, size, etc. The client supplies some
skipping to change at page 17, line 5 skipping to change at page 17, line 5
(see section 2.4). (see section 2.4).
A Job object is either empty (before any documents have been added) or A Job object is either empty (before any documents have been added) or
contains one or more documents. If the contained document is a stream contains one or more documents. If the contained document is a stream
of document data, that stream can be contained in only one document. of document data, that stream can be contained in only one document.
However, there can be identical copies of the stream in other documents However, there can be identical copies of the stream in other documents
in the same or different Job objects. If the contained document is just in the same or different Job objects. If the contained document is just
a reference to a stream of document data, other documents (in the same a reference to a stream of document data, other documents (in the same
or different Job object(s)) may contain the same reference. or different Job object(s)) may contain the same reference.
Expires December 11, 1999 Expires December 23, 1999
2.4 Object Identity 2.4 Object Identity
All Printer and Job objects are identified by a Uniform Resource All Printer and Job objects are identified by a Uniform Resource
Identifier (URI) [RFC2396] so that they can be persistently and Identifier (URI) [RFC2396] so that they can be persistently and
unambiguously referenced. The notion of a URI is a useful concept, unambiguously referenced. The notion of a URI is a useful concept,
however, until the notion of URI is more stable (i.e., defined more however, until the notion of URI is more stable (i.e., defined more
completely and deployed more widely), it is expected that the URIs used completely and deployed more widely), it is expected that the URIs used
for IPP objects will actually be URLs [RFC2396]. Since every URL is a for IPP objects will actually be URLs [RFC2396]. Since every URL is a
specialized form of a URI, even though the more generic term URI is used specialized form of a URI, even though the more generic term URI is used
skipping to change at page 18, line 5 skipping to change at page 18, line 5
in sections 4.4.1, 4.4.2, and 4.4.3. in sections 4.4.1, 4.4.2, and 4.4.3.
When a job is submitted to the Printer object via a create request, the When a job is submitted to the Printer object via a create request, the
client supplies only a single Printer object URI. The client supplied client supplies only a single Printer object URI. The client supplied
Printer object URI MUST be one of the values in the "printer-uri- Printer object URI MUST be one of the values in the "printer-uri-
supported" Printer attribute. supported" Printer attribute.
IPP/1.1 does not specify how the client obtains the client supplied URI, IPP/1.1 does not specify how the client obtains the client supplied URI,
but it is RECOMMENDED that a Printer object be registered as an entry in but it is RECOMMENDED that a Printer object be registered as an entry in
Expires December 11, 1999 Expires December 23, 1999
a directory service. End-users and programs can then interrogate the a directory service. End-users and programs can then interrogate the
directory searching for Printers. Section 16 defines a generic schema directory searching for Printers. Section 16 defines a generic schema
for Printer object entries in the directory service and describes how for Printer object entries in the directory service and describes how
the entry acts as a bridge to the actual IPP Printer object. The entry the entry acts as a bridge to the actual IPP Printer object. The entry
in the directory that represents the IPP Printer object includes the in the directory that represents the IPP Printer object includes the
possibly many URIs for that Printer object as values in one its possibly many URIs for that Printer object as values in one its
attributes. attributes.
When a client submits a create request to the Printer object, the When a client submits a create request to the Printer object, the
skipping to change at page 19, line 5 skipping to change at page 19, line 5
have no physical-location relationship at all to the Printer object's have no physical-location relationship at all to the Printer object's
URI. Again, the fact that Job objects have URIs allows for flexibility URI. Again, the fact that Job objects have URIs allows for flexibility
and scalability, however, many existing printing systems have local and scalability, however, many existing printing systems have local
models or interface constraints that force print jobs to be identified models or interface constraints that force print jobs to be identified
using only a 32-bit positive integer rather than an independent URI. using only a 32-bit positive integer rather than an independent URI.
This numeric Job ID is only unique within the context of the Printer This numeric Job ID is only unique within the context of the Printer
object to which the create request was originally submitted. Therefore, object to which the create request was originally submitted. Therefore,
in order to allow both types of client access to IPP Job objects (either in order to allow both types of client access to IPP Job objects (either
by Job URI or by numeric Job ID), when the Printer object successfully by Job URI or by numeric Job ID), when the Printer object successfully
Expires December 11, 1999 Expires December 23, 1999
processes a create request and creates a new Job object, the Printer processes a create request and creates a new Job object, the Printer
object MUST generate both a Job URI and a Job ID. The Job ID (stored in object MUST generate both a Job URI and a Job ID. The Job ID (stored in
the "job-id" attribute) only has meaning in the context of the Printer the "job-id" attribute) only has meaning in the context of the Printer
object to which the create request was originally submitted. This object to which the create request was originally submitted. This
requirement to support both Job URIs and Job IDs allows all types of requirement to support both Job URIs and Job IDs allows all types of
clients to access Printer objects and Job objects no matter the local clients to access Printer objects and Job objects no matter the local
constraints imposed on the client implementation. constraints imposed on the client implementation.
In addition to identifiers, Printer objects and Job objects have names In addition to identifiers, Printer objects and Job objects have names
skipping to change at page 20, line 5 skipping to change at page 20, line 5
- Each Printer object has a name (which is not necessarily unique). - Each Printer object has a name (which is not necessarily unique).
The administrator chooses and sets this name through some mechanism The administrator chooses and sets this name through some mechanism
outside the scope of this IPP/1.1 document. The Printer object's outside the scope of this IPP/1.1 document. The Printer object's
"printer-name" attribute contains the name. "printer-name" attribute contains the name.
- Each Job object has a name (which is not necessarily unique). The - Each Job object has a name (which is not necessarily unique). The
client optionally supplies this name in the create request. If the client optionally supplies this name in the create request. If the
client does not supply this name, the Printer object generates a client does not supply this name, the Printer object generates a
name for the Job object. The Job object's "job-name" attribute name for the Job object. The Job object's "job-name" attribute
contains the name. contains the name.
Expires December 11, 1999 Expires December 23, 1999
3. IPP Operations 3. IPP Operations
IPP objects support operations. An operation consists of a request and IPP objects support operations. An operation consists of a request and
a response. When a client communicates with an IPP object, the client a response. When a client communicates with an IPP object, the client
issues an operation request to the URI for that object. Operation issues an operation request to the URI for that object. Operation
requests and responses have parameters that identify the operation. requests and responses have parameters that identify the operation.
Operations also have attributes that affect the run-time characteristics Operations also have attributes that affect the run-time characteristics
of the operation (the intended target, localization information, etc.). of the operation (the intended target, localization information, etc.).
These operation-specific attributes are called operation attributes (as These operation-specific attributes are called operation attributes (as
skipping to change at page 21, line 5 skipping to change at page 21, line 5
The Send-Document and Send-URI Job operations are used to add a new The Send-Document and Send-URI Job operations are used to add a new
document to an existing multi-document Job object created using the document to an existing multi-document Job object created using the
Create-Job operation. Create-Job operation.
3.1 Common Semantics 3.1 Common Semantics
All IPP operations require some common parameters and operation All IPP operations require some common parameters and operation
attributes. These common elements and their semantic characteristics attributes. These common elements and their semantic characteristics
are defined and described in more detail in the following sections. are defined and described in more detail in the following sections.
Expires December 11, 1999 Expires December 23, 1999
3.1.1 Required Parameters 3.1.1 Required Parameters
Every operation request contains the following REQUIRED parameters: Every operation request contains the following REQUIRED parameters:
- a "version-number", - a "version-number",
- an "operation-id", - an "operation-id",
- a "request-id", and - a "request-id", and
- the attributes that are REQUIRED for that type of request. - the attributes that are REQUIRED for that type of request.
skipping to change at page 22, line 5 skipping to change at page 22, line 5
corresponding requests were sent. In such cases, the "request-id" corresponding requests were sent. In such cases, the "request-id"
attribute would not be essential for correct protocol operation. attribute would not be essential for correct protocol operation.
However, in other mappings, the operation responses can come back in any However, in other mappings, the operation responses can come back in any
order. In these cases, the "request-id" would be essential. order. In these cases, the "request-id" would be essential.
3.1.3 Attributes 3.1.3 Attributes
Operation requests and responses are both composed of groups of Operation requests and responses are both composed of groups of
attributes and/or document data. The attributes groups are: attributes and/or document data. The attributes groups are:
Expires December 11, 1999 Expires December 23, 1999
- Operation Attributes: These attributes are passed in the operation - Operation Attributes: These attributes are passed in the operation
and affect the IPP object's behavior while processing the operation and affect the IPP object's behavior while processing the operation
request and may affect other attributes or groups of attributes. request and may affect other attributes or groups of attributes.
Some operation attributes describe the document data associated Some operation attributes describe the document data associated
with the print job and are associated with new Job objects, however with the print job and are associated with new Job objects, however
most operation attributes do not persist beyond the life of the most operation attributes do not persist beyond the life of the
operation. The description of each operation attribute includes operation. The description of each operation attribute includes
conformance statements indicating which operation attributes are conformance statements indicating which operation attributes are
REQUIRED and which are OPTIONAL for an IPP object to support and REQUIRED and which are OPTIONAL for an IPP object to support and
which attributes a client MUST supply in a request and an IPP which attributes a client MUST supply in a request and an IPP
skipping to change at page 23, line 5 skipping to change at page 23, line 5
Later in this section, each operation is formally defined by identifying Later in this section, each operation is formally defined by identifying
the allowed and expected groups of attributes for each request and the allowed and expected groups of attributes for each request and
response. The model identifies a specific order for each group in each response. The model identifies a specific order for each group in each
request or response, but the attributes within each group may be in any request or response, but the attributes within each group may be in any
order, unless specified otherwise. order, unless specified otherwise.
Each attribute definition includes the attribute's name followed by the Each attribute definition includes the attribute's name followed by the
name of its attribute syntax(es) in parenthesizes. In addition, each name of its attribute syntax(es) in parenthesizes. In addition, each
Expires December 11, 1999 Expires December 23, 1999
'integer' attribute is followed by the allowed range in parentheses, 'integer' attribute is followed by the allowed range in parentheses,
(m:n), for values of that attribute. Each 'text' or 'name' attribute is (m:n), for values of that attribute. Each 'text' or 'name' attribute is
followed by the maximum size in octets in parentheses, (size), for followed by the maximum size in octets in parentheses, (size), for
values of that attribute. For more details on attribute syntax notation, values of that attribute. For more details on attribute syntax notation,
see the descriptions of these attributes syntaxes in section 4.1. see the descriptions of these attributes syntaxes in section 4.1.
Note: Document data included in the operation is not strictly an Note: Document data included in the operation is not strictly an
attribute, but it is treated as a special attribute group for ordering attribute, but it is treated as a special attribute group for ordering
purposes. The only operations that support supplying the document data purposes. The only operations that support supplying the document data
skipping to change at page 24, line 5 skipping to change at page 24, line 5
3.1.4.1 Request Operation Attributes 3.1.4.1 Request Operation Attributes
The client MUST supply and the Printer object MUST support the following The client MUST supply and the Printer object MUST support the following
REQUIRED operation attributes in every IPP/1.1 operation request: REQUIRED operation attributes in every IPP/1.1 operation request:
"attributes-charset" (charset): "attributes-charset" (charset):
This operation attribute identifies the charset (coded character This operation attribute identifies the charset (coded character
set and encoding method) used by any 'text' and 'name' attributes set and encoding method) used by any 'text' and 'name' attributes
that the client is supplying in this request. It also identifies that the client is supplying in this request. It also identifies
Expires December 11, 1999 Expires December 23, 1999
the charset that the Printer object MUST use (if supported) for all the charset that the Printer object MUST use (if supported) for all
'text' and 'name' attributes and status messages that the Printer 'text' and 'name' attributes and status messages that the Printer
object returns in the response to this request. See Sections 4.1.1 object returns in the response to this request. See Sections 4.1.1
and 4.1.2 for the definition of the 'text' and 'name' attribute and 4.1.2 for the definition of the 'text' and 'name' attribute
syntaxes. syntaxes.
All clients and IPP objects MUST support the 'utf-8' charset All clients and IPP objects MUST support the 'utf-8' charset
[RFC2279] and MAY support additional charsets provided that they [RFC2279] and MAY support additional charsets provided that they
are registered with IANA [IANA-CS]. If the Printer object does not are registered with IANA [IANA-CS]. If the Printer object does not
support the client supplied charset value, the Printer object MUST support the client supplied charset value, the Printer object MUST
skipping to change at page 25, line 5 skipping to change at page 25, line 5
object to support. However, the Printer object's "generated- object to support. However, the Printer object's "generated-
natural-language-supported" attribute identifies the natural natural-language-supported" attribute identifies the natural
languages supported by the Printer object and any contained Job languages supported by the Printer object and any contained Job
objects for all text strings generated by the IPP object. A client objects for all text strings generated by the IPP object. A client
MAY query this attribute to determine which natural language(s) are MAY query this attribute to determine which natural language(s) are
supported for generated messages. supported for generated messages.
For any of the attributes for which the Printer object generates For any of the attributes for which the Printer object generates
text, i.e., for the "job-state-message", "printer-state-message", text, i.e., for the "job-state-message", "printer-state-message",
Expires December 11, 1999 Expires December 23, 1999
and status messages (see Section 3.1.6), the Printer object MUST be and status messages (see Section 3.1.6), the Printer object MUST be
able to generate these text strings in any of its supported natural able to generate these text strings in any of its supported natural
languages. If the client requests a natural language that is not languages. If the client requests a natural language that is not
supported, the Printer object MUST return these generated messages supported, the Printer object MUST return these generated messages
in the Printer's configured natural language as specified by the in the Printer's configured natural language as specified by the
Printer's "natural-language-configured" attribute" (see Section Printer's "natural-language-configured" attribute" (see Section
4.4.19). 4.4.19).
For other 'text' and 'name' attributes supplied by the client, For other 'text' and 'name' attributes supplied by the client,
authentication system, operator, system administrator, or authentication system, operator, system administrator, or
skipping to change at page 26, line 5 skipping to change at page 26, line 5
document does not specify how this association is stored in a document does not specify how this association is stored in a
Printer or Job object. When such a value is encoded in a request Printer or Job object. When such a value is encoded in a request
or response, the natural language is either implicit or explicit: or response, the natural language is either implicit or explicit:
@ In the implicit case, the value contains only the text/name @ In the implicit case, the value contains only the text/name
value, and the language is specified by the "attributes- value, and the language is specified by the "attributes-
natural-language" operation attribute in the request or natural-language" operation attribute in the request or
response (see sections 4.1.1.1 textWithoutLanguage and 4.1.2.1 response (see sections 4.1.1.1 textWithoutLanguage and 4.1.2.1
nameWithoutLanguage). nameWithoutLanguage).
Expires December 11, 1999 Expires December 23, 1999
@ In the explicit case (also known as the Natural-Language @ In the explicit case (also known as the Natural-Language
Override case), the value contains both the language and the Override case), the value contains both the language and the
text/name value (see sections 4.1.1.2 textWithLanguage and text/name value (see sections 4.1.1.2 textWithLanguage and
4.1.2.2 nameWithLanguage). 4.1.2.2 nameWithLanguage).
For example, the "job-name" attribute MAY be supplied by the client For example, the "job-name" attribute MAY be supplied by the client
in a create request. The text value for this attribute will be in in a create request. The text value for this attribute will be in
the natural language identified by the "attribute-natural-language" the natural language identified by the "attribute-natural-language"
attribute, or if different, as identified by the Natural Language attribute, or if different, as identified by the Natural Language
Override mechanism. If supplied, the IPP object will use the value Override mechanism. If supplied, the IPP object will use the value
skipping to change at page 27, line 5 skipping to change at page 27, line 5
Therefore, the Printer object simply accepts the client supplied Therefore, the Printer object simply accepts the client supplied
value, stores it with the Job object, and responds back with the value, stores it with the Job object, and responds back with the
same combination whenever the client (or any client) queries for same combination whenever the client (or any client) queries for
that attribute. that attribute.
-In a query-type operation, like Get-Printer-Attributes: If the -In a query-type operation, like Get-Printer-Attributes: If the
client requests an apparently incompatible combination, the Printer client requests an apparently incompatible combination, the Printer
object responds (as described in section 3.1.4.2) using the object responds (as described in section 3.1.4.2) using the
Printer's configured natural language rather than the natural Printer's configured natural language rather than the natural
language requested by the client. language requested by the client.
Expires December 11, 1999 Expires December 23, 1999
In either case, the Printer object does not reject the request because In either case, the Printer object does not reject the request because
of the apparent incompatibility. The potential incompatible combination of the apparent incompatibility. The potential incompatible combination
of charset and natural language can occur either at the global operation of charset and natural language can occur either at the global operation
level or at the Natural Language Override attribute-by-attribute level. level or at the Natural Language Override attribute-by-attribute level.
In addition, since the response always includes explicit charset and In addition, since the response always includes explicit charset and
natural language information, there is never any question or ambiguity natural language information, there is never any question or ambiguity
in how the client interprets the response. in how the client interprets the response.
3.1.4.2 Response Operation Attributes 3.1.4.2 Response Operation Attributes
skipping to change at page 28, line 5 skipping to change at page 28, line 5
any 'text' and 'name' attributes that the IPP object is returning any 'text' and 'name' attributes that the IPP object is returning
in this response. Unlike the "attributes-charset" operation in this response. Unlike the "attributes-charset" operation
attribute, the IPP object NEED NOT return the same value as that attribute, the IPP object NEED NOT return the same value as that
supplied by the client in the request. The IPP object MAY return supplied by the client in the request. The IPP object MAY return
the natural language of the Job object or the Printer's configured the natural language of the Job object or the Printer's configured
natural language as identified by the Printer object's "natural- natural language as identified by the Printer object's "natural-
language-configured" attribute, rather than the natural language language-configured" attribute, rather than the natural language
supplied by the client. For any 'text' or 'name' attribute or supplied by the client. For any 'text' or 'name' attribute or
status message in the response that is in a different natural status message in the response that is in a different natural
Expires December 11, 1999 Expires December 23, 1999
language than the value returned in the "attributes-natural- language than the value returned in the "attributes-natural-
language" operation attribute, the IPP object MUST use the Natural language" operation attribute, the IPP object MUST use the Natural
Language Override mechanism (see sections 4.1.1.2 and 4.1.2.2) on Language Override mechanism (see sections 4.1.1.2 and 4.1.2.2) on
each attribute value returned. The IPP object MAY use the Natural each attribute value returned. The IPP object MAY use the Natural
Language Override mechanism redundantly, i.e., use it even when the Language Override mechanism redundantly, i.e., use it even when the
value is in the same natural language as the value supplied in the value is in the same natural language as the value supplied in the
"attributes-natural-language" operation attribute of the response. "attributes-natural-language" operation attribute of the response.
3.1.5 Operation Targets 3.1.5 Operation Targets
skipping to change at page 29, line 5 skipping to change at page 29, line 5
uri" attribute), that attribute MUST be the third attribute in the uri" attribute), that attribute MUST be the third attribute in the
operation attributes group. operation attributes group.
- In the case where Job operations use two operation target - In the case where Job operations use two operation target
attributes (i.e., the "printer-uri" and "job-id" attributes), the attributes (i.e., the "printer-uri" and "job-id" attributes), the
"printer-uri" attribute MUST be the third attribute and the "job- "printer-uri" attribute MUST be the third attribute and the "job-
id" attribute MUST be the fourth attribute. id" attribute MUST be the fourth attribute.
In all cases, the target URIs contained within the body of IPP operation In all cases, the target URIs contained within the body of IPP operation
requests and responses must be in absolute format rather than relative requests and responses must be in absolute format rather than relative
Expires December 11, 1999 Expires December 23, 1999
format (a relative URL identifies a resource with the scope of the HTTP format (a relative URL identifies a resource with the scope of the HTTP
server, but does not include scheme, host or port). server, but does not include scheme, host or port).
The following rules apply to the use of port numbers in URIs that The following rules apply to the use of port numbers in URIs that
identify IPP objects: identify IPP objects:
1. If the URI scheme allows the port number to be explicitly included 1. If the URI scheme allows the port number to be explicitly included
in the URI string, and a port number is specified within the URI, in the URI string, and a port number is specified within the URI,
then that port number MUST be used by the client to contact the IPP then that port number MUST be used by the client to contact the IPP
skipping to change at page 29, line 28 skipping to change at page 29, line 28
2. If the URI scheme allows the port number to be explicitly included 2. If the URI scheme allows the port number to be explicitly included
in the URI string, and a port number is not specified within the in the URI string, and a port number is not specified within the
URI, then default port number implied by that URI scheme MUST be URI, then default port number implied by that URI scheme MUST be
used by the client to contact the IPP object. used by the client to contact the IPP object.
3. If the URI scheme does not allow an explicit port number to be 3. If the URI scheme does not allow an explicit port number to be
specified within the URI, then the default port number implied by specified within the URI, then the default port number implied by
that URI MUST be used by the client to contact the IPP object. that URI MUST be used by the client to contact the IPP object.
Note: The IPP "Encoding and Transport document [IPP-PRO] shows a mapping Note: The IPP "Encoding and Transport document [IPP-PRO] shows a mapping
of IPP onto HTTP/1.1 and defines a new default port number for using IPP of IPP onto HTTP/1.1 [RFC2616] and defines a new default port number for
over HTTP/1.1. using IPP over HTTP/1.1.
3.1.6 Operation Response Status Codes and Status Messages 3.1.6 Operation Response Status Codes and Status Messages
Every operation response includes a REQUIRED "status-code" parameter and Every operation response includes a REQUIRED "status-code" parameter and
an OPTIONAL "status-message" operation attribute, and an OPTIONAL an OPTIONAL "status-message" operation attribute, and an OPTIONAL
"detailed-status-message" operation attribute. The Print-URI and Send- "detailed-status-message" operation attribute. The Print-URI and Send-
URI response MAY include an OPTIONAL "document-access-error" operation URI response MAY include an OPTIONAL "document-access-error" operation
attribute. attribute.
3.1.6.1 "status-code" (type2 enum) 3.1.6.1 "status-code" (type2 enum)
skipping to change at page 30, line 5 skipping to change at page 30, line 5
The "status-code" syntax is similar to a "type2 enum" (see section 4.1 The "status-code" syntax is similar to a "type2 enum" (see section 4.1
on "Attribute Syntaxes") except that values can range only from 0x0000 on "Attribute Syntaxes") except that values can range only from 0x0000
to 0x7FFF. Section 13 describes the status codes, assigns the numeric to 0x7FFF. Section 13 describes the status codes, assigns the numeric
values, and suggests a corresponding status message for each status code values, and suggests a corresponding status message for each status code
for use by the client when the user's natural language is English. for use by the client when the user's natural language is English.
If the Printer performs an operation with no errors and it encounters no If the Printer performs an operation with no errors and it encounters no
problems, it MUST return the status code 'successful-ok' in the problems, it MUST return the status code 'successful-ok' in the
response. See section 13. response. See section 13.
Expires December 11, 1999 Expires December 23, 1999
If the client supplies unsupported values for the following parameters If the client supplies unsupported values for the following parameters
or Operation attributes, the Printer object MUST reject the operation, or Operation attributes, the Printer object MUST reject the operation,
NEED NOT return the unsupported attribute value in the Unsupported NEED NOT return the unsupported attribute value in the Unsupported
Attributes group, and MUST return the indicated status code: Attributes group, and MUST return the indicated status code:
Parameter/Attribute Status code Parameter/Attribute Status code
version-number server-error-version-not-supported version-number server-error-version-not-supported
operation-id server-error-operation-not-supported operation-id server-error-operation-not-supported
skipping to change at page 31, line 5 skipping to change at page 31, line 5
language" in the client request if supported, otherwise the Printer language" in the client request if supported, otherwise the Printer
object uses the value in the Printer object's own "natural-language- object uses the value in the Printer object's own "natural-language-
configured" attribute. configured" attribute.
If the Printer object supports the "status-message" operation attribute, If the Printer object supports the "status-message" operation attribute,
it SHOULD use the REQUIRED 'utf-8' charset to return a status message it SHOULD use the REQUIRED 'utf-8' charset to return a status message
for the following error status codes (see section 13): 'client-error- for the following error status codes (see section 13): 'client-error-
bad-request', 'client-error-charset-not-supported', 'server-error- bad-request', 'client-error-charset-not-supported', 'server-error-
internal-error', 'server-error-operation-not-supported', and 'server- internal-error', 'server-error-operation-not-supported', and 'server-
Expires December 11, 1999 Expires December 23, 1999
error-version-not-supported'. In this case, it MUST set the value of error-version-not-supported'. In this case, it MUST set the value of
the "attributes-charset" operation attribute to 'utf-8' in the error the "attributes-charset" operation attribute to 'utf-8' in the error
response. response.
3.1.6.3 "detailed-status-message" (text(MAX)) 3.1.6.3 "detailed-status-message" (text(MAX))
The OPTIONAL "detailed-status-message" operation attribute provides The OPTIONAL "detailed-status-message" operation attribute provides
additional more detailed technical and implementation-specific additional more detailed technical and implementation-specific
information about the operation. The "detailed-status-message" information about the operation. The "detailed-status-message"
skipping to change at page 32, line 5 skipping to change at page 32, line 5
ignored-or-substituted-attributes', 'successful-ok-conflicting- ignored-or-substituted-attributes', 'successful-ok-conflicting-
attributes', 'client-error-attributes-or-values-not-supported' or attributes', 'client-error-attributes-or-values-not-supported' or
'client-error-conflicting-attributes'. 'client-error-conflicting-attributes'.
If the status code is one of the four specified in the preceding If the status code is one of the four specified in the preceding
paragraph, the Unsupported Attributes group MUST contain all of those paragraph, the Unsupported Attributes group MUST contain all of those
attributes and only those attributes that are: attributes and only those attributes that are:
a. an Operation or Job Template attribute supplied in the request, and a. an Operation or Job Template attribute supplied in the request, and
Expires December 11, 1999 Expires December 23, 1999
b. unsupported by the printer. See below for details on the three b. unsupported by the printer. See below for details on the three
categories .unsupported. attributes. categories .unsupported. attributes.
If the Printer object is not returning any Unsupported Attributes in the If the Printer object is not returning any Unsupported Attributes in the
response, the Printer object SHOULD omit Group 2 rather than sending an response, the Printer object SHOULD omit Group 2 rather than sending an
empty group. However, a client MUST be able to accept an empty group. empty group. However, a client MUST be able to accept an empty group.
Unsupported attributes fall into three categories: Unsupported attributes fall into three categories:
1. The Printer object does not support the supplied attribute (no 1. The Printer object does not support the supplied attribute (no
skipping to change at page 33, line 5 skipping to change at page 33, line 5
In the case of two (or more) supported attribute values that are in In the case of two (or more) supported attribute values that are in
conflict with one another (although each is supported independently, the conflict with one another (although each is supported independently, the
values conflict when requested together within the same job), the values conflict when requested together within the same job), the
Printer object MUST return all the values that it ignores or substitutes Printer object MUST return all the values that it ignores or substitutes
to resolve the conflict, but not any of the values that it is still to resolve the conflict, but not any of the values that it is still
using. The choice for exactly how to resolve the conflict is using. The choice for exactly how to resolve the conflict is
implementation dependent. See sections 3.2.1.2 and 15. See The implementation dependent. See sections 3.2.1.2 and 15. See The
Implementer's Guide [IPP-IIG] for an example. Implementer's Guide [IPP-IIG] for an example.
Expires December 11, 1999 Expires December 23, 1999
3.1.8 Versions 3.1.8 Versions
Each operation request and response carries with it a "version-number" Each operation request and response carries with it a "version-number"
parameter. Each value of the "version-number" is in the form "X.Y" parameter. Each value of the "version-number" is in the form "X.Y"
where X is the major version number and Y is the minor version number. where X is the major version number and Y is the minor version number.
By including a version number in the client request, it allows the By including a version number in the client request, it allows the
client to identify which version of IPP it is interested in using, client to identify which version of IPP it is interested in using,
i.e., the version whose conformance requirements the client may be i.e., the version whose conformance requirements the client may be
depending upon the Printer to meet. depending upon the Printer to meet.
skipping to change at page 33, line 41 skipping to change at page 33, line 41
There is no version negotiation per se. However, if after receiving a There is no version negotiation per se. However, if after receiving a
'server-error-version-not-supported' status code from an IPP object, a 'server-error-version-not-supported' status code from an IPP object, a
client SHOULD try again with a different version number. A client MAY client SHOULD try again with a different version number. A client MAY
also determine the versions supported either from a directory that also determine the versions supported either from a directory that
conforms to Appendix E (see section 16) or by querying the Printer conforms to Appendix E (see section 16) or by querying the Printer
object's "ipp-versions-supported" attribute (see section 4.4.14) to object's "ipp-versions-supported" attribute (see section 4.4.14) to
determine which versions are supported. determine which versions are supported.
An IPP object implementation MUST support version '1.1', i.e., meet the An IPP object implementation MUST support version '1.1', i.e., meet the
conformance requirements for IPP/1.1 as specified in this document and conformance requirements for IPP/1.1 as specified in this document and
[IPP-PRO]. An IPP object implementation SHOULD support version '1.0', [IPP-PRO]. It is recommended that IPP object implementations accept any
i.e., meet the conformance requirements for IPP/1.0 [RFC2566 and request with the major version '1' (or reject the request if the
RFC2565]. operation is not supported).
There is only one notion of "version number" that covers both IPP Model There is only one notion of "version number" that covers both IPP Model
and IPP Protocol changes. Thus the version number MUST change when and IPP Protocol changes. Thus the version number MUST change when
introducing a new version of the Model and Semantics document (this introducing a new version of the Model and Semantics document (this
document) or a new version of the "Encoding and Transport" document document) or a new version of the "Encoding and Transport" document
[IPP-PRO]. [IPP-PRO].
Changes to the major version number of the Model and Semantics document Changes to the major version number of the Model and Semantics document
indicate structural or syntactic changes that make it impossible for indicate structural or syntactic changes that make it impossible for
older version of IPP clients and Printer objects to correctly parse and older version of IPP clients and Printer objects to correctly parse and
correctly process the new or changed attributes, operations and correctly process the new or changed attributes, operations and
responses. If the major version number changes, the minor version responses. If the major version number changes, the minor version
numbers is set to zero. As an example, adding the REQUIRED "ipp- numbers is set to zero. As an example, adding the REQUIRED "ipp-
attribute-fidelity" attribute to version '1.1' (if it had not been part attribute-fidelity" attribute to version '1.1' (if it had not been part
of version '1.0'), would have required a change to the major version of version '1.0'), would have required a change to the major version
number, since an IPP/1.0 Printer would not have processed a request with number, since an IPP/1.0 Printer would not have processed a request with
the correct semantics that contained the "ipp-attribute-fidelity" the correct semantics that contained the "ipp-attribute-fidelity"
Expires December 11, 1999 Expires December 23, 1999
attribute that it did not know about. Items that might affect the attribute that it did not know about. Items that might affect the
changing of the major version number include any changes to the Model changing of the major version number include any changes to the Model
and Semantics document (this document) or the "Encoding and Transport" and Semantics document (this document) or the "Encoding and Transport"
document [IPP-PRO] itself, such as: document [IPP-PRO] itself, such as:
- reordering of ordered attributes or attribute sets - reordering of ordered attributes or attribute sets
- changes to the syntax of existing attributes - changes to the syntax of existing attributes
- adding REQUIRED (for an IPP object to support) operation attribute - adding REQUIRED (for an IPP object to support) operation attribute
groups groups
skipping to change at page 35, line 5 skipping to change at page 35, line 5
elements (attributes, error codes, tags, etc.) that are not carried elements (attributes, error codes, tags, etc.) that are not carried
forward from one version to the next are deprecated so that they can forward from one version to the next are deprecated so that they can
never be reused with new semantics. never be reused with new semantics.
Implementations that support a certain version NEED NOT support ALL Implementations that support a certain version NEED NOT support ALL
previous versions. As each new version is defined (through the release previous versions. As each new version is defined (through the release
of a new IPP specification document), that version will specify which of a new IPP specification document), that version will specify which
previous versions MUST and which versions SHOULD be supported in previous versions MUST and which versions SHOULD be supported in
compliant implementations. compliant implementations.
Expires December 11, 1999 Expires December 23, 1999
3.1.9 Job Creation Operations 3.1.9 Job Creation Operations
In order to "submit a print job" and create a new Job object, a client In order to "submit a print job" and create a new Job object, a client
issues a create request. A create request is any one of following three issues a create request. A create request is any one of following three
operation requests: operation requests:
- The Print-Job Request: A client that wants to submit a print job - The Print-Job Request: A client that wants to submit a print job
with only a single document uses the Print-Job operation. The with only a single document uses the Print-Job operation. The
operation allows for the client to "push" the document data to the operation allows for the client to "push" the document data to the
skipping to change at page 36, line 5 skipping to change at page 36, line 5
request. The initial state of every Job object is the 'pending', request. The initial state of every Job object is the 'pending',
'pending-held', or 'processing' state (see section 4.3.7). When the 'pending-held', or 'processing' state (see section 4.3.7). When the
Printer object begins processing the print job, the Job object's state Printer object begins processing the print job, the Job object's state
moves to 'processing'. This is known as job processing time. There are moves to 'processing'. This is known as job processing time. There are
validation checks that must be done at job submission time and others validation checks that must be done at job submission time and others
that must be performed at job processing time. that must be performed at job processing time.
At job submission time and at the time a Validate-Job operation is At job submission time and at the time a Validate-Job operation is
received, the Printer MUST do the following: received, the Printer MUST do the following:
Expires December 11, 1999 Expires December 23, 1999
1. Process the client supplied attributes and either accept or reject 1. Process the client supplied attributes and either accept or reject
the request the request
2. Validate the syntax of and support for the scheme of any client 2. Validate the syntax of and support for the scheme of any client
supplied URI supplied URI
At job submission time the Printer object MUST validate whether or not At job submission time the Printer object MUST validate whether or not
the supplied attributes, attribute syntaxes, and values are supported by the supplied attributes, attribute syntaxes, and values are supported by
matching them with the Printer object's corresponding "xxx-supported" matching them with the Printer object's corresponding "xxx-supported"
attributes. See section 3.1.7 for details. [IPP-IIG] presents attributes. See section 3.1.7 for details. [IPP-IIG] presents
suggested steps for an IPP object to either accept or reject any request suggested steps for an IPP object to either accept or reject any request
skipping to change at page 37, line 5 skipping to change at page 37, line 5
of 'server-error-busy' (see section 14.1.5.8) and it MAY close the of 'server-error-busy' (see section 14.1.5.8) and it MAY close the
connection before receiving all bytes of the operation. A Printer connection before receiving all bytes of the operation. A Printer
SHOULD indicate that it is temporarily unable to accept jobs by setting SHOULD indicate that it is temporarily unable to accept jobs by setting
the 'spool-space-full' value in its "printer-state-reasons" attribute the 'spool-space-full' value in its "printer-state-reasons" attribute
and removing the value when it can accept another job (see section and removing the value when it can accept another job (see section
4.4.12). 4.4.12).
When receiving a 'server-error-busy' status-code in an operation When receiving a 'server-error-busy' status-code in an operation
response, a client MUST be prepared for the Printer object to close the response, a client MUST be prepared for the Printer object to close the
Expires December 11, 1999 Expires December 23, 1999
connection before the client has sent all of the data (especially for connection before the client has sent all of the data (especially for
the Print-Job operation). A client MUST be prepared to keep submitting a the Print-Job operation). A client MUST be prepared to keep submitting a
create request until the IPP Printer object accepts the create request. create request until the IPP Printer object accepts the create request.
At job processing time, since the Printer object has already responded At job processing time, since the Printer object has already responded
with a successful status code in the response to the create request, if with a successful status code in the response to the create request, if
the Printer object detects an error, the Printer object is unable to the Printer object detects an error, the Printer object is unable to
inform the end user of the error with an operation status code. In inform the end user of the error with an operation status code. In
this case, the Printer, depending on the error, can set the job object's this case, the Printer, depending on the error, can set the job object's
skipping to change at page 38, line 5 skipping to change at page 38, line 5
attributes described in sections 4.3.19 and 4.3.20. attributes described in sections 4.3.19 and 4.3.20.
Target: Target:
The "printer-uri" (uri) operation attribute which is the target for The "printer-uri" (uri) operation attribute which is the target for
this operation as described in section 3.1.5. this operation as described in section 3.1.5.
Requesting User Name: Requesting User Name:
The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied
by the client as described in section 8.3. by the client as described in section 8.3.
Expires December 11, 1999 Expires December 23, 1999
"job-name" (name(MAX)): "job-name" (name(MAX)):
The client OPTIONALLY supplies this attribute. The Printer object The client OPTIONALLY supplies this attribute. The Printer object
MUST support this attribute. It contains the client supplied Job MUST support this attribute. It contains the client supplied Job
name. If this attribute is supplied by the client, its value is name. If this attribute is supplied by the client, its value is
used for the "job-name" attribute of the newly created Job object. used for the "job-name" attribute of the newly created Job object.
The client MAY automatically include any information that will help The client MAY automatically include any information that will help
the end-user distinguish amongst his/her jobs, such as the name of the end-user distinguish amongst his/her jobs, such as the name of
the application program along with information from the document, the application program along with information from the document,
such as the document name, document subject, or source file name. such as the document name, document subject, or source file name.
If this attribute is not supplied by the client, the Printer If this attribute is not supplied by the client, the Printer
skipping to change at page 39, line 5 skipping to change at page 39, line 5
operation attribute identifies the compression algorithm used on operation attribute identifies the compression algorithm used on
the document data. The following cases exist: the document data. The following cases exist:
a)If the client omits this attribute, the Printer object MUST a)If the client omits this attribute, the Printer object MUST
assume that the data is not compressed (i.e. the Printer assume that the data is not compressed (i.e. the Printer
follows the rules below as if the client supplied the follows the rules below as if the client supplied the
"compression" attribute with a value of 'none'). "compression" attribute with a value of 'none').
b)If the client supplies this attribute, but the value is not b)If the client supplies this attribute, but the value is not
supported by the Printer object, i.e., the value is not one supported by the Printer object, i.e., the value is not one
of the values of the Printer object's "compression- of the values of the Printer object's "compression-
Expires December 11, 1999 Expires December 23, 1999
supported" attribute, the Printer object MUST reject the supported" attribute, the Printer object MUST reject the
request, and return the 'client-error-compression-not- request, and return the 'client-error-compression-not-
supported' status code. See section 3.1.7 for returning supported' status code. See section 3.1.7 for returning
unsupported attributes and values. unsupported attributes and values.
c)If the client supplies the attribute and the Printer object c)If the client supplies the attribute and the Printer object
supports the attribute value, the Printer object uses the supports the attribute value, the Printer object uses the
corresponding decompression algorithm on the document data. corresponding decompression algorithm on the document data.
d)If the decompression algorithm fails before the Printer d)If the decompression algorithm fails before the Printer
returns an operation response, the Printer object MUST returns an operation response, the Printer object MUST
reject the request and return the 'client-error- reject the request and return the 'client-error-
skipping to change at page 40, line 5 skipping to change at page 40, line 5
d)If the client supplies this attribute, and the value is d)If the client supplies this attribute, and the value is
supported by the Printer object, the document data, the supported by the Printer object, the document data, the
Printer is capable of interpreting the document data. Printer is capable of interpreting the document data.
e)If interpreting of the document data fails before the e)If interpreting of the document data fails before the
Printer returns an operation response, the Printer object Printer returns an operation response, the Printer object
MUST reject the request and return the 'client-error- MUST reject the request and return the 'client-error-
document-format-error' status code. document-format-error' status code.
f)If interpreting of the document data fails after the f)If interpreting of the document data fails after the
Printer returns an operation response, the Printer object Printer returns an operation response, the Printer object
Expires December 11, 1999 Expires December 23, 1999
MUST abort the job and add the 'document-format-error' MUST abort the job and add the 'document-format-error'
value to the job's "job-state-reasons" attribute. value to the job's "job-state-reasons" attribute.
"document-natural-language" (naturalLanguage): "document-natural-language" (naturalLanguage):
The client OPTIONALLY supplies this attribute. The Printer object The client OPTIONALLY supplies this attribute. The Printer object
OPTIONALLY supports this attribute. This attribute specifies the OPTIONALLY supports this attribute. This attribute specifies the
natural language of the document for those document-formats that natural language of the document for those document-formats that
require a specification of the natural language in order to image require a specification of the natural language in order to image
the document unambiguously. There are no particular values required the document unambiguously. There are no particular values required
for the Printer object to support. for the Printer object to support.
skipping to change at page 41, line 5 skipping to change at page 41, line 5
"job-impressions" (integer(0:MAX)) "job-impressions" (integer(0:MAX))
The client OPTIONALLY supplies this attribute. The Printer object The client OPTIONALLY supplies this attribute. The Printer object
OPTIONALLY supports this attribute and the "job-impressions- OPTIONALLY supports this attribute and the "job-impressions-
supported" attribute (see section 4.4.34). The client supplied supported" attribute (see section 4.4.34). The client supplied
"job-impressions" operation attribute identifies the total size in "job-impressions" operation attribute identifies the total size in
number of impressions of the document(s) being submitted (see number of impressions of the document(s) being submitted (see
section 4.3.17.2 for the complete semantics). section 4.3.17.2 for the complete semantics).
See last paragraph under "job-k-octets". See last paragraph under "job-k-octets".
Expires December 11, 1999 Expires December 23, 1999
"job-media-sheets" (integer(0:MAX)) "job-media-sheets" (integer(0:MAX))
The client OPTIONALLY supplies this attribute. The Printer object The client OPTIONALLY supplies this attribute. The Printer object
OPTIONALLY supports this attribute and the "job-media-sheets- OPTIONALLY supports this attribute and the "job-media-sheets-
supported" attribute (see section 4.4.35). The client supplied supported" attribute (see section 4.4.35). The client supplied
"job-media-sheets" operation attribute identifies the total number "job-media-sheets" operation attribute identifies the total number
of media sheets to be produced for this job (see section 4.3.17.3 of media sheets to be produced for this job (see section 4.3.17.3
for the complete semantics). for the complete semantics).
See last paragraph under "job-k-octets". See last paragraph under "job-k-octets".
skipping to change at page 41, line 55 skipping to change at page 41, line 55
3.2.1.2 Print-Job Response 3.2.1.2 Print-Job Response
The Printer object MUST return to the client the following sets of The Printer object MUST return to the client the following sets of
attributes as part of the Print-Job Response: attributes as part of the Print-Job Response:
Group 1: Operation Attributes Group 1: Operation Attributes
Status Message: Status Message:
In addition to the REQUIRED status code returned in every response, In addition to the REQUIRED status code returned in every response,
the response OPTIONALLY includes a "status-message" (text(255)) the response OPTIONALLY includes a "status-message" (text(255))
operation attribute as described in sections 13 and 3.1.6. If the and/or a "detailed-status-message" (text(MAX)) operation attribute
client supplies unsupported or conflicting Job Template attributes as described in sections 13 and 3.1.6. If the client supplies
or values, the Printer object MUST reject or accept the Print-Job unsupported or conflicting Job Template attributes or values, the
request depending on the whether the client supplied a 'true' or Printer object MUST reject or accept the Print-Job request
Expires December 11, 1999 Expires December 23, 1999
'false' value for the "ipp-attribute-fidelity" operation attribute. depending on the whether the client supplied a 'true' or 'false'
See the Implementer's Guide [IPP-IIG] for a complete description of value for the "ipp-attribute-fidelity" operation attribute. See
the suggested steps for processing a create request. the Implementer's Guide [IPP-IIG] for a complete description of the
suggested steps for processing a create request.
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.2. attributes as described in section 3.1.4.2.
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See section 3.1.7 for details on returning Unsupported Attributes. See section 3.1.7 for details on returning Unsupported Attributes.
The value of the "ipp-attribute-fidelity" supplied by the client The value of the "ipp-attribute-fidelity" supplied by the client
skipping to change at page 43, line 5 skipping to change at page 43, line 5
"job-state": "job-state":
The Printer object MUST return the Job object's REQUIRED "job- The Printer object MUST return the Job object's REQUIRED "job-
state" attribute. The value of this attribute (along with the value state" attribute. The value of this attribute (along with the value
of the next attribute: "job-state-reasons") is taken from a of the next attribute: "job-state-reasons") is taken from a
"snapshot" of the new Job object at some meaningful point in time "snapshot" of the new Job object at some meaningful point in time
(implementation defined) between when the Printer object receives (implementation defined) between when the Printer object receives
the Print-Job Request and when the Printer object returns the the Print-Job Request and when the Printer object returns the
response. response.
Expires December 11, 1999 Expires December 23, 1999
"job-state-reasons": "job-state-reasons":
The Printer object MUST return the Job object's REQUIRED "job- The Printer object MUST return the Job object's REQUIRED "job-
state-reasons" attribute. state-reasons" attribute.
"job-state-message": "job-state-message":
The Printer object OPTIONALLY returns the Job object's OPTIONAL The Printer object OPTIONALLY returns the Job object's OPTIONAL
"job-state-message" attribute. If the Printer object supports this "job-state-message" attribute. If the Printer object supports this
attribute then it MUST be returned in the response. If this attribute then it MUST be returned in the response. If this
attribute is not returned in the response, the client can assume attribute is not returned in the response, the client can assume
that the "job-state-message" attribute is not supported and will that the "job-state-message" attribute is not supported and will
skipping to change at page 43, line 37 skipping to change at page 43, line 37
Note: Since any printer state information which affects a job's Note: Since any printer state information which affects a job's
state is reflected in the "job-state" and "job-state-reasons" state is reflected in the "job-state" and "job-state-reasons"
attributes, it is sufficient to return only these attributes and no attributes, it is sufficient to return only these attributes and no
specific printer status attributes. specific printer status attributes.
Note: In addition to the MANDATORY parameters required for every Note: In addition to the MANDATORY parameters required for every
operation response, the simplest response consists of the just the operation response, the simplest response consists of the just the
"attributes-charset" and "attributes-natural-language" operation "attributes-charset" and "attributes-natural-language" operation
attributes and the "job-uri", "job-id", and "job-state" Job Object attributes and the "job-uri", "job-id", and "job-state" Job Object
Attributes. In this simplest case, the status code is 'successful-ok' Attributes. In this simplest case, the status code is 'successful-ok'
and there is no "status-message" operation attribute. and there is no "status-message" or "detailed-status-message" operation
attribute.
3.2.2 Print-URI Operation 3.2.2 Print-URI Operation
This OPTIONAL operation is identical to the Print-Job operation (section This OPTIONAL operation is identical to the Print-Job operation (section
3.2.1) except that a client supplies a URI reference to the document 3.2.1) except that a client supplies a URI reference to the document
data using the "document-uri" (uri) operation attribute (in Group 1) data using the "document-uri" (uri) operation attribute (in Group 1)
rather than including the document data itself. Before returning the rather than including the document data itself. Before returning the
response, the Printer MUST validate that the Printer supports the response, the Printer MUST validate that the Printer supports the
retrieval method (e.g., http, ftp, etc.) implied by the URI, and MUST retrieval method (e.g., http, ftp, etc.) implied by the URI, and MUST
check for valid URI syntax. If the client-supplied URI scheme is not check for valid URI syntax. If the client-supplied URI scheme is not
skipping to change at page 44, line 5 skipping to change at page 44, line 5
uri-scheme-supported" attribute, the Printer object MUST reject the uri-scheme-supported" attribute, the Printer object MUST reject the
request and return the 'client-error-uri-scheme-not-supported' status request and return the 'client-error-uri-scheme-not-supported' status
code. code.
The IPP Printer MAY validate the accessibility of the document as part The IPP Printer MAY validate the accessibility of the document as part
of the operation or subsequently. If the Printer determines an of the operation or subsequently. If the Printer determines an
accessibility problem before returning an operation response, it rejects accessibility problem before returning an operation response, it rejects
the request and returns the 'client-error-document-access-error' status the request and returns the 'client-error-document-access-error' status
code. The Printer MAY also return a specific document access error code code. The Printer MAY also return a specific document access error code
Expires December 11, 1999 Expires December 23, 1999
using the "document-access-error" operation attribute (see section using the "document-access-error" operation attribute (see section
3.1.6.4). 3.1.6.4).
If the Printer determines this document accessibility problem after If the Printer determines this document accessibility problem after
accepting the request and returning an operation response with one of accepting the request and returning an operation response with one of
the successful status codes, the Printer adds the 'document-access- the successful status codes, the Printer adds the 'document-access-
error' value to the job's "job-state-reasons" attribute and MAY populate error' value to the job's "job-state-reasons" attribute and MAY populate
the job's "job-document-access-errors" Job Description attribute (see the job's "job-document-access-errors" Job Description attribute (see
section 4.3.11). See The Implementer's Guide [IPP-IIG] for suggested section 4.3.11). See The Implementer's Guide [IPP-IIG] for suggested
skipping to change at page 45, line 5 skipping to change at page 45, line 5
This OPTIONAL operation is similar to the Print-Job operation (section This OPTIONAL operation is similar to the Print-Job operation (section
3.2.1) except that in the Create-Job request, a client does not supply 3.2.1) except that in the Create-Job request, a client does not supply
document data or any reference to document data. Also, the client does document data or any reference to document data. Also, the client does
not supply any of the "document-name", "document-format", "compression", not supply any of the "document-name", "document-format", "compression",
or "document-natural-language" operation attributes. This operation is or "document-natural-language" operation attributes. This operation is
followed by one or more Send-Document or Send-URI operations. In each followed by one or more Send-Document or Send-URI operations. In each
of those operation requests, the client OPTIONALLY supplies the of those operation requests, the client OPTIONALLY supplies the
"document-name", "document-format", and "document-natural-language" "document-name", "document-format", and "document-natural-language"
attributes for each document in the multi-document Job object. attributes for each document in the multi-document Job object.
Expires December 11, 1999 Expires December 23, 1999
If a Printer object supports the Create-Job operation, it MUST also If a Printer object supports the Create-Job operation, it MUST also
support the Send-Document operation and also MAY support the Send-URI support the Send-Document operation and also MAY support the Send-URI
operation. operation.
If the Printer object supports this operation, it MUST support the If the Printer object supports this operation, it MUST support the
"multiple-operation-time-out" Printer attribute (see section 4.4.31). "multiple-operation-time-out" Printer attribute (see section 4.4.31).
If the Printer object supports this operation, then it MUST support the If the Printer object supports this operation, then it MUST support the
"multiple-document-jobs-supported" Printer Description attribute (see "multiple-document-jobs-supported" Printer Description attribute (see
skipping to change at page 46, line 5 skipping to change at page 46, line 5
Section 4.4 that the implementation supports for Printer objects. Section 4.4 that the implementation supports for Printer objects.
- 'all': the special group 'all' that includes all attributes that - 'all': the special group 'all' that includes all attributes that
the implementation supports for Printer objects. the implementation supports for Printer objects.
Since a client MAY request specific attributes or named groups, there is Since a client MAY request specific attributes or named groups, there is
a potential that there is some overlap. For example, if a client a potential that there is some overlap. For example, if a client
requests, 'printer-name' and 'all', the client is actually requesting requests, 'printer-name' and 'all', the client is actually requesting
the "printer-name" attribute twice: once by naming it explicitly, and the "printer-name" attribute twice: once by naming it explicitly, and
once by inclusion in the 'all' group. In such cases, the Printer object once by inclusion in the 'all' group. In such cases, the Printer object
Expires December 11, 1999 Expires December 23, 1999
NEED NOT return each attribute only once in the response even if it is NEED NOT return each attribute only once in the response even if it is
requested multiple times. The client SHOULD NOT request the same requested multiple times. The client SHOULD NOT request the same
attribute in multiple ways. attribute in multiple ways.
It is NOT REQUIRED that a Printer object support all attributes It is NOT REQUIRED that a Printer object support all attributes
belonging to a group (since some attributes are OPTIONAL). However, it belonging to a group (since some attributes are OPTIONAL). However, it
is REQUIRED that each Printer object support all group names. is REQUIRED that each Printer object support all group names.
3.2.5.1 Get-Printer-Attributes Request 3.2.5.1 Get-Printer-Attributes Request
skipping to change at page 47, line 5 skipping to change at page 47, line 5
format. By specifying the document format, the client can get the format. By specifying the document format, the client can get the
Printer object to eliminate the attributes and values that are not Printer object to eliminate the attributes and values that are not
supported for a specific document format. For example, a Printer supported for a specific document format. For example, a Printer
object might have multiple interpreters to support both object might have multiple interpreters to support both
'application/postscript' (for PostScript) and 'text/plain' (for 'application/postscript' (for PostScript) and 'text/plain' (for
text) documents. However, for only one of those interpreters might text) documents. However, for only one of those interpreters might
the Printer object be able to support "number-up" with values of the Printer object be able to support "number-up" with values of
'1', '2', and '4'. For the other interpreter it might be able to '1', '2', and '4'. For the other interpreter it might be able to
only support "number-up" with a value of '1'. Thus a client can use only support "number-up" with a value of '1'. Thus a client can use
Expires December 11, 1999 Expires December 23, 1999
the Get-Printer-Attributes operation to obtain the attributes and the Get-Printer-Attributes operation to obtain the attributes and
values that will be used to accept/reject a create job operation. values that will be used to accept/reject a create job operation.
If the Printer object does not distinguish between different sets If the Printer object does not distinguish between different sets
of supported values for each different document format when of supported values for each different document format when
validating jobs in the create and Validate-Job operations, it MUST validating jobs in the create and Validate-Job operations, it MUST
NOT distinguish between different document formats in the Get- NOT distinguish between different document formats in the Get-
Printer-Attributes operation. If the Printer object does Printer-Attributes operation. If the Printer object does
distinguish between different sets of supported values for each distinguish between different sets of supported values for each
different document format specified by the client, this different document format specified by the client, this
skipping to change at page 48, line 5 skipping to change at page 48, line 5
attribute, the Printer object MUST reject the operation and return attribute, the Printer object MUST reject the operation and return
the 'client-error-document-format-not-supported' status code. the 'client-error-document-format-not-supported' status code.
3.2.5.2 Get-Printer-Attributes Response 3.2.5.2 Get-Printer-Attributes Response
The Printer object returns the following sets of attributes as part of The Printer object returns the following sets of attributes as part of
the Get-Printer-Attributes Response: the Get-Printer-Attributes Response:
Group 1: Operation Attributes Group 1: Operation Attributes
Expires December 11, 1999 Expires December 23, 1999
Status Message: Status Message:
In addition to the REQUIRED status code returned in every response, In addition to the REQUIRED status code returned in every response,
the response OPTIONALLY includes a "status-message" (text(255)) the response OPTIONALLY includes a "status-message" (text(255))
operation attribute as described in sections 13 and 3.1.6. and/or a "detailed-status-message" (text(MAX)) operation attribute
as described in sections 13 and 3.1.6.
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.2. attributes as described in section 3.1.4.2.
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See section 3.1.7 for details on returning Unsupported Attributes. See section 3.1.7 for details on returning Unsupported Attributes.
The response NEED NOT contain the "requested-attributes" operation The response NEED NOT contain the "requested-attributes" operation
skipping to change at page 49, line 5 skipping to change at page 49, line 5
objects belonging to the target Printer object. The client may also objects belonging to the target Printer object. The client may also
supply a list of Job attribute names and/or attribute group names. A supply a list of Job attribute names and/or attribute group names. A
group of Job object attributes will be returned for each Job object that group of Job object attributes will be returned for each Job object that
is returned. is returned.
This operation is similar to the Get-Job-Attributes operation, except This operation is similar to the Get-Job-Attributes operation, except
that this Get-Jobs operation returns attributes from possibly more than that this Get-Jobs operation returns attributes from possibly more than
one object (see the description of Job attribute group names in section one object (see the description of Job attribute group names in section
3.3.4). 3.3.4).
Expires December 11, 1999 Expires December 23, 1999
3.2.6.1 Get-Jobs Request 3.2.6.1 Get-Jobs Request
The client submits the Get-Jobs request to a Printer object. The client submits the Get-Jobs request to a Printer object.
The following groups of attributes are part of the Get-Jobs Request: The following groups of attributes are part of the Get-Jobs Request:
Group 1: Operation Attributes Group 1: Operation Attributes
Natural Language and Character Set: Natural Language and Character Set:
skipping to change at page 50, line 5 skipping to change at page 50, line 5
MUST support this attribute. It indicates which Job objects MUST MUST support this attribute. It indicates which Job objects MUST
be returned by the Printer object. The values for this attribute be returned by the Printer object. The values for this attribute
are: are:
'completed': This includes any Job object whose state is 'completed': This includes any Job object whose state is
'completed', 'canceled', or 'aborted'. 'completed', 'canceled', or 'aborted'.
'not-completed': This includes any Job object whose state is 'not-completed': This includes any Job object whose state is
'pending', 'processing', 'processing-stopped', or 'pending- 'pending', 'processing', 'processing-stopped', or 'pending-
held'. held'.
Expires December 11, 1999 Expires December 23, 1999
A Printer object MUST support both values. However, if the A Printer object MUST support both values. However, if the
implementation does not keep jobs in the 'completed', 'canceled', implementation does not keep jobs in the 'completed', 'canceled',
and 'aborted' states, then it returns no jobs when the 'completed' and 'aborted' states, then it returns no jobs when the 'completed'
value is supplied. value is supplied.
If a client supplies some other value, the Printer object MUST copy If a client supplies some other value, the Printer object MUST copy
the attribute and the unsupported value to the Unsupported the attribute and the unsupported value to the Unsupported
Attributes response group, reject the request, and return the Attributes response group, reject the request, and return the
'client-error-attributes-or-values-not-supported' status code. 'client-error-attributes-or-values-not-supported' status code.
skipping to change at page 50, line 52 skipping to change at page 50, line 52
returns 0 jobs because there are no jobs matching the criteria, and the returns 0 jobs because there are no jobs matching the criteria, and the
request would have returned 1 or more jobs with a status code of request would have returned 1 or more jobs with a status code of
'successful-ok' if there had been jobs matching the criteria, then the 'successful-ok' if there had been jobs matching the criteria, then the
status code for 0 jobs MUST be 'successful-ok'. status code for 0 jobs MUST be 'successful-ok'.
Group 1: Operation Attributes Group 1: Operation Attributes
Status Message: Status Message:
In addition to the REQUIRED status code returned in every response, In addition to the REQUIRED status code returned in every response,
the response OPTIONALLY includes a "status-message" (text(255)) the response OPTIONALLY includes a "status-message" (text(255))
operation attribute as described in sections 13 and 3.1.6. and/or a "detailed-status-message" (text(MAX)) operation attribute
as described in sections 13 and 3.1.6.
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.2. attributes as described in section 3.1.4.2.
Expires December 23, 1999
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
Expires December 11, 1999
See section 3.1.7 for details on returning Unsupported Attributes. See section 3.1.7 for details on returning Unsupported Attributes.
The response NEED NOT contain the "requested-attributes" operation The response NEED NOT contain the "requested-attributes" operation
attribute with any supplied values (attribute keywords) that were attribute with any supplied values (attribute keywords) that were
requested by the client but are not supported by the IPP object. If requested by the client but are not supported by the IPP object. If
the Printer object does include unsupported attributes referenced the Printer object does include unsupported attributes referenced
in "requested-attributes" and such attributes include group names, in "requested-attributes" and such attributes include group names,
such as 'all', the unsupported attributes MUST NOT include such as 'all', the unsupported attributes MUST NOT include
attributes described in the standard but not supported by the attributes described in the standard but not supported by the
implementation. implementation.
skipping to change at page 51, line 58 skipping to change at page 52, line 5
Pause-Printer operation MAY also stop the Printer from processing the Pause-Printer operation MAY also stop the Printer from processing the
current job or jobs. Any job that is currently being printed is either current job or jobs. Any job that is currently being printed is either
stopped as soon as the implementation permits or is completed, depending stopped as soon as the implementation permits or is completed, depending
on implementation. The Printer object MUST still accept create on implementation. The Printer object MUST still accept create
operations to create new jobs, but MUST prevent any jobs from entering operations to create new jobs, but MUST prevent any jobs from entering
the 'processing' state. the 'processing' state.
If the Pause-Printer operation is supported, then the Resume-Printer If the Pause-Printer operation is supported, then the Resume-Printer
operation MUST be supported, and vice-versa. operation MUST be supported, and vice-versa.
Expires December 23, 1999
The IPP Printer stops the current job(s) on its device(s) that were in The IPP Printer stops the current job(s) on its device(s) that were in
the 'processing' or 'processing-stopped' states as soon as the the 'processing' or 'processing-stopped' states as soon as the
Expires December 11, 1999
implementation permits. If the implementation will take appreciable implementation permits. If the implementation will take appreciable
time to stop, the IPP Printer adds the 'moving-to-paused' value to the time to stop, the IPP Printer adds the 'moving-to-paused' value to the
Printer object's "printer-state-reasons" attribute (see section 4.4.12). Printer object's "printer-state-reasons" attribute (see section 4.4.12).
When the device(s) have all stopped, the IPP Printer transitions the When the device(s) have all stopped, the IPP Printer transitions the
Printer object to the 'stopped' state, removes the 'moving-to-paused' Printer object to the 'stopped' state, removes the 'moving-to-paused'
value, if present, and adds the 'paused' value to the Printer object's value, if present, and adds the 'paused' value to the Printer object's
"printer-state-reasons" attribute. "printer-state-reasons" attribute.
When the current job(s) complete that were in the 'processing' state, When the current job(s) complete that were in the 'processing' state,
the IPP Printer transitions them to the 'completed' state. When the the IPP Printer transitions them to the 'completed' state. When the
skipping to change at page 52, line 60 skipping to change at page 53, line 4
"printer-state-reasons" "printer-state-reasons"
attribute attribute
'processing' 'stopped' 'paused' OPTION 2: 'successful-ok'; 'processing' 'stopped' 'paused' OPTION 2: 'successful-ok';
all device output stopped all device output stopped
immediately immediately
'stopped' 'stopped' 'paused' 'successful-ok' 'stopped' 'stopped' 'paused' 'successful-ok'
Access Rights: The authenticated user (see section 8.3) performing this Access Rights: The authenticated user (see section 8.3) performing this
operation must be an operator or administrator of the Printer object operation must be an operator or administrator of the Printer object
(see Sections 1 and 8.5). Otherwise, the IPP Printer MUST reject the (see Sections 1 and 8.5). Otherwise, the IPP Printer MUST reject the
Expires December 23, 1999
operation and return: 'client-error-forbidden', 'client-error-not- operation and return: 'client-error-forbidden', 'client-error-not-
authenticated', or 'client-error-not-authorized' as appropriate. authenticated', or 'client-error-not-authorized' as appropriate.
Expires December 11, 1999
3.2.7.1 Pause-Printer Request 3.2.7.1 Pause-Printer Request
The following groups of attributes are part of the Pause-Printer The following groups of attributes are part of the Pause-Printer
Request: Request:
Group 1: Operation Attributes Group 1: Operation Attributes
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.1. attributes as described in section 3.1.4.1.
skipping to change at page 53, line 36 skipping to change at page 53, line 39
3.2.7.2 Pause-Printer Response 3.2.7.2 Pause-Printer Response
The following groups of attributes are part of the Pause-Printer The following groups of attributes are part of the Pause-Printer
Response: Response:
Group 1: Operation Attributes Group 1: Operation Attributes
Status Message: Status Message:
In addition to the REQUIRED status code returned in every response, In addition to the REQUIRED status code returned in every response,
the response OPTIONALLY includes a "status-message" (text(255)) the response OPTIONALLY includes a "status-message" (text(255))
operation attribute as described in sections 13 and 3.1.6. and/or a "detailed-status-message" (text(MAX)) operation attribute
as described in sections 13 and 3.1.6.
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.2. attributes as described in section 3.1.4.2.
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See section 3.1.7 for details on returning Unsupported Attributes. See section 3.1.7 for details on returning Unsupported Attributes.
3.2.8 Resume-Printer Operation 3.2.8 Resume-Printer Operation
This operation allows a client to resume the Printer object scheduling This operation allows a client to resume the Printer object scheduling
jobs on all its devices. The Printer object MUST remove the 'paused' jobs on all its devices. The Printer object MUST remove the 'paused'
and 'moving-to-paused' values from the Printer object's "printer-state- and 'moving-to-paused' values from the Printer object's "printer-state-
reasons" attribute, if present. If there are no other reasons to keep a reasons" attribute, if present. If there are no other reasons to keep a
device paused (such as media-jam), the IPP Printer transitions itself to device paused (such as media-jam), the IPP Printer transitions itself to
the 'processing' or 'idle' states, depending on whether there are jobs the 'processing' or 'idle' states, depending on whether there are jobs
to be processed or not, respectively, and the device(s) resume to be processed or not, respectively, and the device(s) resume
processing jobs. processing jobs.
Expires December 23, 1999
If the Pause-Printer operation is supported, then the Resume-Printer If the Pause-Printer operation is supported, then the Resume-Printer
operation MUST be supported, and vice-versa. operation MUST be supported, and vice-versa.
The IPP Printer removes the 'printer-stopped' value from any job's "job- The IPP Printer removes the 'printer-stopped' value from any job's "job-
state-reasons" attributes contained in that Printer. state-reasons" attributes contained in that Printer.
Expires December 11, 1999
The IPP Printer MUST accept the request in any state, transition the The IPP Printer MUST accept the request in any state, transition the
Printer object to the indicated new state as follows: Printer object to the indicated new state as follows:
Current New "printer- IPP Printer's response status code and Current New "printer- IPP Printer's response status code and
"printer- state" action: "printer- state" action:
state" state"
'idle' 'idle' 'successful-ok' 'idle' 'idle' 'successful-ok'
'processing 'processing' 'successful-ok' 'processing 'processing' 'successful-ok'
' '
skipping to change at page 54, line 55 skipping to change at page 55, line 5
implementation, i.e., on whether the IPP protocol is being used as a implementation, i.e., on whether the IPP protocol is being used as a
universal management protocol or just to manage IPP jobs, respectively. universal management protocol or just to manage IPP jobs, respectively.
Note: if an operator wants to cancel all jobs without clearing out the Note: if an operator wants to cancel all jobs without clearing out the
Job History, the operator uses the Cancel-Job operation on each job Job History, the operator uses the Cancel-Job operation on each job
instead of using the Purge-Job operation. instead of using the Purge-Job operation.
The Printer object MUST accept this operation in any state and The Printer object MUST accept this operation in any state and
transition the Printer object to the 'idle' state. transition the Printer object to the 'idle' state.
Expires December 23, 1999
Access Rights: The authenticated user (see section 8.3) performing this Access Rights: The authenticated user (see section 8.3) performing this
operation must be an operator or administrator of the Printer object operation must be an operator or administrator of the Printer object
(see Sections 1 and 8.5). Otherwise, the IPP object MUST reject the (see Sections 1 and 8.5). Otherwise, the IPP object MUST reject the
operation and return: client-error-forbidden, client-error-not- operation and return: client-error-forbidden, client-error-not-
authenticated, and client-error-not-authorized as appropriate. authenticated, and client-error-not-authorized as appropriate.
Expires December 11, 1999
The Purge-Jobs Request and Purge-Jobs Response have the same attribute The Purge-Jobs Request and Purge-Jobs Response have the same attribute
groups and attributes as the Pause-Printer operation (see sections groups and attributes as the Pause-Printer operation (see sections
3.2.7.1 and 3.2.7.2). 3.2.7.1 and 3.2.7.2).
3.3 Job Operations 3.3 Job Operations
All Job operations are directed at Job objects. A client MUST always All Job operations are directed at Job objects. A client MUST always
supply some means of identifying the Job object in order to identify the supply some means of identifying the Job object in order to identify the
correct target of the operation. That job identification MAY either be correct target of the operation. That job identification MAY either be
a single Job URI or a combination of a Printer URI with a Job ID. The a single Job URI or a combination of a Printer URI with a Job ID. The
skipping to change at page 55, line 52 skipping to change at page 56, line 4
time for a particular job, a client MUST send another send operation time for a particular job, a client MUST send another send operation
within an IPP Printer defined minimum time interval after the receipt of within an IPP Printer defined minimum time interval after the receipt of
the previous request for the job. If a Printer object supports multiple the previous request for the job. If a Printer object supports multiple
document jobs, the Printer object MUST support the "multiple-operation- document jobs, the Printer object MUST support the "multiple-operation-
time-out" attribute (see section 4.4.31). This attribute indicates the time-out" attribute (see section 4.4.31). This attribute indicates the
minimum number of seconds the Printer object will wait for the next send minimum number of seconds the Printer object will wait for the next send
operation before taking some recovery action. operation before taking some recovery action.
An IPP object MUST recover from an errant client that does not supply a An IPP object MUST recover from an errant client that does not supply a
send operation, sometime after the minimum time interval specified by send operation, sometime after the minimum time interval specified by
Expires December 23, 1999
the Printer object's "multiple-operation-time-out" attribute. Such the Printer object's "multiple-operation-time-out" attribute. Such
recovery MAY include any of the following or other recovery actions: recovery MAY include any of the following or other recovery actions:
1. Assume that the Job is an invalid job, start the process of 1. Assume that the Job is an invalid job, start the process of
changing the job state to 'aborted', add the 'aborted-by-system' changing the job state to 'aborted', add the 'aborted-by-system'
value to the job's "job-state-reasons" attribute (see section value to the job's "job-state-reasons" attribute (see section
4.3.8), and clean up all resources associated with the Job. In 4.3.8), and clean up all resources associated with the Job. In
this case, if another send operation is finally received, the this case, if another send operation is finally received, the
Expires December 11, 1999
Printer responds with an "client-error-not-possible" or "client- Printer responds with an "client-error-not-possible" or "client-
error-not-found" depending on whether or not the Job object is error-not-found" depending on whether or not the Job object is
still around when the send operation finally arrives. still around when the send operation finally arrives.
2. Assume that the last send operation received was in fact the last 2. Assume that the last send operation received was in fact the last
document (as if the "last-document" flag had been set to 'true'), document (as if the "last-document" flag had been set to 'true'),
close the Job object, and proceed to process it (i.e., move the close the Job object, and proceed to process it (i.e., move the
Job's state to 'pending'). Job's state to 'pending').
3. Assume that the last send operation received was in fact the last 3. Assume that the last send operation received was in fact the last
document, close the Job, but move it to the 'pending-held' and add document, close the Job, but move it to the 'pending-held' and add
the 'submission-interrupted' value to the job's "job-state-reasons" the 'submission-interrupted' value to the job's "job-state-reasons"
skipping to change at page 56, line 51 skipping to change at page 57, line 5
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.1. attributes as described in section 3.1.4.1.
Target: Target:
Either (1) the "printer-uri" (uri) plus "job-id" (integer(1:MAX))or Either (1) the "printer-uri" (uri) plus "job-id" (integer(1:MAX))or
(2) the "job-uri" (uri) operation attribute(s) which define the (2) the "job-uri" (uri) operation attribute(s) which define the
target for this operation as described in section 3.1.5. target for this operation as described in section 3.1.5.
Expires December 23, 1999
Requesting User Name: Requesting User Name:
The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied
by the client as described in section 8.3. by the client as described in section 8.3.
"document-name" (name(MAX)): "document-name" (name(MAX)):
The client OPTIONALLY supplies this attribute. The Printer object The client OPTIONALLY supplies this attribute. The Printer object
MUST support this attribute. It contains the client supplied MUST support this attribute. It contains the client supplied
document name. The document name MAY be different than the Job document name. The document name MAY be different than the Job
Expires December 11, 1999
name. It might be helpful, but NEED NOT be unique across multiple name. It might be helpful, but NEED NOT be unique across multiple
documents in the same Job. Typically, the client software documents in the same Job. Typically, the client software
automatically supplies the document name on behalf of the end user automatically supplies the document name on behalf of the end user
by using a file name or an application generated name. See the by using a file name or an application generated name. See the
description of the "document-name" operation attribute in the description of the "document-name" operation attribute in the
Print-Job Request (section 3.2.1.1) for more information about this Print-Job Request (section 3.2.1.1) for more information about this
attribute. attribute.
"compression" (type3 keyword) "compression" (type3 keyword)
See the description of "compression" for the Print-Job operation in See the description of "compression" for the Print-Job operation in
skipping to change at page 57, line 51 skipping to change at page 58, line 5
attribute was set to 'false'), it is legal to send a Send-Document attribute was set to 'false'), it is legal to send a Send-Document
request with no document data where the "last-document" flag is set request with no document data where the "last-document" flag is set
to 'true'. Such a request MUST NOT increment the value of the Job to 'true'. Such a request MUST NOT increment the value of the Job
object's "number-of-documents" attribute, since no real document object's "number-of-documents" attribute, since no real document
was added to the job. was added to the job.
3.3.1.2 Send-Document Response 3.3.1.2 Send-Document Response
The following sets of attributes are part of the Send-Document Response: The following sets of attributes are part of the Send-Document Response:
Expires December 23, 1999
Group 1: Operation Attributes Group 1: Operation Attributes
Status Message: Status Message:
In addition to the REQUIRED status code returned in every response, In addition to the REQUIRED status code returned in every response,
the response OPTIONALLY includes a "status-message" (text(255)) the response OPTIONALLY includes a "status-message" (text(255))
operation attribute as described in sections 13 and 3.1.6. and/or a "detailed-status-message" (text(MAX)) operation attribute
as described in sections 13 and 3.1.6.
Expires December 11, 1999
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.2. attributes as described in section 3.1.4.2.
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See section 3.1.7 for details on returning Unsupported Attributes. See section 3.1.7 for details on returning Unsupported Attributes.
Group 3: Job Object Attributes Group 3: Job Object Attributes
skipping to change at page 59, line 5 skipping to change at page 59, line 5
This REQUIRED operation allows a client to cancel a Print Job from the This REQUIRED operation allows a client to cancel a Print Job from the
time the job is created up to the time it is completed, canceled, or time the job is created up to the time it is completed, canceled, or
aborted. Since a Job might already be printing by the time a Cancel-Job aborted. Since a Job might already be printing by the time a Cancel-Job
is received, some media sheet pages might be printed before the job is is received, some media sheet pages might be printed before the job is
actually terminated. actually terminated.
The IPP object MUST accept or reject the request based on the job's The IPP object MUST accept or reject the request based on the job's
current state and transition the job to the indicated new state as current state and transition the job to the indicated new state as
follows: follows:
Expires December 11, 1999 Expires December 23, 1999
Current "job- New "job- IPP object's response status Current "job- New "job- IPP object's response status
state" state" code and action: state" state" code and action:
'pending' 'canceled' 'successful-ok' 'pending' 'canceled' 'successful-ok'
'pending-held' 'canceled' 'successful-ok' 'pending-held' 'canceled' 'successful-ok'
'processing' 'canceled' 'successful-ok' 'processing' 'canceled' 'successful-ok'
'processing' 'processing' 'successful-ok' See Rule 1 'processing' 'processing' 'successful-ok' See Rule 1
'processing' 'processing' 'client-error-not-possible' 'processing' 'processing' 'client-error-not-possible'
See Rule 2 See Rule 2
'processing- 'canceled' 'successful-ok' 'processing- 'canceled' 'successful-ok'
skipping to change at page 60, line 5 skipping to change at page 60, line 5
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.1. attributes as described in section 3.1.4.1.
Target: Target:
Either (1) the "printer-uri" (uri) plus "job-id" Either (1) the "printer-uri" (uri) plus "job-id"
(integer(1:MAX))or (2) the "job-uri" (uri) operation attribute(s) (integer(1:MAX))or (2) the "job-uri" (uri) operation attribute(s)
which define the target for this operation as described in section which define the target for this operation as described in section
3.1.5. 3.1.5.
Expires December 11, 1999 Expires December 23, 1999
Requesting User Name: Requesting User Name:
The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied
by the client as described in section 8.3. by the client as described in section 8.3.
"message" (text(127)): "message" (text(127)):
The client OPTIONALLY supplies this attribute. The Printer object The client OPTIONALLY supplies this attribute. The Printer object
OPTIONALLY supports this attribute. It is a message to the OPTIONALLY supports this attribute. It is a message to the
operator. This "message" attribute is not the same as the "job- operator. This "message" attribute is not the same as the "job-
message-from-operator" attribute. That attribute is used to report message-from-operator" attribute. That attribute is used to report
a message from the operator to the end user that queries that a message from the operator to the end user that queries that
skipping to change at page 60, line 30 skipping to change at page 60, line 30
3.3.3.2 Cancel-Job Response 3.3.3.2 Cancel-Job Response
The following sets of attributes are part of the Cancel-Job Response: The following sets of attributes are part of the Cancel-Job Response:
Group 1: Operation Attributes Group 1: Operation Attributes
Status Message: Status Message:
In addition to the REQUIRED status code returned in every response, In addition to the REQUIRED status code returned in every response,
the response OPTIONALLY includes a "status-message" (text(255)) the response OPTIONALLY includes a "status-message" (text(255))
operation attribute as described in sections 13 and 3.1.6. and/or a "detailed-status-message" (text(MAX)) operation attribute
as described in sections 13 and 3.1.6.
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.2. attributes as described in section 3.1.4.2.
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See section 3.1.7 for details on returning Unsupported Attributes. See section 3.1.7 for details on returning Unsupported Attributes.
Once a successful response has been sent, the implementation guarantees Once a successful response has been sent, the implementation guarantees
skipping to change at page 61, line 5 skipping to change at page 61, line 5
'completed' state. 'completed' state.
3.3.4 Get-Job-Attributes Operation 3.3.4 Get-Job-Attributes Operation
This REQUIRED operation allows a client to request the values of This REQUIRED operation allows a client to request the values of
attributes of a Job object and it is almost identical to the Get- attributes of a Job object and it is almost identical to the Get-
Printer-Attributes operation (see section 3.2.5). The only differences Printer-Attributes operation (see section 3.2.5). The only differences
are that the operation is directed at a Job object rather than a Printer are that the operation is directed at a Job object rather than a Printer
object, there is no "document-format" operation attribute used when object, there is no "document-format" operation attribute used when
Expires December 11, 1999 Expires December 23, 1999
querying a Job object, and the returned attribute group is a set of Job querying a Job object, and the returned attribute group is a set of Job
object attributes rather than a set of Printer object attributes. object attributes rather than a set of Printer object attributes.
For Jobs, the possible names of attribute groups are: For Jobs, the possible names of attribute groups are:
- 'job-template': the subset of the Job Template attributes that - 'job-template': the subset of the Job Template attributes that
apply to a Job object (the first column of the table in Section apply to a Job object (the first column of the table in Section
4.2) that the implementation supports for Job objects. 4.2) that the implementation supports for Job objects.
- 'job-description': the subset of the Job Description attributes - 'job-description': the subset of the Job Description attributes
skipping to change at page 62, line 5 skipping to change at page 62, line 5
The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied
by the client as described in section 8.3. by the client as described in section 8.3.
"requested-attributes" (1setOf keyword) : "requested-attributes" (1setOf keyword) :
The client OPTIONALLY supplies this attribute. The IPP object MUST The client OPTIONALLY supplies this attribute. The IPP object MUST
support this attribute. It is a set of attribute names and/or support this attribute. It is a set of attribute names and/or
attribute group names in whose values the requester is interested. attribute group names in whose values the requester is interested.
If the client omits this attribute, the IPP object MUST respond as If the client omits this attribute, the IPP object MUST respond as
if this attribute had been supplied with a value of 'all'. if this attribute had been supplied with a value of 'all'.
Expires December 11, 1999 Expires December 23, 1999
3.3.4.2 Get-Job-Attributes Response 3.3.4.2 Get-Job-Attributes Response
The Printer object returns the following sets of attributes as part of The Printer object returns the following sets of attributes as part of
the Get-Job-Attributes Response: the Get-Job-Attributes Response:
Group 1: Operation Attributes Group 1: Operation Attributes
Status Message: Status Message:
In addition to the REQUIRED status code returned in every response, In addition to the REQUIRED status code returned in every response,
the response OPTIONALLY includes a "status-message" (text(255)) the response OPTIONALLY includes a "status-message" (text(255))
operation attribute as described in sections 13 and 3.1.6. and/or a "detailed-status-message" (text(MAX)) operation attribute
as described in sections 13 and 3.1.6.
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in section 3.1.4.2. The "attributes- attributes as described in section 3.1.4.2. The "attributes-
natural-language" MAY be the natural language of the Job object, natural-language" MAY be the natural language of the Job object,
rather than the one requested. rather than the one requested.
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See section 3.1.7 for details on returning Unsupported Attributes. See section 3.1.7 for details on returning Unsupported Attributes.
skipping to change at page 63, line 5 skipping to change at page 63, line 5
3.3.5 Hold-Job Operation 3.3.5 Hold-Job Operation
This OPTIONAL operation allows a client to hold a pending job in the This OPTIONAL operation allows a client to hold a pending job in the
queue so that it is not eligible for scheduling. If the Hold-Job queue so that it is not eligible for scheduling. If the Hold-Job
operation is supported, then the Release-Job operation MUST be operation is supported, then the Release-Job operation MUST be
supported, and vice-versa. The OPTIONAL "job-hold-until" operation supported, and vice-versa. The OPTIONAL "job-hold-until" operation
attribute allows a client to specify whether to hold the job attribute allows a client to specify whether to hold the job
indefinitely or until a specified time period, if supported. indefinitely or until a specified time period, if supported.
Expires December 11, 1999 Expires December 23, 1999
The IPP object MUST accept or reject the request based on the job's The IPP object MUST accept or reject the request based on the job's
current state and transition the job to the indicated new state as current state and transition the job to the indicated new state as
follows: follows:
Current "job- New "job-state" IPP object's response status Current "job- New "job-state" IPP object's response status
state" code and action: state" code and action:
'pending' 'pending-held' 'successful-ok' See Rule 1 'pending' 'pending-held' 'successful-ok' See Rule 1
'pending' 'pending' 'successful-ok' See Rule 2 'pending' 'pending' 'successful-ok' See Rule 2
skipping to change at page 64, line 5 skipping to change at page 64, line 5
The groups and operation attributes are the same as for a Cancel-Job The groups and operation attributes are the same as for a Cancel-Job
request (see section 3.3.3.1), with the addition of the following Group request (see section 3.3.3.1), with the addition of the following Group
1 Operation attribute: 1 Operation attribute:
"job-hold-until" (type3 keyword | name(MAX)): "job-hold-until" (type3 keyword | name(MAX)):
The client OPTIONALLY supplies this Operation attribute. The IPP The client OPTIONALLY supplies this Operation attribute. The IPP
object MUST support this operation attribute in a Hold-Job request, object MUST support this operation attribute in a Hold-Job request,
if it supports the "job-hold-until" Job template attribute in if it supports the "job-hold-until" Job template attribute in
create operations. See section 4.2.2. The IPP object SHOULD create operations. See section 4.2.2. The IPP object SHOULD
Expires December 11, 1999 Expires December 23, 1999
support the "job-hold-until" Job Template attribute for use in job support the "job-hold-until" Job Template attribute for use in job
create operations with at least the 'indefinite' value, if it create operations with at least the 'indefinite' value, if it
supports the Hold-Job operation. Otherwise, a client cannot create supports the Hold-Job operation. Otherwise, a client cannot create
a job and hold it immediately (without picking some supported time a job and hold it immediately (without picking some supported time
period in the future). period in the future).
If supplied and supported as specified in the Printer's "job-hold- If supplied and supported as specified in the Printer's "job-hold-
until-supported" attribute, the IPP object copies the supplied until-supported" attribute, the IPP object copies the supplied
operation attribute to the Job object, replacing the job's previous operation attribute to the Job object, replacing the job's previous
"job-hold-until" attribute, if present, and makes the job a "job-hold-until" attribute, if present, and makes the job a
skipping to change at page 64, line 54 skipping to change at page 64, line 54
3.3.6 Release-Job Operation 3.3.6 Release-Job Operation
This OPTIONAL operation allows a client to release a previously held job This OPTIONAL operation allows a client to release a previously held job
so that it is again eligible for scheduling. If the Hold-Job operation so that it is again eligible for scheduling. If the Hold-Job operation
is supported, then the Release-Job operation MUST be supported, and is supported, then the Release-Job operation MUST be supported, and
vice-versa. vice-versa.
This operation removes the "job-hold-until" job attribute, if present, This operation removes the "job-hold-until" job attribute, if present,
from the job object that had been supplied in the create or most recent from the job object that had been supplied in the create or most recent
Hold-Job or Restart-Job operation and remove its effect on the job. The Hold-Job or Restart-Job operation and removes its effect on the job.
IPP object MUST remove the 'job-hold-until-specified' value from the The IPP object MUST remove the 'job-hold-until-specified' value from the
job's "job-state-reasons" attribute, if present. See section 4.3.8. job's "job-state-reasons" attribute, if present. See section 4.3.8.
Expires December 11, 1999 Expires December 23, 1999
The IPP object MUST accept or reject the request based on the job's The IPP object MUST accept or reject the request based on the job's
current state and transition the job to the indicated new state as current state and transition the job to the indicated new state as
follows: follows:
Current "job- New "job-state" IPP object's response status Current "job- New "job-state" IPP object's response status
state" code and action: state" code and action:
'pending' 'pending' 'successful-ok' 'pending' 'pending' 'successful-ok'
No effect on the job. No effect on the job.
skipping to change at page 66, line 5 skipping to change at page 66, line 5
beginning on the same IPP Printer object with the same attribute values. beginning on the same IPP Printer object with the same attribute values.
The Job Description attributes that accumulate job progress, such as The Job Description attributes that accumulate job progress, such as
"job-impressions-completed", "job-media-sheets-completed", and "job-k- "job-impressions-completed", "job-media-sheets-completed", and "job-k-
octets-processed", MUST be reset to 0 so that they give an accurate octets-processed", MUST be reset to 0 so that they give an accurate
record of the job from its restart point. The job object MUST continue record of the job from its restart point. The job object MUST continue
to use the same "job-uri" and "job-id" attribute values. to use the same "job-uri" and "job-id" attribute values.
Note: If in the future an operation is needed that does not reset the Note: If in the future an operation is needed that does not reset the
job progress attributes, then a new operation will be defined which job progress attributes, then a new operation will be defined which
Expires December 11, 1999 Expires December 23, 1999
makes a copy of the job, assigns a new "job-uri" and "job-id" to the makes a copy of the job, assigns a new "job-uri" and "job-id" to the
copy and resets the job progress attributes in the new copy only. copy and resets the job progress attributes in the new copy only.
The IPP object MUST accept or reject the request based on the job's The IPP object MUST accept or reject the request based on the job's
current state, transition the job to the indicated new state as follows: current state, transition the job to the indicated new state as follows:
Current "job- New "job-state" IPP object's response status Current "job- New "job-state" IPP object's response status
state" code and action: state" code and action:
skipping to change at page 67, line 5 skipping to change at page 67, line 5
3.3.7.1 Restart-Job Request 3.3.7.1 Restart-Job Request
The groups and attributes are the same as for a Cancel-Job request (see The groups and attributes are the same as for a Cancel-Job request (see
section 3.3.3.1), with the addition of the following Group 1 Operation section 3.3.3.1), with the addition of the following Group 1 Operation
attribute: attribute:
"job-hold-until" (type3 keyword | name(MAX)): "job-hold-until" (type3 keyword | name(MAX)):
The client OPTIONALLY supplies this attribute. The IPP object MUST The client OPTIONALLY supplies this attribute. The IPP object MUST
support this Operation attribute in a Restart-Job request, if it support this Operation attribute in a Restart-Job request, if it
Expires December 11, 1999 Expires December 23, 1999
supports the "job-hold-until" Job Template attribute in create supports the "job-hold-until" Job Template attribute in create
operations. See section 4.2.2. Otherwise, the IPP object NEED NOT operations. See section 4.2.2. Otherwise, the IPP object NEED NOT
support the "job-hold-until" Operation attribute in a Restart-Job support the "job-hold-until" Operation attribute in a Restart-Job
request. request.
If supplied and supported as specified in the Printer's "job-hold- If supplied and supported as specified in the Printer's "job-hold-
until-supported" attribute, the IPP object copies the supplied until-supported" attribute, the IPP object copies the supplied
Operation attribute to the Job object, replacing the job's previous Operation attribute to the Job object, replacing the job's previous
"job-hold-until" attribute, if present, and makes the job a "job-hold-until" attribute, if present, and makes the job a
candidate for scheduling during the supplied named time period. candidate for scheduling during the supplied named time period.
skipping to change at page 68, line 5 skipping to change at page 68, line 5
3.3.7.2 Restart-Job Response 3.3.7.2 Restart-Job Response
The groups and attributes are the same as for a Cancel-Job response (see The groups and attributes are the same as for a Cancel-Job response (see
section 3.3.3.2). section 3.3.3.2).
Note: In the future an OPTIONAL Modify-Job or Set-Job-Attributes Note: In the future an OPTIONAL Modify-Job or Set-Job-Attributes
operation may be specified that allows the client to modify other operation may be specified that allows the client to modify other
attributes before releasing the restarted job. attributes before releasing the restarted job.
Expires December 11, 1999 Expires December 23, 1999
4. Object Attributes 4. Object Attributes
This section describes the attributes with their corresponding attribute This section describes the attributes with their corresponding attribute
syntaxes and values that are part of the IPP model. The sections below syntaxes and values that are part of the IPP model. The sections below
show the objects and their associated attributes which are included show the objects and their associated attributes which are included
within the scope of this protocol. Many of these attributes are derived within the scope of this protocol. Many of these attributes are derived
from other relevant documents: from other relevant documents:
- Document Printing Application (DPA) [ISO10175] - Document Printing Application (DPA) [ISO10175]
skipping to change at page 69, line 5 skipping to change at page 69, line 5
'unsupported': The attribute is unsupported by the IPP object. This 'unsupported': The attribute is unsupported by the IPP object. This
value MUST be returned only as the value of an attribute in the value MUST be returned only as the value of an attribute in the
Unsupported Attributes Group. Unsupported Attributes Group.
'no-value': The attribute is supported by the Printer object, but the 'no-value': The attribute is supported by the Printer object, but the
administrator has not yet configured a value. administrator has not yet configured a value.
All attributes in a request MUST have one or more values as defined in All attributes in a request MUST have one or more values as defined in
Sections 4.2 to 4.4. Thus clients MUST NOT supply attributes with "out- Sections 4.2 to 4.4. Thus clients MUST NOT supply attributes with "out-
of-band" values. All attributes in a response MUST have one or more of-band" values. All attributes in a response MUST have one or more
Expires December 11, 1999 Expires December 23, 1999
values as defined in Sections 4.2 to 4.4 or a single "out-of-band" values as defined in Sections 4.2 to 4.4 or a single "out-of-band"
value. value.
Most attributes are defined to have a single attribute syntax. However, Most attributes are defined to have a single attribute syntax. However,
a few attributes (e.g., "job-sheet", "media", "job-hold-until") are a few attributes (e.g., "job-sheet", "media", "job-hold-until") are
defined to have several attribute syntaxes, depending on the value. defined to have several attribute syntaxes, depending on the value.
These multiple attribute syntaxes are separated by the "|" character in These multiple attribute syntaxes are separated by the "|" character in
the sub-section heading to indicate the choice. Since each value MUST the sub-section heading to indicate the choice. Since each value MUST
be tagged as to its attribute syntax in the protocol, a single-valued be tagged as to its attribute syntax in the protocol, a single-valued
skipping to change at page 70, line 5 skipping to change at page 70, line 5
and there is no need to identify the natural language for each text and there is no need to identify the natural language for each text
string on a value-by-value basis. In these cases, the attribute syntax string on a value-by-value basis. In these cases, the attribute syntax
'textWithoutLanguage' is used for text attributes. In other cases, the 'textWithoutLanguage' is used for text attributes. In other cases, the
client needs to supply or the Printer object needs to return a text client needs to supply or the Printer object needs to return a text
value in a natural language that is different from the rest of the text value in a natural language that is different from the rest of the text
values in the request or response. In these cases, the client or values in the request or response. In these cases, the client or
Printer object uses the attribute syntax 'textWithLanguage' for text Printer object uses the attribute syntax 'textWithLanguage' for text
attributes (this is the Natural Language Override mechanism described in attributes (this is the Natural Language Override mechanism described in
section 3.1.4). section 3.1.4).
Expires December 11, 1999 Expires December 23, 1999
The 'textWithoutLanguage' and 'textWithLanguage' attribute syntaxes are The 'textWithoutLanguage' and 'textWithLanguage' attribute syntaxes are
described in more detail in the following sections. described in more detail in the following sections.
4.1.1.1 'textWithoutLanguage' 4.1.1.1 'textWithoutLanguage'
The 'textWithoutLanguage' syntax indicates a value that is sequence of The 'textWithoutLanguage' syntax indicates a value that is sequence of
zero or more characters. Text strings are encoded using the rules of zero or more characters. Text strings are encoded using the rules of
some charset. The Printer object MUST support the UTF-8 charset some charset. The Printer object MUST support the UTF-8 charset
[RFC2279] and MAY support additional charsets to represent 'text' [RFC2279] and MAY support additional charsets to represent 'text'
skipping to change at page 71, line 5 skipping to change at page 71, line 5
operation attribute with the value: 'en' indicating English, but the operation attribute with the value: 'en' indicating English, but the
value of the "job-name" attribute is in French, the client MUST use the value of the "job-name" attribute is in French, the client MUST use the
'textWithLanguage' attribute syntax with the following two values: 'textWithLanguage' attribute syntax with the following two values:
'fr': Natural Language Override indicating French 'fr': Natural Language Override indicating French
'Rapport Mensuel': the job name in French 'Rapport Mensuel': the job name in French
See the "Encoding and Transport" document [IPP-PRO] for a detailed See the "Encoding and Transport" document [IPP-PRO] for a detailed
example of the 'textWithLanguage' attribute syntax. example of the 'textWithLanguage' attribute syntax.
Expires December 11, 1999 Expires December 23, 1999
4.1.2 'name' 4.1.2 'name'
This syntax type is used for user-friendly strings, such as a Printer This syntax type is used for user-friendly strings, such as a Printer
name, that, for humans, are more meaningful than identifiers. Names are name, that, for humans, are more meaningful than identifiers. Names are
never translated from one natural language to another. The 'name' never translated from one natural language to another. The 'name'
attribute syntax is essentially the same as 'text', including the attribute syntax is essentially the same as 'text', including the
REQUIRED support of UTF-8 except that the sequence of characters is REQUIRED support of UTF-8 except that the sequence of characters is
limited so that its encoded form MUST NOT exceed 255 (MAX) octets. limited so that its encoded form MUST NOT exceed 255 (MAX) octets.
skipping to change at page 72, line 5 skipping to change at page 72, line 5
syntax is used rather than the generic 'nameWithoutLanguage' syntax. syntax is used rather than the generic 'nameWithoutLanguage' syntax.
Example: If the client supplies the "attributes-natural-language" Example: If the client supplies the "attributes-natural-language"
operation attribute with the value: 'en' indicating English, but the operation attribute with the value: 'en' indicating English, but the
"printer-name" attribute is in German, the client MUST use the "printer-name" attribute is in German, the client MUST use the
'nameWithLanguage' attribute syntax as follows: 'nameWithLanguage' attribute syntax as follows:
'de': Natural Language Override indicating German 'de': Natural Language Override indicating German
'Farbdrucker': the Printer name in German 'Farbdrucker': the Printer name in German
Expires December 11, 1999 Expires December 23, 1999
4.1.2.3 Matching 'name' attribute values 4.1.2.3 Matching 'name' attribute values
For purposes of matching two 'name' attribute values for equality, such For purposes of matching two 'name' attribute values for equality, such
as in job validation (where a client-supplied value for attribute "xxx" as in job validation (where a client-supplied value for attribute "xxx"
is checked to see if the value is among the values of the Printer is checked to see if the value is among the values of the Printer
object's corresponding "xxx-supported" attribute), the following match object's corresponding "xxx-supported" attribute), the following match
rules apply: rules apply:
1. 'keyword' values never match 'name' values. 1. 'keyword' values never match 'name' values.
skipping to change at page 73, line 5 skipping to change at page 73, line 5
provide a mapping between protocol keywords and displayable user- provide a mapping between protocol keywords and displayable user-
friendly words and phrases which are localized to the natural language friendly words and phrases which are localized to the natural language
of the user. While the keywords specified in this document MAY be of the user. While the keywords specified in this document MAY be
displayed to users whose natural language is U.S. English, they MAY be displayed to users whose natural language is U.S. English, they MAY be
mapped to other U.S. English words for U.S. English users, since the mapped to other U.S. English words for U.S. English users, since the
user interface is outside the scope of this document. user interface is outside the scope of this document.
In the definition for each attribute of this syntax type, the full set In the definition for each attribute of this syntax type, the full set
of defined keyword values for that attribute are listed. of defined keyword values for that attribute are listed.
Expires December 11, 1999 Expires December 23, 1999
When a keyword is used to represent an attribute (its name), it MUST be When a keyword is used to represent an attribute (its name), it MUST be
unique within the full scope of all IPP objects and attributes. When a unique within the full scope of all IPP objects and attributes. When a
keyword is used to represent a value of an attribute, it MUST be unique keyword is used to represent a value of an attribute, it MUST be unique
just within the scope of that attribute. That is, the same keyword MUST just within the scope of that attribute. That is, the same keyword MUST
NOT be used for two different values within the same attribute to mean NOT be used for two different values within the same attribute to mean
two different semantic ideas. However, the same keyword MAY be used two different semantic ideas. However, the same keyword MAY be used
across two or more attributes, representing different semantic ideas for across two or more attributes, representing different semantic ideas for
each attribute. Section 6.1 describes how the protocol can be extended each attribute. Section 6.1 describes how the protocol can be extended
with new keyword values. Examples of attribute name keywords: with new keyword values. Examples of attribute name keywords:
skipping to change at page 74, line 5 skipping to change at page 74, line 5
"enum" basic syntax to indicate different levels of review for "enum" basic syntax to indicate different levels of review for
extensions (see section 6.1). extensions (see section 6.1).
4.1.5 'uri' 4.1.5 'uri'
The 'uri' attribute syntax is any valid Uniform Resource Identifier or The 'uri' attribute syntax is any valid Uniform Resource Identifier or
URI [RFC2396]. Most often, URIs are simply Uniform Resource Locators or URI [RFC2396]. Most often, URIs are simply Uniform Resource Locators or
URLs. The maximum length of URIs used as values of IPP attributes is URLs. The maximum length of URIs used as values of IPP attributes is
1023 octets. Although most other IPP attribute syntax types allow for 1023 octets. Although most other IPP attribute syntax types allow for
Expires December 11, 1999 Expires December 23, 1999
only lower-cased values, this attribute syntax type conforms to the only lower-cased values, this attribute syntax type conforms to the
case-sensitive and case-insensitive rules specified in [RFC2396]. See case-sensitive and case-insensitive rules specified in [RFC2396]. See
also [IPP-IIG] for a discussion of case in URIs. also [IPP-IIG] for a discussion of case in URIs.
4.1.6 'uriScheme' 4.1.6 'uriScheme'
The 'uriScheme' attribute syntax is a sequence of characters The 'uriScheme' attribute syntax is a sequence of characters
representing a URI scheme according to RFC 2396 [RFC2396]. Though RFC representing a URI scheme according to RFC 2396 [RFC2396]. Though RFC
2396 requires that the values be case-insensitive, IPP requires all 2396 requires that the values be case-insensitive, IPP requires all
skipping to change at page 75, line 5 skipping to change at page 75, line 5
Some examples are: Some examples are:
'utf-8': ISO 10646 Universal Multiple-Octet Coded Character Set 'utf-8': ISO 10646 Universal Multiple-Octet Coded Character Set
(UCS) represented as the UTF-8 [RFC2279] transfer encoding scheme (UCS) represented as the UTF-8 [RFC2279] transfer encoding scheme
in which US-ASCII is a subset charset. in which US-ASCII is a subset charset.
'us-ascii': 7-bit American Standard Code for Information Interchange 'us-ascii': 7-bit American Standard Code for Information Interchange
(ASCII), ANSI X3.4-1986 [ASCII]. That standard defines US-ASCII, (ASCII), ANSI X3.4-1986 [ASCII]. That standard defines US-ASCII,
but RFC 2045 [RFC2045] eliminates most of the control characters but RFC 2045 [RFC2045] eliminates most of the control characters
from conformant usage in MIME and IPP. from conformant usage in MIME and IPP.
Expires December 11, 1999 Expires December 23, 1999
'iso-8859-1': 8-bit One-Byte Coded Character Set, Latin Alphabet Nr 'iso-8859-1': 8-bit One-Byte Coded Character Set, Latin Alphabet Nr
1 [ISO8859-1]. That standard defines a coded character set that is 1 [ISO8859-1]. That standard defines a coded character set that is
used by Latin languages in the Western Hemisphere and Western used by Latin languages in the Western Hemisphere and Western
Europe. US-ASCII is a subset charset. Europe. US-ASCII is a subset charset.
'iso-10646-ucs-2': ISO 10646 Universal Multiple-Octet Coded 'iso-10646-ucs-2': ISO 10646 Universal Multiple-Octet Coded
Character Set (UCS) represented as two octets (UCS-2), with the Character Set (UCS) represented as two octets (UCS-2), with the
high order octet of each pair coming first (so-called Big Endian high order octet of each pair coming first (so-called Big Endian
integer). integer).
Some attribute descriptions MAY place additional requirements on charset Some attribute descriptions MAY place additional requirements on charset
skipping to change at page 76, line 5 skipping to change at page 76, line 5
'text/html': An HTML document 'text/html': An HTML document
'text/plain': A plain text document in US-ASCII (RFC 2046 indicates 'text/plain': A plain text document in US-ASCII (RFC 2046 indicates
that in the absence of the charset parameter MUST mean US-ASCII that in the absence of the charset parameter MUST mean US-ASCII
rather than simply unspecified) [RFC2046]. rather than simply unspecified) [RFC2046].
'text/plain; charset=US-ASCII': A plain text document in US-ASCII 'text/plain; charset=US-ASCII': A plain text document in US-ASCII
[52, 56]. [52, 56].
'text/plain; charset=ISO-8859-1': A plain text document in ISO 8859- 'text/plain; charset=ISO-8859-1': A plain text document in ISO 8859-
1 (Latin 1) [ISO8859-1]. 1 (Latin 1) [ISO8859-1].
Expires December 11, 1999 Expires December 23, 1999
'text/plain; charset=utf-8': A plain text document in ISO 10646 'text/plain; charset=utf-8': A plain text document in ISO 10646
represented as UTF-8 [RFC2279] represented as UTF-8 [RFC2279]
'application/postscript': A PostScript document [RFC2046] 'application/postscript': A PostScript document [RFC2046]
'application/vnd.hp-PCL': A PCL document [IANA-MT] (charset escape 'application/vnd.hp-PCL': A PCL document [IANA-MT] (charset escape
sequence embedded in the document data) sequence embedded in the document data)
'application/pdf': Portable Document Format - see IANA MIME Media 'application/pdf': Portable Document Format - see IANA MIME Media
Type registry Type registry
'application/octet-stream': Auto-sense - see section 4.1.9.1 'application/octet-stream': Auto-sense - see section 4.1.9.1
4.1.9.1 Application/octet-stream -- Auto-Sensing the document format 4.1.9.1 Application/octet-stream -- Auto-Sensing the document format
skipping to change at page 77, line 5 skipping to change at page 77, line 5
3. If the client supplies a value of 'application/octet-stream', the 3. If the client supplies a value of 'application/octet-stream', the
client is indicating that the Printer object MUST use its auto- client is indicating that the Printer object MUST use its auto-
sensing mechanism on the client supplied document data whether sensing mechanism on the client supplied document data whether
auto-sensing is the Printer object's default or not. auto-sensing is the Printer object's default or not.
Note: Since the auto-sensing algorithm is probabilistic, if the client Note: Since the auto-sensing algorithm is probabilistic, if the client
requests both auto-sensing ("document-format" set to 'application/octet- requests both auto-sensing ("document-format" set to 'application/octet-
stream') and true fidelity ("ipp-attribute-fidelity" set to 'true'), the stream') and true fidelity ("ipp-attribute-fidelity" set to 'true'), the
Printer object might not be able to guarantee exactly what the end user Printer object might not be able to guarantee exactly what the end user
Expires December 11, 1999 Expires December 23, 1999
intended (the auto-sensing algorithm might mistake one document format intended (the auto-sensing algorithm might mistake one document format
for another), but it is able to guarantee that its auto-sensing for another), but it is able to guarantee that its auto-sensing
mechanism be used. mechanism be used.
The maximum length of a 'mimeMediaType' value to represent IPP attribute The maximum length of a 'mimeMediaType' value to represent IPP attribute
values is 255 octets. values is 255 octets.
4.1.10 'octetString' 4.1.10 'octetString'
skipping to change at page 78, line 5 skipping to change at page 78, line 5
The 'dateTime' attribute syntax is a standard, fixed length, 11 octet The 'dateTime' attribute syntax is a standard, fixed length, 11 octet
representation of the "DateAndTime" syntax as defined in RFC 2579 representation of the "DateAndTime" syntax as defined in RFC 2579
[RFC2579]. RFC 2579 also identifies an 8 octet representation of a [RFC2579]. RFC 2579 also identifies an 8 octet representation of a
"DateAndTime" value, but IPP objects MUST use the 11 octet "DateAndTime" value, but IPP objects MUST use the 11 octet
representation. A user interface will provide a mapping between representation. A user interface will provide a mapping between
protocol dateTime values and displayable user-friendly words or protocol dateTime values and displayable user-friendly words or
presentation values and phrases which are localized to the natural presentation values and phrases which are localized to the natural
language and date format of the user, including time zone. language and date format of the user, including time zone.
Expires December 11, 1999 Expires December 23, 1999
4.1.15 'resolution' 4.1.15 'resolution'
The 'resolution' attribute syntax specifies a two-dimensional resolution The 'resolution' attribute syntax specifies a two-dimensional resolution
in the indicated units. It consists of 3 values: a cross feed direction in the indicated units. It consists of 3 values: a cross feed direction
resolution (positive integer value), a feed direction resolution resolution (positive integer value), a feed direction resolution
(positive integer value), and a units value. The semantics of these (positive integer value), and a units value. The semantics of these
three components are taken from the Printer MIB [RFC1759] suggested three components are taken from the Printer MIB [RFC1759] suggested
values. That is, the cross feed direction component resolution values. That is, the cross feed direction component resolution
component is the same as the prtMarkerAddressabilityXFeedDir object in component is the same as the prtMarkerAddressabilityXFeedDir object in
skipping to change at page 79, line 5 skipping to change at page 79, line 5
"xxx" may be supported for some document formats and not supported "xxx" may be supported for some document formats and not supported
for other document formats. For example, it is expected that a for other document formats. For example, it is expected that a
Printer object would only support "orientation-requested" for some Printer object would only support "orientation-requested" for some
document formats (such as 'text/plain' or 'text/html') but not document formats (such as 'text/plain' or 'text/html') but not
others (such as 'application/postscript'). others (such as 'application/postscript').
2. "xxx" is OPTIONALLY supplied by the client in a create request. 2. "xxx" is OPTIONALLY supplied by the client in a create request.
If "xxx" is supplied, the client is indicating a desired job If "xxx" is supplied, the client is indicating a desired job
processing behavior for this Job. When "xxx" is not supplied, the processing behavior for this Job. When "xxx" is not supplied, the
Expires December 11, 1999 Expires December 23, 1999
client is indicating that the Printer object apply its default job client is indicating that the Printer object apply its default job
processing behavior at job processing time if the document content processing behavior at job processing time if the document content
does not contain an embedded instruction indicating an xxx-related does not contain an embedded instruction indicating an xxx-related
behavior. behavior.
Since an administrator MAY change the default value attribute after Since an administrator MAY change the default value attribute after
a Job object has been submitted but before it has been processed, a Job object has been submitted but before it has been processed,
the default value used by the Printer object at job processing time the default value used by the Printer object at job processing time
may be different that the default value in effect at job submission may be different that the default value in effect at job submission
time. time.
skipping to change at page 80, line 5 skipping to change at page 80, line 5
'cover'. A client can query the Printer object for the "finishings- 'cover'. A client can query the Printer object for the "finishings-
supported" attribute and the "finishings-default" attribute. The supported" attribute and the "finishings-default" attribute. The
supported attribute contains a set of supported values. The default supported attribute contains a set of supported values. The default
value attribute contains the finishing value(s) that will be used for a value attribute contains the finishing value(s) that will be used for a
new Job if the client does not supply a "finishings" attribute in the new Job if the client does not supply a "finishings" attribute in the
create request and the document data does not contain any corresponding create request and the document data does not contain any corresponding
finishing instructions. If the client does supply the "finishings" finishing instructions. If the client does supply the "finishings"
attribute in the create request, the IPP object validates the value or attribute in the create request, the IPP object validates the value or
values to make sure that they are a subset of the supported values values to make sure that they are a subset of the supported values
Expires December 11, 1999 Expires December 23, 1999
identified in the Printer object's "finishings-supported" attribute. identified in the Printer object's "finishings-supported" attribute.
See section 3.1.7. See section 3.1.7.
The table below summarizes the names and relationships for all Job The table below summarizes the names and relationships for all Job
Template attributes. The first column of the table (labeled "Job Template attributes. The first column of the table (labeled "Job
Attribute") shows the name and syntax for each Job Template attribute in Attribute") shows the name and syntax for each Job Template attribute in
the Job object. These are the attributes that can optionally be supplied the Job object. These are the attributes that can optionally be supplied
by the client in a create request. The last two columns (labeled by the client in a create request. The last two columns (labeled
"Printer: Default Value Attribute" and "Printer: Supported Values "Printer: Default Value Attribute" and "Printer: Supported Values
Attribute") shows the name and syntax for each Job Template attribute in Attribute") shows the name and syntax for each Job Template attribute in
the Printer object (the default value attribute and the supported values the Printer object (the default value attribute and the supported values
attribute). A "No" in the table means the Printer MUST NOT support the attribute). A "No" in the table means the Printer MUST NOT support the
attribute (that is, the attribute is simply not applicable). For attribute (that is, the attribute is simply not applicable). For
brevity in the table, the 'text' and 'name' entries do not show the brevity in the table, the 'text' and 'name' entries do not show the
maximum length for each attribute. maximum length for each attribute.
Expires December 11, 1999 Expires December 23, 1999
+===================+======================+======================+ +===================+======================+======================+
| Job Attribute |Printer: Default Value| Printer: Supported | | Job Attribute |Printer: Default Value| Printer: Supported |
| | Attribute | Values Attribute | | | Attribute | Values Attribute |
+===================+======================+======================+ +===================+======================+======================+
| job-priority | job-priority-default |job-priority-supported| | job-priority | job-priority-default |job-priority-supported|
| (integer 1:100) | (integer 1:100) |(integer 1:100) | | (integer 1:100) | (integer 1:100) |(integer 1:100) |
+-------------------+----------------------+----------------------+ +-------------------+----------------------+----------------------+
| job-hold-until | job-hold-until- |job-hold-until- | | job-hold-until | job-hold-until- |job-hold-until- |
| (type3 keyword | | default | supported | | (type3 keyword | | default | supported |
| name) | (type3 keyword | |(1setOf ( | | name) | (type3 keyword | |(1setOf ( |
skipping to change at page 82, line 5 skipping to change at page 82, line 5
| media | media-default | media-supported | | media | media-default | media-supported |
| (type3 keyword | | (type3 keyword | |(1setOf ( | | (type3 keyword | | (type3 keyword | |(1setOf ( |
| name) | name) |type3 keyword | name))| | name) | name) |type3 keyword | name))|
| | | | | | | |
| | | media-ready | | | | media-ready |
| | |(1setOf ( | | | |(1setOf ( |
| | |type3 keyword | name))| | | |type3 keyword | name))|
+-------------------+----------------------+----------------------+ +-------------------+----------------------+----------------------+
| printer-resolution| printer-resolution- | printer-resolution- | | printer-resolution| printer-resolution- | printer-resolution- |
Expires December 11, 1999 Expires December 23, 1999
| (resolution) | default | supported | | (resolution) | default | supported |
| | (resolution) |(1setOf resolution) | | | (resolution) |(1setOf resolution) |
+-------------------+----------------------+----------------------+ +-------------------+----------------------+----------------------+
| print-quality | print-quality-default| print-quality- | | print-quality | print-quality-default| print-quality- |
| (type2 enum) | (type2 enum) | supported | | (type2 enum) | (type2 enum) | supported |
| | |(1setOf type2 enum) | | | |(1setOf type2 enum) |
+-------------------+----------------------+----------------------+ +-------------------+----------------------+----------------------+
4.2.1 job-priority (integer(1:100)) 4.2.1 job-priority (integer(1:100))
skipping to change at page 83, line 5 skipping to change at page 83, line 5
of values is: 25 and 75; if n = 3, the sequence of values is: 17, 50 of values is: 25 and 75; if n = 3, the sequence of values is: 17, 50
and 83; if n = 10, the sequence of values is: 5, 15, 25, 35, 45, 55, and 83; if n = 10, the sequence of values is: 5, 15, 25, 35, 45, 55,
65, 75, 85, and 95; if n = 100, the sequence of values is: 1, 2, 3, . 65, 75, 85, and 95; if n = 100, the sequence of values is: 1, 2, 3, .
100. 100.
If the value of the Printer object's "job-priority-supported" is 10 and If the value of the Printer object's "job-priority-supported" is 10 and
the client supplies values in the range 1 to 10, the Printer object maps the client supplies values in the range 1 to 10, the Printer object maps
them to 5, in the range 11 to 20, the Printer object maps them to 15, them to 5, in the range 11 to 20, the Printer object maps them to 15,
etc. etc.
Expires December 11, 1999 Expires December 23, 1999
4.2.2 job-hold-until (type3 keyword | name (MAX)) 4.2.2 job-hold-until (type3 keyword | name (MAX))
This attribute specifies the named time period during which the Job MUST This attribute specifies the named time period during which the Job MUST
become a candidate for printing. become a candidate for printing.
Standard keyword values for named time periods are: Standard keyword values for named time periods are:
'no-hold': immediately, if there are not other reasons to hold the 'no-hold': immediately, if there are not other reasons to hold the
job job
skipping to change at page 84, line 5 skipping to change at page 84, line 5
(unlike most Job Template attributes that are used if necessary at job (unlike most Job Template attributes that are used if necessary at job
processing time). processing time).
4.2.3 job-sheets (type3 keyword | name(MAX)) 4.2.3 job-sheets (type3 keyword | name(MAX))
This attribute determines which job start/end sheet(s), if any, MUST be This attribute determines which job start/end sheet(s), if any, MUST be
printed with a job. printed with a job.
Standard keyword values are: Standard keyword values are:
Expires December 11, 1999 Expires December 23, 1999
'none': no job sheet is printed 'none': no job sheet is printed
'standard': one or more site specific standard job sheets are 'standard': one or more site specific standard job sheets are
printed, e.g. a single start sheet or both start and end sheet is printed, e.g. a single start sheet or both start and end sheet is
printed printed
An administrator MAY define additional values using the 'name' or An administrator MAY define additional values using the 'name' or
'keyword' attribute syntax, depending on implementation. 'keyword' attribute syntax, depending on implementation.
The effect of this attribute on jobs with multiple documents MAY be The effect of this attribute on jobs with multiple documents MAY be
affected by the "multiple-document-handling" job attribute (section affected by the "multiple-document-handling" job attribute (section
skipping to change at page 85, line 5 skipping to change at page 85, line 5
separately. The Printer object MUST force each copy of the result separately. The Printer object MUST force each copy of the result
of processing the data in a single document to start on a new media of processing the data in a single document to start on a new media
sheet. If more than one copy is made, the ordering of the sets of sheet. If more than one copy is made, the ordering of the sets of
media sheets resulting from processing the document data MUST be media sheets resulting from processing the document data MUST be
a(*), a(*), ..., b(*), b(*) ... . a(*), a(*), ..., b(*), b(*) ... .
'separate-documents-collated-copies': If a Job object has multiple 'separate-documents-collated-copies': If a Job object has multiple
documents, say, the document data is called a and b, then the documents, say, the document data is called a and b, then the
result of processing the data in each document instance MUST be result of processing the data in each document instance MUST be
treated as a single sequence of media sheets for finishing treated as a single sequence of media sheets for finishing
Expires December 11, 1999 Expires December 23, 1999
operations; that is, the sets a(*) and b(*) would each be finished operations; that is, the sets a(*) and b(*) would each be finished
separately. The Printer object MUST force each copy of the result separately. The Printer object MUST force each copy of the result
of processing the data in a single document to start on a new media of processing the data in a single document to start on a new media
sheet. If more than one copy is made, the ordering of the sets of sheet. If more than one copy is made, the ordering of the sets of
media sheets resulting from processing the document data MUST be media sheets resulting from processing the document data MUST be
a(*), b(*), a(*), b(*), ... . a(*), b(*), a(*), b(*), ... .
'single-document-new-sheet': Same as 'single-document', except that 'single-document-new-sheet': Same as 'single-document', except that
the Printer object MUST ensure that the first impression of each the Printer object MUST ensure that the first impression of each
document instance in the job is placed on a new media sheet. This document instance in the job is placed on a new media sheet. This
value allows multiple documents to be stapled together with a value allows multiple documents to be stapled together with a
skipping to change at page 86, line 5 skipping to change at page 86, line 5
4.2.4) and the relationship of this attribute and the other attributes 4.2.4) and the relationship of this attribute and the other attributes
that control document processing is described in section 15.3. that control document processing is described in section 15.3.
4.2.6 finishings (1setOf type2 enum) 4.2.6 finishings (1setOf type2 enum)
This attribute identifies the finishing operations that the Printer uses This attribute identifies the finishing operations that the Printer uses
for each copy of each printed document in the Job. For Jobs with for each copy of each printed document in the Job. For Jobs with
multiple documents, the "multiple-document-handling" attribute multiple documents, the "multiple-document-handling" attribute
determines what constitutes a "copy" for purposes of finishing. determines what constitutes a "copy" for purposes of finishing.
Expires December 11, 1999 Expires December 23, 1999
Standard enum values are: Standard enum values are:
Value Symbolic Name and Description Value Symbolic Name and Description
'3' 'none': Perform no finishing '3' 'none': Perform no finishing
'4' 'staple': Bind the document(s) with one or more staples. The '4' 'staple': Bind the document(s) with one or more staples. The
exact number and placement of the staples is site- exact number and placement of the staples is site-
defined. defined.
'5' 'punch': This value indicates that holes are required in the '5' 'punch': This value indicates that holes are required in the
skipping to change at page 87, line 5 skipping to change at page 87, line 5
and/or site-defined. and/or site-defined.
'25' 'edge-stitch-top': Bind the document(s) with one or more '25' 'edge-stitch-top': Bind the document(s) with one or more
staples (wire stitches) along the top edge. The exact staples (wire stitches) along the top edge. The exact
number and placement of the staples is implementation number and placement of the staples is implementation
and/or site-defined. and/or site-defined.
'26' 'edge-stitch-right': Bind the document(s) with one or more '26' 'edge-stitch-right': Bind the document(s) with one or more
staples (wire stitches) along the right edge. The exact staples (wire stitches) along the right edge. The exact
number and placement of the staples is implementation number and placement of the staples is implementation
and/or site-defined. and/or site-defined.
Expires December 11, 1999 Expires December 23, 1999
'27' 'edge-stitch-bottom': Bind the document(s) with one or more '27' 'edge-stitch-bottom': Bind the document(s) with one or more
staples (wire stitches) along the bottom edge. The exact staples (wire stitches) along the bottom edge. The exact
number and placement of the staples is implementation number and placement of the staples is implementation
and/or site-defined. and/or site-defined.
'28' 'staple-dual-left': Bind the document(s) with two staples '28' 'staple-dual-left': Bind the document(s) with two staples
(wire stitches) along the left edge assuming a portrait (wire stitches) along the left edge assuming a portrait
document (see above). document (see above).
'29' 'staple-dual-top': Bind the document(s) with two staples '29' 'staple-dual-top': Bind the document(s) with two staples
(wire stitches) along the top edge assuming a portrait (wire stitches) along the top edge assuming a portrait
document (see above). document (see above).
skipping to change at page 88, line 5 skipping to change at page 88, line 5
This attribute identifies the range(s) of print-stream pages that the This attribute identifies the range(s) of print-stream pages that the
Printer object uses for each copy of each document which are to be Printer object uses for each copy of each document which are to be
printed. Nothing is printed for any pages identified that do not exist printed. Nothing is printed for any pages identified that do not exist
in the document(s). Ranges MUST be in ascending order, for example: 1- in the document(s). Ranges MUST be in ascending order, for example: 1-
3, 5-7, 15-19 and MUST NOT overlap, so that a non-spooling Printer 3, 5-7, 15-19 and MUST NOT overlap, so that a non-spooling Printer
object can process the job in a single pass. If the ranges are not object can process the job in a single pass. If the ranges are not
ascending or are overlapping, the IPP object MUST reject the request and ascending or are overlapping, the IPP object MUST reject the request and
return the 'client-error-bad-request' status code. The attribute is return the 'client-error-bad-request' status code. The attribute is
associated with print-stream pages not application-numbered pages (for associated with print-stream pages not application-numbered pages (for
Expires December 11, 1999 Expires December 23, 1999
example, the page numbers found in the headers and or footers for example, the page numbers found in the headers and or footers for
certain word processing applications). certain word processing applications).
For Jobs with multiple documents, the "multiple-document-handling" For Jobs with multiple documents, the "multiple-document-handling"
attribute determines what constitutes a "copy" for purposes of the attribute determines what constitutes a "copy" for purposes of the
specified page range(s). When "multiple-document-handling" is 'single- specified page range(s). When "multiple-document-handling" is 'single-
document', the Printer object MUST apply each supplied page range once document', the Printer object MUST apply each supplied page range once
to the concatenation of the print-stream pages. For example, if there to the concatenation of the print-stream pages. For example, if there
are 8 documents of 10 pages each, the page-range '41:60' prints the are 8 documents of 10 pages each, the page-range '41:60' prints the
skipping to change at page 89, line 5 skipping to change at page 89, line 5
'two-sided-long-edge': imposes each consecutive pair of print-stream 'two-sided-long-edge': imposes each consecutive pair of print-stream
pages upon front and back sides of consecutive media sheets, such pages upon front and back sides of consecutive media sheets, such
that the orientation of each pair of print-stream pages on the that the orientation of each pair of print-stream pages on the
medium would be correct for the reader as if for binding on the medium would be correct for the reader as if for binding on the
long edge. This imposition is sometimes called 'duplex' or 'head- long edge. This imposition is sometimes called 'duplex' or 'head-
to-head'. to-head'.
'two-sided-short-edge': imposes each consecutive pair of print-stream 'two-sided-short-edge': imposes each consecutive pair of print-stream
pages upon front and back sides of consecutive media sheets, such pages upon front and back sides of consecutive media sheets, such
that the orientation of each pair of print-stream pages on the that the orientation of each pair of print-stream pages on the
Expires December 11, 1999 Expires December 23, 1999
medium would be correct for the reader as if for binding on the medium would be correct for the reader as if for binding on the
short edge. This imposition is sometimes called 'tumble' or 'head- short edge. This imposition is sometimes called 'tumble' or 'head-
to-toe'. to-toe'.
'two-sided-long-edge', 'two-sided-short-edge', 'tumble', and 'duplex' 'two-sided-long-edge', 'two-sided-short-edge', 'tumble', and 'duplex'
all work the same for portrait or landscape. However 'head-to-toe' is all work the same for portrait or landscape. However 'head-to-toe' is
'tumble' in portrait but 'duplex' in landscape. 'head-to-head' also 'tumble' in portrait but 'duplex' in landscape. 'head-to-head' also
switches between 'duplex' and 'tumble' when using portrait and landscape switches between 'duplex' and 'tumble' when using portrait and landscape
modes. modes.
skipping to change at page 90, line 5 skipping to change at page 90, line 5
This attribute indicates the desired orientation for printed print- This attribute indicates the desired orientation for printed print-
stream pages; it does not describe the orientation of the client- stream pages; it does not describe the orientation of the client-
supplied print-stream pages. supplied print-stream pages.
For some document formats (such as 'application/postscript'), the For some document formats (such as 'application/postscript'), the
desired orientation of the print-stream pages is specified within the desired orientation of the print-stream pages is specified within the
document data. This information is generated by a device driver prior document data. This information is generated by a device driver prior
to the submission of the print job. Other document formats (such as to the submission of the print job. Other document formats (such as
'text/plain') do not include the notion of desired orientation within 'text/plain') do not include the notion of desired orientation within
Expires December 11, 1999 Expires December 23, 1999
the document data. In the latter case it is possible for the Printer the document data. In the latter case it is possible for the Printer
object to bind the desired orientation to the document data after it has object to bind the desired orientation to the document data after it has
been submitted. It is expected that a Printer object would only support been submitted. It is expected that a Printer object would only support
"orientations-requested" for some document formats (e.g., 'text/plain' "orientations-requested" for some document formats (e.g., 'text/plain'
or 'text/html') but not others (e.g., 'application/postscript'). This or 'text/html') but not others (e.g., 'application/postscript'). This
is no different than any other Job Template attribute since section 4.2, is no different than any other Job Template attribute since section 4.2,
item 1, points out that a Printer object may support or not support any item 1, points out that a Printer object may support or not support any
Job Template attribute based on the document format supplied by the Job Template attribute based on the document format supplied by the
client. However, a special mention is made here since it is very likely client. However, a special mention is made here since it is very likely
skipping to change at page 91, line 5 skipping to change at page 91, line 5
only one finishing position. Thus a 'text'/plain' only one finishing position. Thus a 'text'/plain'
portrait document can be stapled "on the right" by a portrait document can be stapled "on the right" by a
simple finishing device as is common use with some middle simple finishing device as is common use with some middle
eastern languages such as Hebrew. eastern languages such as Hebrew.
Note: The effect of this attribute on jobs with multiple documents is Note: The effect of this attribute on jobs with multiple documents is
controlled by the "multiple-document-handling" job attribute (section controlled by the "multiple-document-handling" job attribute (section
4.2.4) and the relationship of this attribute and the other attributes 4.2.4) and the relationship of this attribute and the other attributes
that control document processing is described in section 15.3. that control document processing is described in section 15.3.
Expires December 11, 1999 Expires December 23, 1999
4.2.11 media (type3 keyword | name(MAX)) 4.2.11 media (type3 keyword | name(MAX))
This attribute identifies the medium that the Printer uses for all This attribute identifies the medium that the Printer uses for all
impressions of the Job. impressions of the Job.
The values for "media" include medium-names, medium-sizes, input-trays The values for "media" include medium-names, medium-sizes, input-trays
and electronic forms so that one attribute specifies the media. If a and electronic forms so that one attribute specifies the media. If a
Printer object supports a medium name as a value of this attribute, such Printer object supports a medium name as a value of this attribute, such
a medium name implicitly selects an input-tray that contains the a medium name implicitly selects an input-tray that contains the
skipping to change at page 92, line 5 skipping to change at page 92, line 5
Job. Job.
The standard enum values are: The standard enum values are:
Value Symbolic Name and Description Value Symbolic Name and Description
'3' 'draft': lowest quality available on the printer '3' 'draft': lowest quality available on the printer
'4' 'normal': normal or intermediate quality on the printer '4' 'normal': normal or intermediate quality on the printer
'5' 'high': highest quality available on the printer '5' 'high': highest quality available on the printer
Expires December 11, 1999 Expires December 23, 1999
4.3 Job Description Attributes 4.3 Job Description Attributes
The attributes in this section form the attribute group called "job- The attributes in this section form the attribute group called "job-
description". The following table summarizes these attributes. The description". The following table summarizes these attributes. The
third column indicates whether the attribute is a REQUIRED attribute third column indicates whether the attribute is a REQUIRED attribute
that MUST be supported by Printer objects. If it is not indicated as that MUST be supported by Printer objects. If it is not indicated as
REQUIRED, then it is OPTIONAL. The maximum size in octets for 'text' REQUIRED, then it is OPTIONAL. The maximum size in octets for 'text'
and 'name' attributes is indicated in parenthesizes. and 'name' attributes is indicated in parenthesizes.
Expires December 11, 1999 Expires December 23, 1999
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| Attribute | Syntax | REQUIRED? | | Attribute | Syntax | REQUIRED? |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| job-uri | uri | REQUIRED | | job-uri | uri | REQUIRED |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| job-id | integer(1:MAX) | REQUIRED | | job-id | integer(1:MAX) | REQUIRED |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| job-printer-uri | uri | REQUIRED | | job-printer-uri | uri | REQUIRED |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
skipping to change at page 94, line 5 skipping to change at page 94, line 5
| job-impressions | integer (0:MAX) | | | job-impressions | integer (0:MAX) | |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| job-media-sheets | integer (0:MAX) | | | job-media-sheets | integer (0:MAX) | |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| job-k-octets-processed | integer (0:MAX) | | | job-k-octets-processed | integer (0:MAX) | |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| job-impressions-completed | integer (0:MAX) | | | job-impressions-completed | integer (0:MAX) | |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| job-media-sheets-completed | integer (0:MAX) | | | job-media-sheets-completed | integer (0:MAX) | |
Expires December 11, 1999 Expires December 23, 1999
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| attributes-charset | charset | REQUIRED | | attributes-charset | charset | REQUIRED |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
| attributes-natural-language| naturalLanguage | REQUIRED | | attributes-natural-language| naturalLanguage | REQUIRED |
+----------------------------+----------------------+----------------+ +----------------------------+----------------------+----------------+
4.3.1 job-uri (uri) 4.3.1 job-uri (uri)
This REQUIRED attribute contains the URI for the job. The Printer This REQUIRED attribute contains the URI for the job. The Printer
skipping to change at page 95, line 5 skipping to change at page 95, line 5
This REQUIRED attribute identifies the Printer object that created this This REQUIRED attribute identifies the Printer object that created this
Job object. When a Printer object creates a Job object, it populates Job object. When a Printer object creates a Job object, it populates
this attribute with the Printer object URI that was used in the create this attribute with the Printer object URI that was used in the create
request. This attribute permits a client to identify the Printer object request. This attribute permits a client to identify the Printer object
that created this Job object when only the Job object's URI is available that created this Job object when only the Job object's URI is available
to the client. The client queries the creating Printer object to to the client. The client queries the creating Printer object to
determine which languages, charsets, operations, are supported for this determine which languages, charsets, operations, are supported for this
Job. Job.
Expires December 11, 1999 Expires December 23, 1999
For a description of this attribute and its relationship to "job-uri" For a description of this attribute and its relationship to "job-uri"
and "job-id" attribute, see the discussion in section 2.4 on "Object and "job-id" attribute, see the discussion in section 2.4 on "Object
Identity". Identity".
4.3.4 job-more-info (uri) 4.3.4 job-more-info (uri)
Similar to "printer-more-info", this attribute contains the URI Similar to "printer-more-info", this attribute contains the URI
referencing some resource with more information about this Job object, referencing some resource with more information about this Job object,
perhaps an HTML page containing information about the Job. perhaps an HTML page containing information about the Job.
skipping to change at page 96, line 5 skipping to change at page 96, line 5
4.3.7 job-state (type1 enum) 4.3.7 job-state (type1 enum)
This REQUIRED attribute identifies the current state of the job. Even This REQUIRED attribute identifies the current state of the job. Even
though the IPP protocol defines seven values for job states (plus the though the IPP protocol defines seven values for job states (plus the
out-of-band 'unknown' value - see Section 4.1), implementations only out-of-band 'unknown' value - see Section 4.1), implementations only
need to support those states which are appropriate for the particular need to support those states which are appropriate for the particular
implementation. In other words, a Printer supports only those job implementation. In other words, a Printer supports only those job
states implemented by the output device and available to the Printer states implemented by the output device and available to the Printer
object implementation. object implementation.
Expires December 11, 1999 Expires December 23, 1999
Standard enum values are: Standard enum values are:
Values Symbolic Name and Description Values Symbolic Name and Description
'3' 'pending': The job is a candidate to start processing, but is '3' 'pending': The job is a candidate to start processing, but is
not yet processing. not yet processing.
'4' 'pending-held': The job is not a candidate for processing for '4' 'pending-held': The job is not a candidate for processing for
any number of reasons but will return to the 'pending' any number of reasons but will return to the 'pending'
skipping to change at page 97, line 5 skipping to change at page 97, line 5
'6' 'processing-stopped': The job has stopped while processing '6' 'processing-stopped': The job has stopped while processing
for any number of reasons and will return to the for any number of reasons and will return to the
'processing' state as soon as the reasons are no longer 'processing' state as soon as the reasons are no longer
present. present.
The job's "job-state-reason" attribute MAY indicate why The job's "job-state-reason" attribute MAY indicate why
the job has stopped processing. For example, if the the job has stopped processing. For example, if the
output device is stopped, the 'printer-stopped' value MAY output device is stopped, the 'printer-stopped' value MAY
be included in the job's "job-state-reasons" attribute. be included in the job's "job-state-reasons" attribute.
Expires December 11, 1999 Expires December 23, 1999
Note: When an output device is stopped, the device Note: When an output device is stopped, the device
usually indicates its condition in human readable form usually indicates its condition in human readable form
locally at the device. A client can obtain more complete locally at the device. A client can obtain more complete
device status remotely by querying the Printer object's device status remotely by querying the Printer object's
"printer-state", "printer-state-reasons" and "printer- "printer-state", "printer-state-reasons" and "printer-
state-message" attributes. state-message" attributes.
'7' 'canceled': The job has been canceled by a Cancel-Job '7' 'canceled': The job has been canceled by a Cancel-Job
operation and the Printer object has completed canceling operation and the Printer object has completed canceling
the job and all job status attributes have reached their the job and all job status attributes have reached their
skipping to change at page 98, line 5 skipping to change at page 98, line 5
'completed-successfully', 'completed-with-warnings', or 'completed-successfully', 'completed-with-warnings', or
'completed-with-errors' values. 'completed-with-errors' values.
The final value for this attribute MUST be one of: 'completed', The final value for this attribute MUST be one of: 'completed',
'canceled', or 'aborted' before the Printer removes the job altogether. 'canceled', or 'aborted' before the Printer removes the job altogether.
The length of time that jobs remain in the 'canceled', 'aborted', and The length of time that jobs remain in the 'canceled', 'aborted', and
'completed' states depends on implementation. See section 4.3.7.2. 'completed' states depends on implementation. See section 4.3.7.2.
The following figure shows the normal job state transitions. The following figure shows the normal job state transitions.
Expires December 11, 1999 Expires December 23, 1999
+----> canceled +----> canceled
/ /
+----> pending --------> processing ---------+------> completed +----> pending --------> processing ---------+------> completed
| ^ ^ \ | ^ ^ \
--->+ | | +----> aborted --->+ | | +----> aborted
| v v / | v v /
+----> pending-held processing-stopped ---+ +----> pending-held processing-stopped ---+
Normally a job progresses from left to right. Other state transitions Normally a job progresses from left to right. Other state transitions
are unlikely, but are not forbidden. Not shown are the transitions to are unlikely, but are not forbidden. Not shown are the transitions to
skipping to change at page 99, line 5 skipping to change at page 99, line 5
Job Retention: When a job enters one of the three terminal job states: Job Retention: When a job enters one of the three terminal job states:
'completed', 'canceled', or 'aborted', the IPP Printer object MAY 'completed', 'canceled', or 'aborted', the IPP Printer object MAY
"retain" the job in a restartable condition for an implementation- "retain" the job in a restartable condition for an implementation-
defined time period. This time period MAY be zero seconds and MAY defined time period. This time period MAY be zero seconds and MAY
depend on the terminal job state. This phase is called Job Retention. depend on the terminal job state. This phase is called Job Retention.
While in the Job Retention phase, the job's document data is retained While in the Job Retention phase, the job's document data is retained
and a client may restart the job using the Restart-Job operation. If and a client may restart the job using the Restart-Job operation. If
the IPP object supports the Restart-Job operation, then it SHOULD the IPP object supports the Restart-Job operation, then it SHOULD
indicate that the job is restartable by adding the 'job-restartable' indicate that the job is restartable by adding the 'job-restartable'
Expires December 11, 1999 Expires December 23, 1999
value to the job's "job-state-reasons" attribute (see Section 4.3.8) value to the job's "job-state-reasons" attribute (see Section 4.3.8)
during the Job Retention phase. during the Job Retention phase.
Job History: After the Job Retention phase expires for a job, the Job History: After the Job Retention phase expires for a job, the
Printer object deletes the document data for the job and the job becomes Printer object deletes the document data for the job and the job becomes
part of the Job History. The Printer object MAY also delete any number part of the Job History. The Printer object MAY also delete any number
of the job attributes. Since the job is no longer restartable, the of the job attributes. Since the job is no longer restartable, the
Printer object MUST remove the 'job-restartable' value from the job's Printer object MUST remove the 'job-restartable' value from the job's
"job-state-reasons" attribute, if present. "job-state-reasons" attribute, if present.
skipping to change at page 100, line 5 skipping to change at page 100, line 5
extensible. extensible.
The following standard keyword values are defined. For ease of The following standard keyword values are defined. For ease of
understanding, the values are presented in the order in which the understanding, the values are presented in the order in which the
reasons are likely to occur (if implemented), starting with the 'job- reasons are likely to occur (if implemented), starting with the 'job-
incoming' value: incoming' value:
'none': There are no reasons for the job's current state. This 'none': There are no reasons for the job's current state. This
state reason is semantically equivalent to "job-state-reasons" state reason is semantically equivalent to "job-state-reasons"
Expires December 11, 1999 Expires December 23, 1999
without any value and MUST be used when there is no other value, without any value and MUST be used when there is no other value,
since the 1setOf attribute syntax requires at least one value. since the 1setOf attribute syntax requires at least one value.
'job-incoming': The Create-Job operation has been accepted by the 'job-incoming': The Create-Job operation has been accepted by the
Printer, but the Printer is expecting additional Send-Document Printer, but the Printer is expecting additional Send-Document
and/or Send-URI operations and/or is accessing/accepting document and/or Send-URI operations and/or is accessing/accepting document
data. data.
'job-data-insufficient': The Create-Job operation has been accepted 'job-data-insufficient': The Create-Job operation has been accepted
by the Printer, but the Printer is expecting additional document by the Printer, but the Printer is expecting additional document
data before it can move the job into the 'processing' state. If a data before it can move the job into the 'processing' state. If a
Printer starts processing before it has received all data, the Printer starts processing before it has received all data, the
skipping to change at page 101, line 5 skipping to change at page 101, line 5
This condition MAY be detected when the job is accepted, or This condition MAY be detected when the job is accepted, or
subsequently while the job is pending or processing, depending on subsequently while the job is pending or processing, depending on
implementation. The job may remain in its current state or be implementation. The job may remain in its current state or be
moved to the 'pending-held' state, depending on implementation moved to the 'pending-held' state, depending on implementation
and/or job scheduling policy. and/or job scheduling policy.
'printer-stopped-partly': The value of the Printer's "printer-state- 'printer-stopped-partly': The value of the Printer's "printer-state-
reasons" attribute contains the value 'stopped-partly'. reasons" attribute contains the value 'stopped-partly'.
'printer-stopped': The value of the Printer's "printer-state" 'printer-stopped': The value of the Printer's "printer-state"
attribute is 'stopped'. attribute is 'stopped'.
Expires December 11, 1999 Expires December 23, 1999
'job-interpreting': Job is in the 'processing' state, but more 'job-interpreting': Job is in the 'processing' state, but more
specifically, the Printer is interpreting the document data. specifically, the Printer is interpreting the document data.
'job-queued': Job is in the 'processing' state, but more 'job-queued': Job is in the 'processing' state, but more
specifically, the Printer has queued the document data. specifically, the Printer has queued the document data.
'job-transforming': Job is in the 'processing' state, but more 'job-transforming': Job is in the 'processing' state, but more
specifically, the Printer is interpreting document data and specifically, the Printer is interpreting document data and
producing another electronic representation. producing another electronic representation.
'job-queued-for-marker': Job is in any of the 'pending-held', 'job-queued-for-marker': Job is in any of the 'pending-held',
'pending', or 'processing' states, but more specifically, the 'pending', or 'processing' states, but more specifically, the
Printer has completed enough processing of the document to be able Printer has completed enough processing of the document to be able
skipping to change at page 102, line 5 skipping to change at page 102, line 5
(2) has been aborted by the system and placed in the 'aborted' (2) has been aborted by the system and placed in the 'aborted'
state, or (3) has been aborted by the system and placed in the state, or (3) has been aborted by the system and placed in the
'pending-held' state, so that a user or operator can manually try 'pending-held' state, so that a user or operator can manually try
the job again. This value SHOULD be supported. the job again. This value SHOULD be supported.
'unsupported-compression': The job was aborted by the system because 'unsupported-compression': The job was aborted by the system because
the Printer determined while attempting to decompress the document- the Printer determined while attempting to decompress the document-
data's that the compression is actually not among those supported data's that the compression is actually not among those supported
by the Printer. This value MUST be supported, since "compressions by the Printer. This value MUST be supported, since "compressions
is a REQUIRED operation attribute. is a REQUIRED operation attribute.
Expires December 11, 1999 Expires December 23, 1999
'compression-error': The job was aborted by the system because the 'compression-error': The job was aborted by the system because the
Printer encountered an error in the document-data while Printer encountered an error in the document-data while
decompressing it. If the Printer posts this reason, the document- decompressing it. If the Printer posts this reason, the document-
data has already passed any tests that would have led to the data has already passed any tests that would have led to the
'unsupported-compression' job-state-reason. 'unsupported-compression' job-state-reason.
'unsupported-document-format': The job was aborted by the system 'unsupported-document-format': The job was aborted by the system
because the document-data's document-format is not among those because the document-data's document-format is not among those
supported by the Printer. If the client specifies the document- supported by the Printer. If the client specifies the document-
format as 'application/octet-stream', the printer MAY abort the job format as 'application/octet-stream', the printer MAY abort the job
and post this reason even though the format is a member of the and post this reason even though the format is a member of the
skipping to change at page 103, line 5 skipping to change at page 103, line 5
section 3.3.7). If 'job-restartable' is a value of the job's 'job- section 3.3.7). If 'job-restartable' is a value of the job's 'job-
state-reasons' attribute, then the IPP object MUST accept a state-reasons' attribute, then the IPP object MUST accept a
Restart-Job operation for that job. This value SHOULD be supported Restart-Job operation for that job. This value SHOULD be supported
if the Restart-Job operation is supported. if the Restart-Job operation is supported.
'queued-in-device': The job has been forwarded to a device or print 'queued-in-device': The job has been forwarded to a device or print
system that is unable to send back status. The Printer sets the system that is unable to send back status. The Printer sets the
job's "job-state " attribute to 'completed' and adds the 'queued- job's "job-state " attribute to 'completed' and adds the 'queued-
in-device' value to the job's "job-state-reasons" attribute to in-device' value to the job's "job-state-reasons" attribute to
indicate that the Printer has no additional information about the indicate that the Printer has no additional information about the
Expires December 11, 1999 Expires December 23, 1999
job and never will have any better information. See section job and never will have any better information. See section
4.3.7.1. 4.3.7.1.
4.3.9 job-state-message (text(MAX)) 4.3.9 job-state-message (text(MAX))
This attribute specifies information about the "job-state" and "job- This attribute specifies information about the "job-state" and "job-
state-reasons" attributes in human readable text. If the Printer object state-reasons" attributes in human readable text. If the Printer object
supports this attribute, the Printer object MUST be able to generate supports this attribute, the Printer object MUST be able to generate
this message in any of the natural languages identified by the Printer's this message in any of the natural languages identified by the Printer's
"generated-natural-language-supported" attribute (see the "attributes- "generated-natural-language-supported" attribute (see the "attributes-
skipping to change at page 104, line 5 skipping to change at page 104, line 5
Most Internet protocols use decimal error codes (unlike IPP), so the Most Internet protocols use decimal error codes (unlike IPP), so the
ASCII error code representation is in decimal. ASCII error code representation is in decimal.
4.3.12 number-of-documents (integer(0:MAX)) 4.3.12 number-of-documents (integer(0:MAX))
This attribute indicates the number of documents in the job, i.e., the This attribute indicates the number of documents in the job, i.e., the
number of Send-Document, Send-URI, Print-Job, or Print-URI operations number of Send-Document, Send-URI, Print-Job, or Print-URI operations
that the Printer has accepted for this job, regardless of whether the that the Printer has accepted for this job, regardless of whether the
document data has reached the Printer object or not. document data has reached the Printer object or not.
Expires December 11, 1999 Expires December 23, 1999
Implementations supporting the OPTIONAL Create-Job/Send-Document/Send- Implementations supporting the OPTIONAL Create-Job/Send-Document/Send-
URI operations SHOULD support this attribute so that clients can query URI operations SHOULD support this attribute so that clients can query
the number of documents in each job. the number of documents in each job.
4.3.13 output-device-assigned (name(127)) 4.3.13 output-device-assigned (name(127))
This attribute identifies the output device to which the Printer object This attribute identifies the output device to which the Printer object
has assigned this job. If an output device implements an embedded has assigned this job. If an output device implements an embedded
Printer object, the Printer object NEED NOT set this attribute. If a Printer object, the Printer object NEED NOT set this attribute. If a
skipping to change at page 105, line 5 skipping to change at page 105, line 5
up that the event took place, though the negative number NEED NOT up that the event took place, though the negative number NEED NOT
reflect the exact number of seconds. reflect the exact number of seconds.
If a client queries a "time-at-xxx(integer)" time tick Job attribute and If a client queries a "time-at-xxx(integer)" time tick Job attribute and
finds the value to be 0 or negative, the client MUST assume that the finds the value to be 0 or negative, the client MUST assume that the
event occurred in some life other than the Printer's current life. event occurred in some life other than the Printer's current life.
Note: A Printer does not change the values of any "date-time-at- Note: A Printer does not change the values of any "date-time-at-
xxx(dateTime)" job attributes on power-up. xxx(dateTime)" job attributes on power-up.
Expires December 11, 1999 Expires December 23, 1999
4.3.14.1 time-at-creation (integer(MIN:MAX)) 4.3.14.1 time-at-creation (integer(MIN:MAX))
This REQUIRED attribute indicates the time at which the Job object was This REQUIRED attribute indicates the time at which the Job object was
created. created.
4.3.14.2 time-at-processing (integer(MIN:MAX)) 4.3.14.2 time-at-processing (integer(MIN:MAX))
This REQUIRED attribute indicates the time at which the Job object first This REQUIRED attribute indicates the time at which the Job object first
began processing after the create operation or the most recent Restart- began processing after the create operation or the most recent Restart-
skipping to change at page 106, line 5 skipping to change at page 106, line 5
This attribute indicates the date and time at which the Job object first This attribute indicates the date and time at which the Job object first
began processing after the create operation or the most recent Restart- began processing after the create operation or the most recent Restart-
Job operation. Job operation.
4.3.14.7 date-time-at-completed (dateTime) 4.3.14.7 date-time-at-completed (dateTime)
This attribute indicates the date and time at which the Job object This attribute indicates the date and time at which the Job object
completed (or was cancelled or aborted). completed (or was cancelled or aborted).
Expires December 11, 1999 Expires December 23, 1999
4.3.15 number-of-intervening-jobs (integer(0:MAX)) 4.3.15 number-of-intervening-jobs (integer(0:MAX))
This attribute indicates the number of jobs that are "ahead" of this job This attribute indicates the number of jobs that are "ahead" of this job
in the relative chronological order of expected time to complete (i.e., in the relative chronological order of expected time to complete (i.e.,
the current scheduled order). For efficiency, it is only necessary to the current scheduled order). For efficiency, it is only necessary to
calculate this value when an operation is performed that requests this calculate this value when an operation is performed that requests this
attribute. attribute.
4.3.16 job-message-from-operator (text(127)) 4.3.16 job-message-from-operator (text(127))
skipping to change at page 107, line 5 skipping to change at page 107, line 5
implementation and indicates the size of the document(s) measured in K implementation and indicates the size of the document(s) measured in K
octets independent of the number of copies. octets independent of the number of copies.
This value MUST also not include the multiplicative factor due to a This value MUST also not include the multiplicative factor due to a
copies instruction embedded in the document data. If the document data copies instruction embedded in the document data. If the document data
actually includes replications of the document data, this value will actually includes replications of the document data, this value will
include such replication. In other words, this value is always the size include such replication. In other words, this value is always the size
of the source document data, rather than a measure of the hardcopy of the source document data, rather than a measure of the hardcopy
output to be produced. output to be produced.
Expires December 11, 1999 Expires December 23, 1999
4.3.17.2 job-impressions (integer(0:MAX)) 4.3.17.2 job-impressions (integer(0:MAX))
This attribute specifies the total size in number of impressions of the This attribute specifies the total size in number of impressions of the
document(s) being submitted (see the definition of impression in section document(s) being submitted (see the definition of impression in section
12.2.5). 12.2.5).
As with "job-k-octets", this value MUST NOT include the multiplicative As with "job-k-octets", this value MUST NOT include the multiplicative
factors contributed by the number of copies specified by the "copies" factors contributed by the number of copies specified by the "copies"
attribute, independent of whether the device can process multiple copies attribute, independent of whether the device can process multiple copies
skipping to change at page 108, line 5 skipping to change at page 108, line 5
intended to contain the amount of the job that has been processed to the intended to contain the amount of the job that has been processed to the
time at which the attributes are requested. When the job enters the time at which the attributes are requested. When the job enters the
'completed', 'canceled', or 'aborted' states, these values are the final 'completed', 'canceled', or 'aborted' states, these values are the final
values for the job. values for the job.
4.3.18.1 job-k-octets-processed (integer(0:MAX)) 4.3.18.1 job-k-octets-processed (integer(0:MAX))
This attribute specifies the total number of octets processed in K This attribute specifies the total number of octets processed in K
octets, i.e., in units of 1024 octets so far. The value MUST be rounded octets, i.e., in units of 1024 octets so far. The value MUST be rounded
Expires December 11, 1999 Expires December 23, 1999
up, so that a job between 1 and 1024 octets inclusive MUST be indicated up, so that a job between 1 and 1024 octets inclusive MUST be indicated
as being 1, 1025 to 2048 inclusive MUST be 2, etc. as being 1, 1025 to 2048 inclusive MUST be 2, etc.
For implementations where multiple copies are produced by the For implementations where multiple copies are produced by the
interpreter with only a single pass over the data, the final value MUST interpreter with only a single pass over the data, the final value MUST
be equal to the value of the "job-k-octets" attribute. For be equal to the value of the "job-k-octets" attribute. For
implementations where multiple copies are produced by the interpreter by implementations where multiple copies are produced by the interpreter by
processing the data for each copy, the final value MUST be a multiple of processing the data for each copy, the final value MUST be a multiple of
the value of the "job-k-octets" attribute. the value of the "job-k-octets" attribute.
skipping to change at page 109, line 5 skipping to change at page 109, line 5
This REQUIRED attribute is populated using the value in the client This REQUIRED attribute is populated using the value in the client
supplied "attributes-natural-language" attribute in the create request. supplied "attributes-natural-language" attribute in the create request.
It identifies the natural language used for any Job attributes with It identifies the natural language used for any Job attributes with
attribute syntax 'text' and 'name' that were supplied by the client in attribute syntax 'text' and 'name' that were supplied by the client in
the create request. See Section 3.1.4 for a complete description of the the create request. See Section 3.1.4 for a complete description of the
"attributes-natural-language" operation attribute. See Sections 4.1.1.2 "attributes-natural-language" operation attribute. See Sections 4.1.1.2
and 4.1.2.2 for how a Natural Language Override may be supplied and 4.1.2.2 for how a Natural Language Override may be supplied
explicitly for each 'text' and 'name' attribute value that differs from explicitly for each 'text' and 'name' attribute value that differs from
the value identified by the "attributes-natural-language" attribute. the value identified by the "attributes-natural-language" attribute.
Expires December 11, 1999 Expires December 23, 1999
4.4 Printer Description Attributes 4.4 Printer Description Attributes
These attributes form the attribute group called "printer-description". These attributes form the attribute group called "printer-description".
The following table summarizes these attributes, their syntax, and The following table summarizes these attributes, their syntax, and
whether or not they are REQUIRED for a Printer object to support. If whether or not they are REQUIRED for a Printer object to support. If
they are not indicated as REQUIRED, they are OPTIONAL. The maximum size they are not indicated as REQUIRED, they are OPTIONAL. The maximum size
in octets for 'text' and 'name' attributes is indicated in in octets for 'text' and 'name' attributes is indicated in
parenthesizes. parenthesizes.
Note: How these attributes are set by an Administrator is outside the Note: How these attributes are set by an Administrator is outside the
scope of this IPP/1.1 document. scope of this IPP/1.1 document.
Expires December 11, 1999 Expires December 23, 1999
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| Attribute | Syntax | REQUIRED? | | Attribute | Syntax | REQUIRED? |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| printer-uri-supported | 1setOf uri | REQUIRED | | printer-uri-supported | 1setOf uri | REQUIRED |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| uri-security-supported | 1setOf type2 keyword | REQUIRED | | uri-security-supported | 1setOf type2 keyword | REQUIRED |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| uri-authentication- | 1setOf type2 keyword | REQUIRED | | uri-authentication- | 1setOf type2 keyword | REQUIRED |
| supported | | | | supported | | |
skipping to change at page 111, line 5 skipping to change at page 111, line 5
| supported | | | | supported | | |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| document-format-default | mimeMediaType | REQUIRED | | document-format-default | mimeMediaType | REQUIRED |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| document-format-supported | 1setOf mimeMediaType | REQUIRED | | document-format-supported | 1setOf mimeMediaType | REQUIRED |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| printer-is-accepting-jobs | boolean | REQUIRED | | printer-is-accepting-jobs | boolean | REQUIRED |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| queued-job-count | integer (0:MAX) | REQUIRED | | queued-job-count | integer (0:MAX) | REQUIRED |
Expires December 11, 1999 Expires December 23, 1999
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| printer-message-from- | text (127) | | | printer-message-from- | text (127) | |
| operator | | | | operator | | |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| color-supported | boolean | | | color-supported | boolean | |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
| reference-uri-schemes- | 1setOf uriScheme | | | reference-uri-schemes- | 1setOf uriScheme | |
| supported | | | | supported | | |
+----------------------------+---------------------------+-----------+ +----------------------------+---------------------------+-----------+
skipping to change at page 112, line 5 skipping to change at page 112, line 5
4.4.2 uri-authentication-supported (1setOf type2 keyword) 4.4.2 uri-authentication-supported (1setOf type2 keyword)
This REQUIRED Printer attribute MUST have the same cardinality (contain This REQUIRED Printer attribute MUST have the same cardinality (contain
the same number of values) as the "printer-uri-supported" attribute. the same number of values) as the "printer-uri-supported" attribute.
This attribute identifies the Client Authentication mechanism associated This attribute identifies the Client Authentication mechanism associated
with each URI listed in the "printer-uri-supported" attribute. The with each URI listed in the "printer-uri-supported" attribute. The
Printer object uses the specified mechanism to identify the Printer object uses the specified mechanism to identify the
authenticated user (see section 8.3) . The "i th" value in "uri- authenticated user (see section 8.3) . The "i th" value in "uri-
Expires December 11, 1999 Expires December 23, 1999
authentication-supported" corresponds to the "i th" value in "printer- authentication-supported" corresponds to the "i th" value in "printer-
uri-supported" and it describes the authentication mechanisms used by uri-supported" and it describes the authentication mechanisms used by
the Printer when accessed via that URI. See [IPP-PRO] for more details the Printer when accessed via that URI. See [IPP-PRO] for more details
on Client Authentication. on Client Authentication.
The following standard keyword values are defined: The following standard keyword values are defined:
'none': There is no authentication mechanism associated with the URI. 'none': There is no authentication mechanism associated with the URI.
The Printer object assumes that the authenticated user is The Printer object assumes that the authenticated user is
"anonymous". "anonymous".
'requesting-user-name': When a client performs an operation whose 'requesting-user-name': When a client performs an operation whose
target is the associated URI, the Printer object assumes that the target is the associated URI, the Printer object assumes that the
authenticated user is specified by the "requesting-user-name" authenticated user is specified by the "requesting-user-name"
Operation attribute (see section 8.3). If the "requesting-user- Operation attribute (see section 8.3). If the "requesting-user-
name" attribute is absent in a request, the Printer object assumes name" attribute is absent in a request, the Printer object assumes
that the authenticated user is "anonymous". that the authenticated user is "anonymous".
'basic': When a client performs an operation whose target is the 'basic': When a client performs an operation whose target is the
associated URI, the Printer object challenges the client with HTTP associated URI, the Printer object challenges the client with HTTP
basic authentication. The Printer object assumes that the basic authentication [RFC2617]. The Printer object assumes that the
authenticated user is the name received via the basic authenticated user is the name received via the basic
authentication mechanism. authentication mechanism.
'digest': When a client performs an operation whose target is the 'digest': When a client performs an operation whose target is the
associated URI, the Printer object challenges the client with HTTP associated URI, the Printer object challenges the client with HTTP
digest authentication. The Printer object assumes that the digest authentication [RFC2617]. The Printer object assumes that
authenticated user is the name received via the digest the authenticated user is the name received via the digest
authentication mechanism. authentication mechanism.
'certificate': When a client performs an operation whose target is 'certificate': When a client performs an operation whose target is
the associated URI, the Printer object expects the client to the associated URI, the Printer object expects the client to
provide a certificate. The Printer object assumes that the provide a certificate. The Printer object assumes that the
authenticated user is the textual name contained within the authenticated user is the textual name contained within the
certificate. certificate.
4.4.3 uri-security-supported (1setOf type2 keyword) 4.4.3 uri-security-supported (1setOf type2 keyword)
This REQUIRED Printer attribute MUST have the same cardinality (contain This REQUIRED Printer attribute MUST have the same cardinality (contain
skipping to change at page 113, line 5 skipping to change at page 113, line 5
The following standard keyword values are defined: The following standard keyword values are defined:
'none': There are no secure communication channel protocols in use 'none': There are no secure communication channel protocols in use
for the given URI. for the given URI.
'ssl3': SSL3 [SSL] is the secure communications channel protocol in 'ssl3': SSL3 [SSL] is the secure communications channel protocol in
use for the given URI. use for the given URI.
'tls': TLS [RFC2246] is the secure communications channel protocol 'tls': TLS [RFC2246] is the secure communications channel protocol
in use for the given URI. in use for the given URI.
Expires December 11, 1999 Expires December 23, 1999
This attribute is orthogonal to the definition of a Client This attribute is orthogonal to the definition of a Client
Authentication mechanism. Specifically, 'none' does not exclude Client Authentication mechanism. Specifically, 'none' does not exclude Client
Authentication. See section 4.4.2. Authentication. See section 4.4.2.
Consider the following example. For a single Printer object, an Consider the following example. For a single Printer object, an
administrator configures the "printer-uri-supported", "uri- administrator configures the "printer-uri-supported", "uri-
authentication-supported" and "uri-security-supported" attributes as authentication-supported" and "uri-security-supported" attributes as
follows: follows:
skipping to change at page 114, line 5 skipping to change at page 114, line 5
that the Printer will issue a challenge and that the Printer will that the Printer will issue a challenge and that the Printer will
use the name supplied by the digest mechanism to determine the use the name supplied by the digest mechanism to determine the
authenticated user (see section 8.3) . Because this challenge authenticated user (see section 8.3) . Because this challenge
occurs in a tls session, the channel is secure. occurs in a tls session, the channel is secure.
It is expected that many IPP Printer objects will be configured to It is expected that many IPP Printer objects will be configured to
support only one channel (either configured to use TLS access or not) support only one channel (either configured to use TLS access or not)
and only one authentication mechanism. Such Printer objects only have and only one authentication mechanism. Such Printer objects only have
one URI listed in the "printer-uri-supported" attribute. No matter the one URI listed in the "printer-uri-supported" attribute. No matter the
Expires December 11, 1999 Expires December 23, 1999
configuration of the Printer object (whether it has only one URI or more configuration of the Printer object (whether it has only one URI or more
than one URI), a client MUST supply only one URI in the target "printer- than one URI), a client MUST supply only one URI in the target "printer-
uri" operation attribute. uri" operation attribute.
4.4.4 printer-name (name(127)) 4.4.4 printer-name (name(127))
This REQUIRED Printer attribute contains the name of the Printer object. This REQUIRED Printer attribute contains the name of the Printer object.
It is a name that is more end-user friendly than a URI. An administrator It is a name that is more end-user friendly than a URI. An administrator
determines a printer's name and sets this attribute to that name. This determines a printer's name and sets this attribute to that name. This
skipping to change at page 115, line 5 skipping to change at page 115, line 5
installer for this Printer object. This attribute is intended for installer for this Printer object. This attribute is intended for
consumption by automata. The mechanics of print driver installation is consumption by automata. The mechanics of print driver installation is
outside the scope of this IPP/1.1 document. The device manufacturer may outside the scope of this IPP/1.1 document. The device manufacturer may
initially populate this attribute. initially populate this attribute.
4.4.9 printer-make-and-model (text(127)) 4.4.9 printer-make-and-model (text(127))
This Printer attribute identifies the make and model of the device. The This Printer attribute identifies the make and model of the device. The
device manufacturer may initially populate this attribute. device manufacturer may initially populate this attribute.
Expires December 11, 1999 Expires December 23, 1999
4.4.10 printer-more-info-manufacturer (uri) 4.4.10 printer-more-info-manufacturer (uri)
This Printer attribute contains a URI used to obtain more information This Printer attribute contains a URI used to obtain more information
about this type of device. The information obtained from this URI is about this type of device. The information obtained from this URI is
intended for end user consumption. Features outside the scope of IPP intended for end user consumption. Features outside the scope of IPP
can be accessed from this URI (e.g., latest firmware, upgrades, print can be accessed from this URI (e.g., latest firmware, upgrades, print
drivers, optional features available, details on color support). The drivers, optional features available, details on color support). The
information is intended to be germane to this printer without regard to information is intended to be germane to this printer without regard to
site specific modifications or services. The device manufacturer may site specific modifications or services. The device manufacturer may
skipping to change at page 116, line 5 skipping to change at page 116, line 5
Each keyword value MAY have a suffix to indicate its level of severity. Each keyword value MAY have a suffix to indicate its level of severity.
The three levels are: report (least severe), warning, and error (most The three levels are: report (least severe), warning, and error (most
severe). severe).
- '-report': This suffix indicates that the reason is a "report". An - '-report': This suffix indicates that the reason is a "report". An
implementation may choose to omit some or all reports. Some reports implementation may choose to omit some or all reports. Some reports
specify finer granularity about the printer state; others serve as specify finer granularity about the printer state; others serve as
a precursor to a warning. A report MUST contain nothing that could a precursor to a warning. A report MUST contain nothing that could
affect the printed output. affect the printed output.
Expires December 11, 1999 Expires December 23, 1999
- '-warning': This suffix indicates that the reason is a "warning". - '-warning': This suffix indicates that the reason is a "warning".
An implementation may choose to omit some or all warnings. Warnings An implementation may choose to omit some or all warnings. Warnings
serve as a precursor to an error. A warning MUST contain nothing serve as a precursor to an error. A warning MUST contain nothing
that prevents a job from completing, though in some cases the that prevents a job from completing, though in some cases the
output may be of lower quality. output may be of lower quality.
- '-error': This suffix indicates that the reason is an "error". An - '-error': This suffix indicates that the reason is an "error". An
implementation MUST include all errors. If this attribute contains implementation MUST include all errors. If this attribute contains
one or more errors, printer MUST be in the stopped state. one or more errors, printer MUST be in the stopped state.
If the implementation does not add any one of the three suffixes, all If the implementation does not add any one of the three suffixes, all
skipping to change at page 117, line 5 skipping to change at page 117, line 5
in the printed output of such a pause. This value MUST be in the printed output of such a pause. This value MUST be
supported, if the Pause-Printer operation is supported. supported, if the Pause-Printer operation is supported.
'shutdown': Someone has removed a Printer object from service, and 'shutdown': Someone has removed a Printer object from service, and
the device may be powered down or physically removed. In this the device may be powered down or physically removed. In this
state, a Printer object MUST NOT produce printed output, and unless state, a Printer object MUST NOT produce printed output, and unless
the Printer object is realized by a print server that is still the Printer object is realized by a print server that is still
active, the Printer object MUST perform no other operations active, the Printer object MUST perform no other operations
requested by a client, including returning this value. If a Printer requested by a client, including returning this value. If a Printer
object had been printing a job when it was shutdown, the Printer object had been printing a job when it was shutdown, the Printer
Expires December 11, 1999 Expires December 23, 1999
NEED NOT resume printing that job when the Printer is no longer NEED NOT resume printing that job when the Printer is no longer
shutdown. If the Printer resumes printing such a job, it may leave shutdown. If the Printer resumes printing such a job, it may leave
evidence in the printed output of such a shutdown, e.g. the part evidence in the printed output of such a shutdown, e.g. the part
printed before the shutdown may be printed a second time after the printed before the shutdown may be printed a second time after the
shutdown. shutdown.
'connecting-to-device': The Printer object has scheduled a job on the 'connecting-to-device': The Printer object has scheduled a job on the
output device and is in the process of connecting to a shared output device and is in the process of connecting to a shared
network output device (and might not be able to actually start network output device (and might not be able to actually start
printing the job for an arbitrarily long time depending on the printing the job for an arbitrarily long time depending on the
usage of the output device by other servers on the network). usage of the output device by other servers on the network).
skipping to change at page 118, line 5 skipping to change at page 118, line 5
'marker-supply-low': The device is low on at least one marker supply. 'marker-supply-low': The device is low on at least one marker supply.
(e.g. toner, ink, ribbon) (e.g. toner, ink, ribbon)
'marker-supply-empty: The device is out of at least one marker 'marker-supply-empty: The device is out of at least one marker
supply. (e.g. toner, ink, ribbon) supply. (e.g. toner, ink, ribbon)
'marker-waste-almost-full': The device marker supply waste receptacle 'marker-waste-almost-full': The device marker supply waste receptacle
is almost full. is almost full.
'marker-waste-full': The device marker supply waste receptacle is 'marker-waste-full': The device marker supply waste receptacle is
full. full.
'fuser-over-temp': The fuser temperature is above normal. 'fuser-over-temp': The fuser temperature is above normal.
Expires December 11, 1999 Expires December 23, 1999
'fuser-under-temp': The fuser temperature is below normal. 'fuser-under-temp': The fuser temperature is below normal.
'opc-near-eol': The optical photo conductor is near end of life. 'opc-near-eol': The optical photo conductor is near end of life.
'opc-life-over': The optical photo conductor is no longer 'opc-life-over': The optical photo conductor is no longer
functioning. functioning.
'developer-low': The device is low on developer. 'developer-low': The device is low on developer.
'developer-empty: The device is out of developer. 'developer-empty: The device is out of developer.
'interpreter-resource-unavailable': An interpreter resource is 'interpreter-resource-unavailable': An interpreter resource is
unavailable (i.e. font, form) unavailable (i.e. font, form)
4.4.13 printer-state-message (text(MAX)) 4.4.13 printer-state-message (text(MAX))
skipping to change at page 119, line 5 skipping to change at page 119, line 5
4.4.15 operations-supported (1setOf type2 enum) 4.4.15 operations-supported (1setOf type2 enum)
This REQUIRED Printer attribute specifies the set of supported This REQUIRED Printer attribute specifies the set of supported
operations for this Printer object and contained Job objects. operations for this Printer object and contained Job objects.
This attribute is encoded as any other enum attribute syntax according This attribute is encoded as any other enum attribute syntax according
to [IPP-PRO] as 32-bits. However, all 32-bit enum values for this to [IPP-PRO] as 32-bits. However, all 32-bit enum values for this
attribute MUST NOT exceed 0x00008FFF, since these same values are also attribute MUST NOT exceed 0x00008FFF, since these same values are also
Expires December 11, 1999 Expires December 23, 1999
passed in two octets in the "operation-id" parameter (see section 3.1.1) passed in two octets in the "operation-id" parameter (see section 3.1.1)
in each Protocol request with the two high order octets omitted in order in each Protocol request with the two high order octets omitted in order
to indicate the operation being performed [IPP-PRO]. to indicate the operation being performed [IPP-PRO].
The following standard enum and "operation-id" (see section 3.1.2) The following standard enum and "operation-id" (see section 3.1.2)
values are defined: values are defined:
Value Operation Name Value Operation Name
----------------- ------------------------------------- ----------------- -------------------------------------
skipping to change at page 120, line 5 skipping to change at page 120, line 5
4.4.17 charset-configured (charset) 4.4.17 charset-configured (charset)
This REQUIRED Printer attribute identifies the charset that the Printer This REQUIRED Printer attribute identifies the charset that the Printer
object has been configured to represent 'text' and 'name' Printer object has been configured to represent 'text' and 'name' Printer
attributes that are set by the operator, system administrator, or attributes that are set by the operator, system administrator, or
manufacturer, i.e., for "printer-name" (name), "printer-location" manufacturer, i.e., for "printer-name" (name), "printer-location"
(text), "printer-info" (text), and "printer-make-and-model" (text). (text), "printer-info" (text), and "printer-make-and-model" (text).
Therefore, the value of the Printer object's "charset-configured" Therefore, the value of the Printer object's "charset-configured"
Expires December 11, 1999 Expires December 23, 1999
attribute MUST also be among the values of the Printer object's attribute MUST also be among the values of the Printer object's
"charset-supported" attribute. "charset-supported" attribute.
4.4.18 charset-supported (1setOf charset) 4.4.18 charset-supported (1setOf charset)
This REQUIRED Printer attribute identifies the set of charsets that the This REQUIRED Printer attribute identifies the set of charsets that the
Printer and contained Job objects support in attributes with attribute Printer and contained Job objects support in attributes with attribute
syntax 'text' and 'name'. At least the value 'utf-8' MUST be present, syntax 'text' and 'name'. At least the value 'utf-8' MUST be present,
since IPP objects MUST support the UTF-8 [RFC2279] charset. If a since IPP objects MUST support the UTF-8 [RFC2279] charset. If a
skipping to change at page 121, line 5 skipping to change at page 121, line 5
If a Printer object supports a natural language, it means that for any If a Printer object supports a natural language, it means that for any
of the attributes for which the Printer or Job object generates of the attributes for which the Printer or Job object generates
messages, i.e., for the "job-state-message" and "printer-state-message" messages, i.e., for the "job-state-message" and "printer-state-message"
attributes and Operation Messages (see Section 3.1.5) in operation attributes and Operation Messages (see Section 3.1.5) in operation
responses, the Printer and Job objects MUST be able to generate messages responses, the Printer and Job objects MUST be able to generate messages
in any of the Printer's supported natural languages. See section 3.1.4 in any of the Printer's supported natural languages. See section 3.1.4
for the definition of 'text' and 'name' attributes in operation requests for the definition of 'text' and 'name' attributes in operation requests
and responses. and responses.
Expires December 11, 1999 Expires December 23, 1999
Note: A Printer object that supports multiple natural languages, often Note: A Printer object that supports multiple natural languages, often
has separate catalogs of messages, one for each natural language has separate catalogs of messages, one for each natural language
supported. supported.
4.4.21 document-format-default (mimeMediaType) 4.4.21 document-format-default (mimeMediaType)
This REQUIRED Printer attribute identifies the document format that the This REQUIRED Printer attribute identifies the document format that the
Printer object has been configured to assume if the client does not Printer object has been configured to assume if the client does not
supply a "document-format" operation attribute in any of the operation supply a "document-format" operation attribute in any of the operation
skipping to change at page 122, line 5 skipping to change at page 122, line 5
that are either 'pending', 'processing', 'pending-held', or 'processing- that are either 'pending', 'processing', 'pending-held', or 'processing-
stopped' and is set by the Printer object. stopped' and is set by the Printer object.
4.4.25 printer-message-from-operator (text(127)) 4.4.25 printer-message-from-operator (text(127))
This Printer attribute provides a message from an operator, system This Printer attribute provides a message from an operator, system
administrator or "intelligent" process to indicate to the end user administrator or "intelligent" process to indicate to the end user
information or status of the printer, such as why it is unavailable or information or status of the printer, such as why it is unavailable or
when it is expected to be available. when it is expected to be available.
Expires December 11, 1999 Expires December 23, 1999
4.4.26 color-supported (boolean) 4.4.26 color-supported (boolean)
This Printer attribute identifies whether the device is capable of any This Printer attribute identifies whether the device is capable of any
type of color printing at all, including highlight color. All document type of color printing at all, including highlight color. All document
instructions having to do with color are embedded within the document instructions having to do with color are embedded within the document
PDL (none are external IPP attributes in IPP/1.1). PDL (none are external IPP attributes in IPP/1.1).
Note: end-users are able to determine the nature and details of the Note: end-users are able to determine the nature and details of the
color support by querying the "printer-more-info-manufacturer" Printer color support by querying the "printer-more-info-manufacturer" Printer
skipping to change at page 123, line 5 skipping to change at page 123, line 5
fidelity" attribute. fidelity" attribute.
4.4.29 printer-up-time (integer(1:MAX)) 4.4.29 printer-up-time (integer(1:MAX))
This REQUIRED Printer attribute indicates the amount of time (in This REQUIRED Printer attribute indicates the amount of time (in
seconds) that this Printer instance has been up and running. The value seconds) that this Printer instance has been up and running. The value
is a monotonically increasing value starting from 1 when the Printer is a monotonically increasing value starting from 1 when the Printer
object is started-up (initialized, booted, etc.). This value is used to object is started-up (initialized, booted, etc.). This value is used to
populate the Event Time Job Description Job attributes "time-at- populate the Event Time Job Description Job attributes "time-at-
Expires December 11, 1999 Expires December 23, 1999
creation", "time-at-processing", and "time-at-completed" (see section creation", "time-at-processing", and "time-at-completed" (see section
4.3.14). 4.3.14).
If the Printer object goes down at some value 'n', and comes back up, If the Printer object goes down at some value 'n', and comes back up,
the implementation MAY: the implementation MAY:
1. Know how long it has been down, and resume at some value greater 1. Know how long it has been down, and resume at some value greater
than 'n', or than 'n', or
2. Restart from 1. 2. Restart from 1.
skipping to change at page 124, line 5 skipping to change at page 124, line 5
The client SHOULD display any dateTime attributes to the user in client The client SHOULD display any dateTime attributes to the user in client
local time by converting the 'dateTime' value returned by the server to local time by converting the 'dateTime' value returned by the server to
the time zone of the client, rather than using the time zone returned by the time zone of the client, rather than using the time zone returned by
the Printer in attributes that use the 'dateTime' attribute syntax. the Printer in attributes that use the 'dateTime' attribute syntax.
4.4.31 multiple-operation-time-out (integer(1:MAX)) 4.4.31 multiple-operation-time-out (integer(1:MAX))
This Printer attributes identifies the minimum time (in seconds) that This Printer attributes identifies the minimum time (in seconds) that
the Printer object waits for additional Send-Document or Send-URI the Printer object waits for additional Send-Document or Send-URI
Expires December 11, 1999 Expires December 23, 1999
operations to follow a still-open multi-document Job object before operations to follow a still-open multi-document Job object before
taking any recovery actions, such as the ones indicated in section taking any recovery actions, such as the ones indicated in section
3.3.1. If the Printer object supports the Create-Job and Send-Document 3.3.1. If the Printer object supports the Create-Job and Send-Document
operations (see section 3.2.4 and 3.3.1), it MUST support this operations (see section 3.2.4 and 3.3.1), it MUST support this
attribute. attribute.
It is RECOMMENDED that vendors supply a value for this attribute that is It is RECOMMENDED that vendors supply a value for this attribute that is
between 60 and 240 seconds. An implementation MAY allow a system between 60 and 240 seconds. An implementation MAY allow a system
administrator to set this attribute (by means outside this IPP/1.1 administrator to set this attribute (by means outside this IPP/1.1
skipping to change at page 125, line 5 skipping to change at page 125, line 5
is defined in section 4.3.17.2. is defined in section 4.3.17.2.
4.4.35 job-media-sheets-supported (rangeOfInteger(0:MAX)) 4.4.35 job-media-sheets-supported (rangeOfInteger(0:MAX))
This Printer attribute specifies the upper and lower bounds for the This Printer attribute specifies the upper and lower bounds for the
number of media sheets per job. The supported values are used to number of media sheets per job. The supported values are used to
validate the client supplied "job-media-sheets" operation attributes in validate the client supplied "job-media-sheets" operation attributes in
create requests. The corresponding Job attribute "job-media-sheets" is create requests. The corresponding Job attribute "job-media-sheets" is
defined in section 4.3.17.3. defined in section 4.3.17.3.
Expires December 11, 1999 Expires December 23, 1999
4.4.36 pages-per-minute (integer(0:MAX)) 4.4.36 pages-per-minute (integer(0:MAX))
This Printer attributes specifies the nominal number of pages per minute This Printer attributes specifies the nominal number of pages per minute
to the nearest whole number which may be generated by this printer to the nearest whole number which may be generated by this printer
(e.g., simplex, black-and-white). This attribute is informative, not a (e.g., simplex, black-and-white). This attribute is informative, not a
service guarantee. Generally, it is the value used in the marketing service guarantee. Generally, it is the value used in the marketing
literature to describe the device. literature to describe the device.
A value of 0 indicates a device that takes more than two minutes to A value of 0 indicates a device that takes more than two minutes to
skipping to change at page 126, line 5 skipping to change at page 126, line 5
Attributes. Attributes.
5. Conformance 5. Conformance
This section describes conformance issues and requirements. This This section describes conformance issues and requirements. This
document introduces model entities such as objects, operations, document introduces model entities such as objects, operations,
attributes, attribute syntaxes, and attribute values. These conformance attributes, attribute syntaxes, and attribute values. These conformance
sections describe the conformance requirements which apply to these sections describe the conformance requirements which apply to these
model entities. model entities.
Expires December 11, 1999 Expires December 23, 1999
5.1 Client Conformance Requirements 5.1 Client Conformance Requirements
This section describes the conformance requirements for a client (see This section describes the conformance requirements for a client (see
section 2.1), whether it be: section 2.1), whether it be:
1. contained within software controlled by an end user, e.g. activated 1. contained within software controlled by an end user, e.g. activated
by the "Print" menu item in an application that sends IPP requests by the "Print" menu item in an application that sends IPP requests
or or
skipping to change at page 127, line 5 skipping to change at page 127, line 5
A response MAY contain attribute groups, attributes, attribute syntaxes, A response MAY contain attribute groups, attributes, attribute syntaxes,
values, and status codes that the client does not expect. Therefore, a values, and status codes that the client does not expect. Therefore, a
client implementation MUST gracefully handle such responses and not client implementation MUST gracefully handle such responses and not
refuse to inter-operate with a conforming Printer that is returning refuse to inter-operate with a conforming Printer that is returning
registered or private extensions, including attribute groups, registered or private extensions, including attribute groups,
attributes, attribute syntaxes, attribute values, and status codes that attributes, attribute syntaxes, attribute values, and status codes that
conform to Section 6. Clients may choose to ignore any parameters, conform to Section 6. Clients may choose to ignore any parameters,
attributes, attribute syntaxes, or values that they do not understand. attributes, attribute syntaxes, or values that they do not understand.
Expires December 11, 1999 Expires December 23, 1999
While a client is sending data to a printer, it SHOULD do its best to While a client is sending data to a printer, it SHOULD do its best to
prevent a channel from being closed by a lower layer when the channel is prevent a channel from being closed by a lower layer when the channel is
blocked (i.e. flow-controlled off) for whatever reason, e.g. 'out of blocked (i.e. flow-controlled off) for whatever reason, e.g. 'out of
paper' or 'job ahead hasn't freed up enough memory'. However, the layer paper' or 'job ahead hasn't freed up enough memory'. However, the layer
that launched the print submission (e.g. an end user) MAY close the that launched the print submission (e.g. an end user) MAY close the
channel in order to cancel the job. When a client closes a channel, a channel in order to cancel the job. When a client closes a channel, a
Printer MAY print all or part of the received portion of the document. Printer MAY print all or part of the received portion of the document.
See the "Encoding and Transport" document [IPP-PRO] for more details. See the "Encoding and Transport" document [IPP-PRO] for more details.
skipping to change at page 128, line 5 skipping to change at page 128, line 5
Print-Job (section 3.2.1) REQUIRED Print-Job (section 3.2.1) REQUIRED
Print-URI (section 3.2.2) OPTIONAL Print-URI (section 3.2.2) OPTIONAL
Validate-Job (section 3.2.3) REQUIRED Validate-Job (section 3.2.3) REQUIRED
Create-Job (section 3.2.4) OPTIONAL Create-Job (section 3.2.4) OPTIONAL
Get-Printer-Attributes (section 3.2.5) REQUIRED Get-Printer-Attributes (section 3.2.5) REQUIRED
Get-Jobs (section 3.2.6) REQUIRED Get-Jobs (section 3.2.6) REQUIRED
Pause-Printer (section 3.2.7) OPTIONAL Pause-Printer (section 3.2.7) OPTIONAL
Resume-Printer (section 3.2.8) OPTIONAL Resume-Printer (section 3.2.8) OPTIONAL
Purge-Jobs (section 3.2.9) OPTIONAL Purge-Jobs (section 3.2.9) OPTIONAL
Expires December 11, 1999 Expires December 23, 1999
For a Job object: For a Job object:
Send-Document (section 3.3.1) OPTIONAL Send-Document (section 3.3.1) OPTIONAL
Send-URI (section 3.3.2) OPTIONAL Send-URI (section 3.3.2) OPTIONAL
Cancel-Job (section 3.3.3) REQUIRED Cancel-Job (section 3.3.3) REQUIRED
Get-Job-Attributes (section 3.3.4) REQUIRED Get-Job-Attributes (section 3.3.4) REQUIRED
Hold-Job (section 3.3.5) OPTIONAL Hold-Job (section 3.3.5) OPTIONAL
Release-Job (section 3.3.6) OPTIONAL Release-Job (section 3.3.6) OPTIONAL
Restart-Job (section 3.3.7) OPTIONAL Restart-Job (section 3.3.7) OPTIONAL
Conforming IPP objects MUST support all REQUIRED operation attributes Conforming IPP objects MUST support all REQUIRED operation attributes
skipping to change at page 128, line 43 skipping to change at page 128, line 43
attributes, as defined in this document in the indicated sections. attributes, as defined in this document in the indicated sections.
If an object supports an attribute, it MUST support only those values If an object supports an attribute, it MUST support only those values
specified in this document or through the extension mechanism described specified in this document or through the extension mechanism described
in section 5.2.4. It MAY support any non-empty subset of these values. in section 5.2.4. It MAY support any non-empty subset of these values.
That is, it MUST support at least one of the specified values and at That is, it MUST support at least one of the specified values and at
most all of them. most all of them.
5.2.4 Versions 5.2.4 Versions
Clients MUST meet the conformance requirements for clients specified in IPP/1.1 clients MUST meet the conformance requirements for clients
this document and [IPP-PRO] and SHOULD also support version 1.0, i.e., specified in this document and [IPP-PRO]. IPP/1.1 clients MUST send
SHOULD meet the conformance requirements for clients as specified in requests containing a "version-number" parameter with a '1.1' value.
[RFC2566] and [RFC2565].
IPP Printer and Job objects MUST meet the conformance requirements for IPP/1.1 Printer and Job objects MUST meet the conformance requirements
IPP objects specified in this document and [IPP-PRO]. For for IPP objects specified in this document and [IPP-PRO]. IPP/1.1
interoperability with IPP/1.0 clients, IPP/1.1 objects SHOULD also meet objects MUST accept requests containing a "version-number" parameter
the conformance requirements for IPP objects as specified in [RFC2566] with a '1.1' value (or reject the request if the operation is not
and [RFC2565]. supported).
Clients MUST send requests containing a "version-number" parameter with It is beyond the scope of this specification to mandate conformance with
a '1.1' value and SHOULD try supplying alternate version numbers if they previous versions. IPP/1.1 was deliberately designed, however, to make
receive a 'server-error-version-not-supported' error return in a supporting previous versions easy. It is worth noting that, at the time
response. of composing this specification (1999), we would expect IPP/1.1 Printer
implementations to:
Expires December 11, 1999 Expires December 23, 1999
understand any valid request in the format of IPP/1.0, or 1.1;
IPP objects MUST accept requests containing a "version-number" parameter respond appropriately with a response containing the same "version-
with a '1.1' value (or reject the request if the operation is not number" parameter value used by the client in the request.
supported). IPP objects SHOULD accept any request with the major
version '1' (or reject the request if the operation is not supported). And we would expect IPP/1.1 clients to:
See section 3.1.8.
understand any valid response in the format of IPP/1.0, or 1.1.
It is recommended that IPP/1.1 clients try supplying alternate version
numbers if they receive a 'server-error-version-not-supported' error
return in a response.
.
5.2.5 Extensions 5.2.5 Extensions
A conforming IPP object MAY support registered extensions and private A conforming IPP object MAY support registered extensions and private
extensions, as long as they meet the requirements specified in Section extensions, as long as they meet the requirements specified in Section
6. 6.
For each attribute included in an operation response, a conforming IPP For each attribute included in an operation response, a conforming IPP
object MUST return a value whose type and value syntax conforms to the object MUST return a value whose type and value syntax conforms to the
requirement of the Model document as specified in Sections 3 and 4. requirement of the Model document as specified in Sections 3 and 4.
skipping to change at page 129, line 50 skipping to change at page 130, line 4
An IPP Printer implementation SHOULD contain support for Client An IPP Printer implementation SHOULD contain support for Client
Authentication as defined in the IPP/1.1 Encoding and Transport document Authentication as defined in the IPP/1.1 Encoding and Transport document
[IPP-PRO]. A Printer implementation MAY allow an administrator to [IPP-PRO]. A Printer implementation MAY allow an administrator to
configure the Printer so that all, some, or none of the users are configure the Printer so that all, some, or none of the users are
authenticated. See also section 8 of this document. authenticated. See also section 8 of this document.
An IPP Printer implementation SHOULD contain support for Operation An IPP Printer implementation SHOULD contain support for Operation
Privacy and Server Authentication as defined in the IPP/1.1 Encoding and Privacy and Server Authentication as defined in the IPP/1.1 Encoding and
Transport document [IPP-PRO]. A Printer implementation MAY allow an Transport document [IPP-PRO]. A Printer implementation MAY allow an
Expires December 23, 1999
administrator to configure the degree of support for Operation Privacy administrator to configure the degree of support for Operation Privacy
and Server Authentication. See also section 8 of this document. and Server Authentication. See also section 8 of this document.
Security MUST NOT be compromised when a client supplies a lower Security MUST NOT be compromised when a client supplies a lower
"version-number" parameter in a request. For example, if an IPP/1.1 "version-number" parameter in a request. For example, if an IPP/1.1
conforming Printer object accepts version '1.0' requests and is conforming Printer object accepts version '1.0' requests and is
configured to enforce Digest Authentication, it MUST do the same for a configured to enforce Digest Authentication, it MUST do the same for a
version '1.0' request. version '1.0' request.
Expires December 11, 1999
5.3 Charset and Natural Language Requirements 5.3 Charset and Natural Language Requirements
All clients and IPP objects MUST support the 'utf-8' charset as defined All clients and IPP objects MUST support the 'utf-8' charset as defined
in section 4.1.7. in section 4.1.7.
IPP objects MUST be able to accept any client request which correctly IPP objects MUST be able to accept any client request which correctly
uses the "attributes-natural-language" operation attribute or the uses the "attributes-natural-language" operation attribute or the
Natural Language Override mechanism on any individual attribute whether Natural Language Override mechanism on any individual attribute whether
or not the natural language is supported by the IPP object. If an IPP or not the natural language is supported by the IPP object. If an IPP
object supports a natural language, then it MUST be able to translate object supports a natural language, then it MUST be able to translate
skipping to change at page 130, line 49 skipping to change at page 131, line 5
IPP object conformance to the IPP/1.1 Model document. IPP object conformance to the IPP/1.1 Model document.
These extension procedures are aligned with the guidelines as set forth These extension procedures are aligned with the guidelines as set forth
by the IESG [IANA-CON]. Section 11 describes how to propose new by the IESG [IANA-CON]. Section 11 describes how to propose new
registrations for consideration. IANA will reject registration registrations for consideration. IANA will reject registration
proposals that leave out required information or do not follow the proposals that leave out required information or do not follow the
appropriate format described in Section 11. IPP/1.1 may also be appropriate format described in Section 11. IPP/1.1 may also be
extended by an appropriate RFC that specifies any of the above extended by an appropriate RFC that specifies any of the above
extensions. extensions.
Expires December 23, 1999
6.1 Typed 'keyword' and 'enum' Extensions 6.1 Typed 'keyword' and 'enum' Extensions
IPP allows for 'keyword' and 'enum' extensions (see sections 4.1.2.3 and IPP allows for 'keyword' and 'enum' extensions (see sections 4.1.2.3 and
4.1.4). This document uses prefixes to the 'keyword' and 'enum' basic 4.1.4). This document uses prefixes to the 'keyword' and 'enum' basic
attribute syntax type in order to communicate extra information to the attribute syntax type in order to communicate extra information to the
reader through its name. This extra information is not represented in reader through its name. This extra information is not represented in
the protocol because it is unimportant to a client or Printer object. the protocol because it is unimportant to a client or Printer object.
The list below describes the prefixes and their meaning. The list below describes the prefixes and their meaning.
Expires December 11, 1999
"type1": This IPP specification document must be revised to add a "type1": This IPP specification document must be revised to add a
new keyword or a new enum. No private keywords or enums are new keyword or a new enum. No private keywords or enums are
allowed. allowed.
"type2": Implementers can, at any time, add new keyword or enum "type2": Implementers can, at any time, add new keyword or enum
values by proposing the complete specification to IANA: values by proposing the complete specification to IANA:
iana@iana.org iana@iana.org
IANA will forward the registration proposal to the IPP Designated IANA will forward the registration proposal to the IPP Designated
skipping to change at page 131, line 50 skipping to change at page 132, line 5
future maintenance that might be required for that registration. future maintenance that might be required for that registration.
For type2 and type3 keywords, the proposer includes the name of the For type2 and type3 keywords, the proposer includes the name of the
keyword in the registration proposal and the name is part of the keyword in the registration proposal and the name is part of the
technical review. technical review.
After type2 and type3 enums specifications are approved, the IPP After type2 and type3 enums specifications are approved, the IPP
Designated Expert in consultation with IANA assigns the next available Designated Expert in consultation with IANA assigns the next available
enum number for each enum value. enum number for each enum value.
Expires December 23, 1999
IANA will publish approved type2 and type3 keyword and enum attributes IANA will publish approved type2 and type3 keyword and enum attributes
value registration specifications in: value registration specifications in:
ftp.isi.edu/iana/assignments/ipp/attribute-values/xxx/yyy.txt ftp.isi.edu/iana/assignments/ipp/attribute-values/xxx/yyy.txt
where xxx is the attribute name that specifies the initial values and where xxx is the attribute name that specifies the initial values and
yyy.txt is a descriptive file name that contains one or more enums or yyy.txt is a descriptive file name that contains one or more enums or
keywords approved at the same time. For example, if several additional keywords approved at the same time. For example, if several additional
enums for stapling are approved for use with the "finishings" attribute enums for stapling are approved for use with the "finishings" attribute
Expires December 11, 1999
(and "finishings-default" and "finishings-supported" attributes), IANA (and "finishings-default" and "finishings-supported" attributes), IANA
will publish the additional values in the file: will publish the additional values in the file:
ftp.isi.edu/iana/assignments/ipp/attribute- ftp.isi.edu/iana/assignments/ipp/attribute-
values/finishings/stapling.txt values/finishings/stapling.txt
Note: Some attributes are defined to be: 'type3 keywords' | 'name' which Note: Some attributes are defined to be: 'type3 keywords' | 'name' which
allows for attribute values to be extended by a site administrator with allows for attribute values to be extended by a site administrator with
administrator defined names. Such names are not registered with IANA. administrator defined names. Such names are not registered with IANA.
skipping to change at page 132, line 48 skipping to change at page 133, line 5
case. That is, two names with the same spelling but different case are case. That is, two names with the same spelling but different case are
to be treated as if identical. Also, the labels in a domain name must to be treated as if identical. Also, the labels in a domain name must
follow the rules for ARPANET host names: They must start with a letter, follow the rules for ARPANET host names: They must start with a letter,
end with a letter or digit, and have as interior characters only end with a letter or digit, and have as interior characters only
letters, digits, and hyphen. Labels must be 63 characters or less. letters, digits, and hyphen. Labels must be 63 characters or less.
Labels are separated by the "." character. Labels are separated by the "." character.
For private (unregistered) enum extension, implementers MUST use values For private (unregistered) enum extension, implementers MUST use values
in the reserved integer range which is 2**30 to 2**31-1. in the reserved integer range which is 2**30 to 2**31-1.
Expires December 23, 1999
6.2 Attribute Extensibility 6.2 Attribute Extensibility
Attribute names are type2 keywords. Therefore, new attributes may be Attribute names are type2 keywords. Therefore, new attributes may be
registered and have the same status as attributes in this document by registered and have the same status as attributes in this document by
following the type2 extension rules. For private (unregistered) following the type2 extension rules. For private (unregistered)
attribute extensions, implementers SHOULD use keywords with a suitable attribute extensions, implementers SHOULD use keywords with a suitable
distinguishing prefix as described in Section 6.1. distinguishing prefix as described in Section 6.1.
IANA will publish approved attribute registration specifications as IANA will publish approved attribute registration specifications as
separate files: separate files:
ftp.isi.edu/iana/assignments/ipp/attributes/xxx-yyy.txt ftp.isi.edu/iana/assignments/ipp/attributes/xxx-yyy.txt
Expires December 11, 1999
where "xxx-yyy" is the new attribute name. where "xxx-yyy" is the new attribute name.
If a new Printer object attribute is defined and its values can be If a new Printer object attribute is defined and its values can be
affected by a specific document format, its specification needs to affected by a specific document format, its specification needs to
contain the following sentence: contain the following sentence:
"The value of this attribute returned in a Get-Printer- "The value of this attribute returned in a Get-Printer-
Attributes response MAY depend on the "document-format" Attributes response MAY depend on the "document-format"
attribute supplied (see Section 3.2.5.1)." attribute supplied (see Section 3.2.5.1)."
skipping to change at page 133, line 45 skipping to change at page 134, line 4
registration specifications as separate files: registration specifications as separate files:
ftp.isi.edu/iana/assignments/ipp/attribute-syntaxes/xxx-yyy.txt ftp.isi.edu/iana/assignments/ipp/attribute-syntaxes/xxx-yyy.txt
where 'xxx-yyy' is the new attribute syntax name. where 'xxx-yyy' is the new attribute syntax name.
6.4 Operation Extensibility 6.4 Operation Extensibility
Operations may also be registered following the type2 procedures Operations may also be registered following the type2 procedures
described in Section 6.1, though major new operations will usually be described in Section 6.1, though major new operations will usually be
Expires December 23, 1999
done by a new standards track RFC that augments this document. For done by a new standards track RFC that augments this document. For
private (unregistered) operation extensions, implementers MUST use the private (unregistered) operation extensions, implementers MUST use the
range for the "operation-id" in requests specified in Section 4.4.15 range for the "operation-id" in requests specified in Section 4.4.15
"operations-supported" Printer attribute. "operations-supported" Printer attribute.
For operations, the IPP Designated Expert in consultation with IANA For operations, the IPP Designated Expert in consultation with IANA
assigns the next operation-id code as specified in Section 4.4.15. IANA assigns the next operation-id code as specified in Section 4.4.15. IANA
will publish approved operation registration specifications as separate will publish approved operation registration specifications as separate
files: files:
ftp.isi.edu/iana/assignments/ipp/operations/Xxx-Yyy.txt ftp.isi.edu/iana/assignments/ipp/operations/Xxx-Yyy.txt
where "Xxx-Yyy" is the new operation name. where "Xxx-Yyy" is the new operation name.
Expires December 11, 1999
6.5 Attribute Groups 6.5 Attribute Groups
Attribute groups passed in requests and responses may be registered Attribute groups passed in requests and responses may be registered
following the type2 procedures described in Section 6.1. The tags that following the type2 procedures described in Section 6.1. The tags that
identify each of the attribute groups are assigned in [IPP-PRO]. identify each of the attribute groups are assigned in [IPP-PRO].
For attribute groups, the IPP Designated Expert in consultation with For attribute groups, the IPP Designated Expert in consultation with
IANA assigns the next attribute group tag code in the appropriate range IANA assigns the next attribute group tag code in the appropriate range
as specified in [IPP-PRO]. IANA will publish approved attribute group as specified in [IPP-PRO]. IANA will publish approved attribute group
registration specifications as separate files: registration specifications as separate files:
skipping to change at page 134, line 45 skipping to change at page 135, line 4
"client-error" - The request contains bad syntax or cannot be "client-error" - The request contains bad syntax or cannot be
fulfilled fulfilled
"server-error" - The IPP object failed to fulfill an apparently "server-error" - The IPP object failed to fulfill an apparently
valid request valid request
For private (unregistered) operation status code extensions, For private (unregistered) operation status code extensions,
implementers MUST use the top of each range as specified in Section 13. implementers MUST use the top of each range as specified in Section 13.
For operation status codes, the IPP Designated Expert in consultation For operation status codes, the IPP Designated Expert in consultation
with IANA assigns the next status code in the appropriate class range as with IANA assigns the next status code in the appropriate class range as
Expires December 23, 1999
specified in Section 13. IANA will publish approved status code specified in Section 13. IANA will publish approved status code
registration specifications as separate files: registration specifications as separate files:
ftp.isi.edu/iana/assignments/ipp/status-codes/xxx-yyy.txt ftp.isi.edu/iana/assignments/ipp/status-codes/xxx-yyy.txt
where "xxx-yyy" is the new operation status code keyword. where "xxx-yyy" is the new operation status code keyword.
6.7 Registration of MIME types/sub-types for document-formats 6.7 Registration of MIME types/sub-types for document-formats
The "document-format" attribute's syntax is 'mimeMediaType'. This means The "document-format" attribute's syntax is 'mimeMediaType'. This means
that valid values are Internet Media Types (see Section 4.1.9). RFC that valid values are Internet Media Types (see Section 4.1.9). RFC
2045 [RFC2045] defines the syntax for valid Internet media types. IANA 2045 [RFC2045] defines the syntax for valid Internet media types. IANA
is the registry for all Internet media types. is the registry for all Internet media types.
Expires December 11, 1999
6.8 Registration of charsets for use in 'charset' attribute values 6.8 Registration of charsets for use in 'charset' attribute values
The "attributes-charset" attribute's syntax is 'charset'. This means The "attributes-charset" attribute's syntax is 'charset'. This means
that valid values are charsets names. When a charset in the IANA that valid values are charsets names. When a charset in the IANA
registry has more than one name (alias), the name labeled as "(preferred registry has more than one name (alias), the name labeled as "(preferred
MIME name)", if present, MUST be used (see Section 4.1.7). IANA is the MIME name)", if present, MUST be used (see Section 4.1.7). IANA is the
registry for charsets following the procedures of [RFC2278]. registry for charsets following the procedures of [RFC2278].
7. Internationalization Considerations 7. Internationalization Considerations
skipping to change at page 135, line 43 skipping to change at page 136, line 5
section 4.1.1.2 and 4.1.2.2 respectively. section 4.1.1.2 and 4.1.2.2 respectively.
All IPP objects MUST support the UTF-8 [RFC2279] charset in all 'text' All IPP objects MUST support the UTF-8 [RFC2279] charset in all 'text'
and 'name' attributes supported. If an IPP object supports more than and 'name' attributes supported. If an IPP object supports more than
the UTF-8 charset, the object MUST convert between them in order to the UTF-8 charset, the object MUST convert between them in order to
return the requested charset to the client according to Section 3.1.4.2. return the requested charset to the client according to Section 3.1.4.2.
If an IPP object supports more than one natural language, the object If an IPP object supports more than one natural language, the object
SHOULD return 'text' and 'name' values in the natural language requested SHOULD return 'text' and 'name' values in the natural language requested
where those values are generated by the Printer (see Section 3.1.4.1). where those values are generated by the Printer (see Section 3.1.4.1).
Expires December 23, 1999
For Printers that support multiple charsets and/or multiple natural For Printers that support multiple charsets and/or multiple natural
languages in 'text' and 'name' attributes, different jobs may have been languages in 'text' and 'name' attributes, different jobs may have been
submitted in differing charsets and/or natural languages. All responses submitted in differing charsets and/or natural languages. All responses
MUST be returned in the charset requested by the client. However, the MUST be returned in the charset requested by the client. However, the
Get-Jobs operation uses the 'textWithLanguage' and 'nameWithLanguage' Get-Jobs operation uses the 'textWithLanguage' and 'nameWithLanguage'
mechanism to identify the differing natural languages with each job mechanism to identify the differing natural languages with each job
attribute returned. attribute returned.
The Printer object also has configured charset and natural language The Printer object also has configured charset and natural language
attributes. The client can query the Printer object to determine the attributes. The client can query the Printer object to determine the
list of charsets and natural languages supported by the Printer object list of charsets and natural languages supported by the Printer object
and what the Printer object's configured values are. See the "charset- and what the Printer object's configured values are. See the "charset-
configured", "charset-supported", "natural-language-configured", and configured", "charset-supported", "natural-language-configured", and
"generated-natural-language-supported" Printer description attributes "generated-natural-language-supported" Printer description attributes
for more details. for more details.
Expires December 11, 1999
The "charset-supported" attributed identifies the supported charsets. The "charset-supported" attributed identifies the supported charsets.
If a charset is supported, the IPP object MUST be capable of converting If a charset is supported, the IPP object MUST be capable of converting
to and from that charset into any other supported charset. In many to and from that charset into any other supported charset. In many
cases, an IPP object will support only one charset and it MUST be the cases, an IPP object will support only one charset and it MUST be the
UTF-8 charset. UTF-8 charset.
The "charset-configured" attribute identifies the one supported charset The "charset-configured" attribute identifies the one supported charset
which is the native charset given the current configuration of the IPP which is the native charset given the current configuration of the IPP
object (administrator defined). object (administrator defined).
skipping to change at page 136, line 45 skipping to change at page 137, line 4
1. Some attributes are supplied by the client (e.g., the client 1. Some attributes are supplied by the client (e.g., the client
supplied "job-name", "document-name", and "requesting-user-name" supplied "job-name", "document-name", and "requesting-user-name"
operation attributes along with the corresponding Job object's operation attributes along with the corresponding Job object's
"job-name" and "job-originating-user-name" attributes). The IPP "job-name" and "job-originating-user-name" attributes). The IPP
object MUST accept these attributes in any natural language no object MUST accept these attributes in any natural language no
matter what the set of supported languages for generated messages matter what the set of supported languages for generated messages
2. Some attributes are supplied by the system administrator (e.g., 2. Some attributes are supplied by the system administrator (e.g.,
the Printer object's "printer-name" and "printer-location" the Printer object's "printer-name" and "printer-location"
attributes). These too can be in any natural language. If the attributes). These too can be in any natural language. If the
Expires December 23, 1999
natural language for these attributes is different than what a natural language for these attributes is different than what a
client requests, then they must be reported using the Natural client requests, then they must be reported using the Natural
Language Override mechanism. Language Override mechanism.
3. Some attributes are supplied by the device manufacturer (e.g., the 3. Some attributes are supplied by the device manufacturer (e.g., the
Printer object's "printer-make-and-model" attribute). These too Printer object's "printer-make-and-model" attribute). These too
can be in any natural language. If the natural language for these can be in any natural language. If the natural language for these
attributes is different than what a client requests, then they must attributes is different than what a client requests, then they must
be reported using the Natural Language Override mechanism. be reported using the Natural Language Override mechanism.
4. Some attributes are supplied by the operator (e.g., the Job 4. Some attributes are supplied by the operator (e.g., the Job
object's "job-message-from-operator" attribute). These too can be object's "job-message-from-operator" attribute). These too can be
in any natural language. If the natural language for these in any natural language. If the natural language for these
attributes is different than what a client requests, then they must attributes is different than what a client requests, then they must
be reported using the Natural Language Override mechanism. be reported using the Natural Language Override mechanism.
5. Some attributes are generated by the IPP object (e.g., the Job 5. Some attributes are generated by the IPP object (e.g., the Job
object's "job-state-message" attribute, the Printer object's object's "job-state-message" attribute, the Printer object's
"printer-state-message" attribute, and the "status-message" "printer-state-message" attribute, and the "status-message"
Expires December 11, 1999
operation attribute). These attributes can only be in one of the operation attribute). These attributes can only be in one of the
"generated-natural-language-supported" natural languages. If a "generated-natural-language-supported" natural languages. If a
client requests some natural language for these attributes other client requests some natural language for these attributes other
than one of the supported values, the IPP object SHOULD respond than one of the supported values, the IPP object SHOULD respond
using the value of the "natural-language-configured" attribute using the value of the "natural-language-configured" attribute
(using the Natural Language Override mechanism if needed). (using the Natural Language Override mechanism if needed).
The 'text' and 'name' attributes specified in this version of this The 'text' and 'name' attributes specified in this version of this
document (additional ones will be registered according to the procedures document (additional ones will be registered according to the procedures
in Section 6) are: in Section 6) are:
Expires December 11, 1999 Expires December 23, 1999
Attributes Source Attributes Source
Operation Attributes: Operation Attributes:
job-name (name) client job-name (name) client
document-name (name) client document-name (name) client
requesting-user-name (name) client requesting-user-name (name) client
status-message Job or Printer object status-message (text) Job or Printer object
detailed-status-message (text) Job or Printer object -
see rule 1
document-access-error (text) Job or Printer object -
see rule 1
Job Template Attributes: Job Template Attributes:
job-hold-until (keyword | name) client matches job-hold-until (keyword | name) client matches
administrator-configured administrator-configured
job-hold-until-default (keyword | name) client matches job-hold-until-default (keyword | name) client matches
administrator-configured administrator-configured
job-hold-until-supported (keyword | client matches job-hold-until-supported (keyword | client matches
name) administrator-configured name) administrator-configured
job-sheets (keyword | name) client matches job-sheets (keyword | name) client matches
administrator-configured administrator-configured
skipping to change at page 138, line 42 skipping to change at page 138, line 46
administrator-configured administrator-configured
media-ready (keyword | name) client matches media-ready (keyword | name) client matches
administrator-configured administrator-configured
Job Description Attributes: Job Description Attributes:
job-name (name) client or Printer object job-name (name) client or Printer object
job-originating-user-name (name) Printer object job-originating-user-name (name) Printer object
job-state-message (text) Job or Printer object job-state-message (text) Job or Printer object
output-device-assigned (name(127)) administrator output-device-assigned (name(127)) administrator
job-message-from-operator (text(127)) operator job-message-from-operator (text(127)) operator
job-detailed-status-messages (1setOf Job or Printer object -
text) see rule 1
job-document-access-errors (1setOf Job or Printer object -
text) see rule 1
Printer Description Attributes: Printer Description Attributes:
printer-name (name(127)) administrator printer-name (name(127)) administrator
printer-location (text(127)) administrator printer-location (text(127)) administrator
printer-info (text(127)) administrator printer-info (text(127)) administrator
printer-make-and-model (text(127)) administrator or printer-make-and-model (text(127)) administrator or
manufacturer manufacturer
printer-state-message (text) Printer object printer-state-message (text) Printer object
printer-message-from-operator operator printer-message-from-operator operator
Expires December 23, 1999
(text(127)) (text(127))
Rule 1 - Neither the Printer nor the client localizes these message
attributes, since they are intended for use by the system administrator
or other experienced technical persons.
8. Security Considerations 8. Security Considerations
It is difficult to anticipate the security risks that might exist in any It is difficult to anticipate the security risks that might exist in any
given IPP environment. For example, if IPP is used within a given given IPP environment. For example, if IPP is used within a given
Expires December 11, 1999
corporation over a private network, the risks of exposing document data corporation over a private network, the risks of exposing document data
may be low enough that the corporation will choose not to use encryption may be low enough that the corporation will choose not to use encryption
on that data. However, if the connection between the client and the IPP on that data. However, if the connection between the client and the IPP
object is over a public network, the client may wish to protect the object is over a public network, the client may wish to protect the
content of the information during transmission through the network with content of the information during transmission through the network with
encryption. encryption.
Furthermore, the value of the information being printed may vary from Furthermore, the value of the information being printed may vary from
one IPP environment to the next. Printing payroll checks, for example, one IPP environment to the next. Printing payroll checks, for example,
would have a different value than printing public information from a would have a different value than printing public information from a
skipping to change at page 139, line 45 skipping to change at page 140, line 5
object in order to enforce any access control policy that might be in object in order to enforce any access control policy that might be in
effect. See section 8.3 below for more details. effect. See section 8.3 below for more details.
Since the security levels or the specific threats that any given IPP Since the security levels or the specific threats that any given IPP
system administrator may be concerned with cannot be anticipated, IPP system administrator may be concerned with cannot be anticipated, IPP
MUST be capable of operating with different security mechanisms and MUST be capable of operating with different security mechanisms and
security policies as required by the individual installation. Security security policies as required by the individual installation. Security
policies might vary from very strong, to very weak, to none at all, and policies might vary from very strong, to very weak, to none at all, and
corresponding security mechanisms will be required. corresponding security mechanisms will be required.
Expires December 23, 1999
8.1 Security Scenarios 8.1 Security Scenarios
The following sections describe specific security attacks for IPP The following sections describe specific security attacks for IPP
environments. Where examples are provided they should be considered environments. Where examples are provided they should be considered
illustrative of the environment and not an exhaustive set. Not all of illustrative of the environment and not an exhaustive set. Not all of
these environments will necessarily be addressed in initial these environments will necessarily be addressed in initial
implementations of IPP. implementations of IPP.
8.1.1 Client and Server in the Same Security Domain 8.1.1 Client and Server in the Same Security Domain
This environment is typical of internal networks where traditional This environment is typical of internal networks where traditional
office workers print the output of personal productivity applications on office workers print the output of personal productivity applications on
shared work-group printers, or where batch applications print their shared work-group printers, or where batch applications print their
output on large production printers. Although the identity of the user output on large production printers. Although the identity of the user
Expires December 11, 1999
may be trusted in this environment, a user might want to protect the may be trusted in this environment, a user might want to protect the
content of a document against such attacks as eavesdropping, replaying content of a document against such attacks as eavesdropping, replaying
or tampering. or tampering.
8.1.2 Client and Server in Different Security Domains 8.1.2 Client and Server in Different Security Domains
Examples of this environment include printing a document created by the Examples of this environment include printing a document created by the
client on a publicly available printer, such as at a commercial print client on a publicly available printer, such as at a commercial print
shop; or printing a document remotely on a business associate's printer. shop; or printing a document remotely on a business associate's printer.
This latter operation is functionally equivalent to sending the document This latter operation is functionally equivalent to sending the document
skipping to change at page 140, line 44 skipping to change at page 141, line 4
be used to access "public" documents and that sophisticated methods for be used to access "public" documents and that sophisticated methods for
authenticating "proxies" is not specified in this document. authenticating "proxies" is not specified in this document.
8.2 URIs in Operation, Job, and Printer attributes 8.2 URIs in Operation, Job, and Printer attributes
The "printer-uri-supported" attribute contains the Printer object's The "printer-uri-supported" attribute contains the Printer object's
URI(s). Its companion attribute, "uri-security-supported", identifies URI(s). Its companion attribute, "uri-security-supported", identifies
the security mechanism used for each URI listed in the "printer-uri- the security mechanism used for each URI listed in the "printer-uri-
supported" attribute. For each Printer operation request, a client MUST supported" attribute. For each Printer operation request, a client MUST
supply only one URI in the "printer-uri" operation attribute. In other supply only one URI in the "printer-uri" operation attribute. In other
Expires December 23, 1999
words, even though the Printer supports more than one URI, the client words, even though the Printer supports more than one URI, the client
only interacts with the Printer object using one if its URIs. This only interacts with the Printer object using one if its URIs. This
duality is not needed for Job objects, since the Printer objects is the duality is not needed for Job objects, since the Printer objects is the
factory for Job objects, and the Printer object will generate the factory for Job objects, and the Printer object will generate the
correct URI for new Job objects depending on the Printer object's correct URI for new Job objects depending on the Printer object's
security configuration. security configuration.
8.3 URIs for each authentication mechanisms 8.3 URIs for each authentication mechanisms
Each URI has an authentication mechanism associated with it. If the URI Each URI has an authentication mechanism associated with it. If the URI
is the i'th element of "printer-uri-supported", then authentication is the i'th element of "printer-uri-supported", then authentication
mechanism is the "i th" element of "uri-authentication-supported". For a mechanism is the "i th" element of "uri-authentication-supported". For a
list of possible authentication mechanisms, see section 4.4.2. list of possible authentication mechanisms, see section 4.4.2.
Expires December 11, 1999
The Printer object uses an authentication mechanism to determine the The Printer object uses an authentication mechanism to determine the
name of the user performing an operation. This user is called the name of the user performing an operation. This user is called the
"authenticated user". The credibility of authentication depends on the "authenticated user". The credibility of authentication depends on the
mechanism that the Printer uses to obtain the user.s name. When the mechanism that the Printer uses to obtain the user.s name. When the
authentication mechanism is @none@, all authenticated users are authentication mechanism is @none@, all authenticated users are
"anonymous". "anonymous".
During job creation operations, the Printer initializes the value of the During job creation operations, the Printer initializes the value of the
"job-originating-user-name" attribute (see section 4.3.6) to be the "job-originating-user-name" attribute (see section 4.3.6) to be the
authenticated user. The authenticated user is this case is called the authenticated user. The authenticated user is this case is called the
skipping to change at page 141, line 43 skipping to change at page 142, line 5
authentication. With the first policy, the job could not be cancelled in authentication. With the first policy, the job could not be cancelled in
this way. this way.
A client is able to determine the authentication mechanism used to A client is able to determine the authentication mechanism used to
create a job. It is the i'th value of the Printer.s "uri-authentication- create a job. It is the i'th value of the Printer.s "uri-authentication-
supported" attribute (see section 4.4.2), where i is the index of the supported" attribute (see section 4.4.2), where i is the index of the
element of the Printer.s "printer-uri-supported" attribute (see section element of the Printer.s "printer-uri-supported" attribute (see section
4.4.1) equal to the job.s "job-printer-uri" attribute (see section 4.4.1) equal to the job.s "job-printer-uri" attribute (see section
4.3.3). 4.3.3).
Expires December 23, 1999
8.4 Restricted Queries 8.4 Restricted Queries
In many IPP operations, a client supplies a list of attributes to be In many IPP operations, a client supplies a list of attributes to be
returned in the response. For security reasons, an IPP object may be returned in the response. For security reasons, an IPP object may be
configured not to return all attributes (or all values) that a client configured not to return all attributes (or all values) that a client
requests. The job attributes returned MAY depend on whether the requests. The job attributes returned MAY depend on whether the
requesting user is the same as the user that submitted the job. The IPP requesting user is the same as the user that submitted the job. The IPP
object MAY even return none of the requested attributes. In such cases, object MAY even return none of the requested attributes. In such cases,
the status returned is the same as if the object had returned all the status returned is the same as if the object had returned all
requested attributes. The client cannot tell by such a response whether requested attributes. The client cannot tell by such a response whether
the requested attribute was present or absent on the object. the requested attribute was present or absent on the object.
8.5 Operations performed by operators and system administrators 8.5 Operations performed by operators and system administrators
For the three printer operations Pause-Printer, Resume-Printer, and For the three printer operations Pause-Printer, Resume-Printer, and
Purge-Jobs (see sections 3.2.7, 3.2.8 and 3.2.9), the requesting user is Purge-Jobs (see sections 3.2.7, 3.2.8 and 3.2.9), the requesting user is
Expires December 11, 1999
intended to be an operator or administrator of the Printer object (see intended to be an operator or administrator of the Printer object (see
section 1). For operations on jobs, the requesting user is intended to section 1). For operations on jobs, the requesting user is intended to
be the job owner or may be an operator or administrator of the Printer be the job owner or may be an operator or administrator of the Printer
object. The means for authorizing an operator or administrator of the object. The means for authorizing an operator or administrator of the
Printer object are not specified in this document. Printer object are not specified in this document.
8.6 Queries on jobs submitted using non-IPP protocols 8.6 Queries on jobs submitted using non-IPP protocols
If the device that an IPP Printer is representing is able to accept jobs If the device that an IPP Printer is representing is able to accept jobs
using other job submission protocols in addition to IPP, it is using other job submission protocols in addition to IPP, it is
skipping to change at page 142, line 38 skipping to change at page 143, line 5
of authentication of such foreign jobs. One approach would be to treat of authentication of such foreign jobs. One approach would be to treat
all such foreign jobs as belonging to users other than the user of the all such foreign jobs as belonging to users other than the user of the
IPP client. Another approach would be for the foreign job to belong to IPP client. Another approach would be for the foreign job to belong to
'anonymous'. Only if the IPP client has been authenticated as an 'anonymous'. Only if the IPP client has been authenticated as an
operator or administrator of the IPP Printer object, could the foreign operator or administrator of the IPP Printer object, could the foreign
jobs be queried by an IPP request. Alternatively, if the security jobs be queried by an IPP request. Alternatively, if the security
policy is to allow users to query other users' jobs, then the foreign policy is to allow users to query other users' jobs, then the foreign
jobs would also be visible to an end-user IPP client using Get-Jobs and jobs would also be visible to an end-user IPP client using Get-Jobs and
Get-Job-Attributes. Get-Job-Attributes.
Expires December 23, 1999
9. References 9. References
[ASCII] [ASCII]
Coded Character Set - 7-bit American Standard Code for Information Coded Character Set - 7-bit American Standard Code for Information
Interchange (ASCII), ANSI X3.4-1986. This standard is the Interchange (ASCII), ANSI X3.4-1986. This standard is the
specification of the US-ASCII charset. specification of the US-ASCII charset.
[BCP-11] [BCP-11]
Bradner S., Hovey R., "The Organizations Involved in the IETF Bradner S., Hovey R., "The Organizations Involved in the IETF
Standards Process", 1996/10/29 (RFC 2028) Standards Process", 1996/10/29 (RFC 2028)
skipping to change at page 143, line 5 skipping to change at page 143, line 28
[HTPP] [HTPP]
J. Barnett, K. Carter, R. DeBry, "Initial Draft - Hypertext J. Barnett, K. Carter, R. DeBry, "Initial Draft - Hypertext
Printing Protocol - HTPP/1.0", October 1996, Printing Protocol - HTPP/1.0", October 1996,
ftp://ftp.pwg.org/pub/pwg/ipp/historic/htpp/overview.ps.gz ftp://ftp.pwg.org/pub/pwg/ipp/historic/htpp/overview.ps.gz
[IANA-CON] [IANA-CON]
Narte, T. and Alvestrand, H.T.: Guidelines for Writing an IANA Narte, T. and Alvestrand, H.T.: Guidelines for Writing an IANA
Considerations Section in RFCs, Work in Progress, draft-iesg-iana- Considerations Section in RFCs, Work in Progress, draft-iesg-iana-
considerations-04.txt, May 21, 1998. considerations-04.txt, May 21, 1998.
Expires December 11, 1999
[IANA-CS] [IANA-CS]
IANA Registry of Coded Character Sets: ftp://ftp.isi.edu/in- IANA Registry of Coded Character Sets: ftp://ftp.isi.edu/in-
notes/iana/assignments/character-sets notes/iana/assignments/character-sets
[IANA-MT] [IANA-MT]
IANA Registry of Media Types: ftp://ftp.isi.edu/in- IANA Registry of Media Types: ftp://ftp.isi.edu/in-
notes/iana/assignments/media-types/ notes/iana/assignments/media-types/
[IPP-IIG] [IPP-IIG]
Hastings, T., Manros, C., "Internet Printing Protocol/1.1: draft- Hastings, T., Manros, C., "Internet Printing Protocol/1.1: draft-
skipping to change at page 143, line 41 skipping to change at page 144, line 5
Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and
Basic Multilingual Plane, JTC1/SC2." Basic Multilingual Plane, JTC1/SC2."
[ISO8859-1] [ISO8859-1]
ISO/IEC 8859-1:1987, "Information technology -- 8-bit One-Byte ISO/IEC 8859-1:1987, "Information technology -- 8-bit One-Byte
Coded Character Set - Part 1: Latin Alphabet Nr 1", 1987, JTC1/SC2. Coded Character Set - Part 1: Latin Alphabet Nr 1", 1987, JTC1/SC2.
[ISO10175] [ISO10175]
ISO/IEC 10175 Document Printing Application (DPA), June 1996. ISO/IEC 10175 Document Printing Application (DPA), June 1996.
Expires December 23, 1999
[LDPA] [LDPA]
T. Hastings, S. Isaacson, M. MacKay, C. Manros, D. Taylor, P. T. Hastings, S. Isaacson, M. MacKay, C. Manros, D. Taylor, P.
Zehler, "LDPA - Lightweight Document Printing Application", Zehler, "LDPA - Lightweight Document Printing Application",
October 1996, October 1996,
ftp://ftp.pwg.org/pub/pwg/ipp/historic/ldpa/ldpa8.pdf.gz ftp://ftp.pwg.org/pub/pwg/ipp/historic/ldpa/ldpa8.pdf.gz
[P1387.4] [P1387.4]
Kirk, M. (editor), POSIX System Administration - Part 4: Printing Kirk, M. (editor), POSIX System Administration - Part 4: Printing
Interfaces, POSIX 1387.4 D8, 1994. Interfaces, POSIX 1387.4 D8, 1994.
[PSIS] Herriot, R. (editor), X/Open A Printing System [PSIS] Herriot, R. (editor), X/Open A Printing System
Interoperability Specification (PSIS), August 1995. Interoperability Specification (PSIS), August 1995.
[PWG] [PWG]
Printer Working Group, http://www.pwg.org. Printer Working Group, http://www.pwg.org.
[RFC1035] [RFC1035]
P. Mockapetris, "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION", P. Mockapetris, "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION",
RFC 1035, November 1987. RFC 1035, November 1987.
Expires December 11, 1999
[RFC1179] [RFC1179]
McLaughlin, L. III, (editor), "Line Printer Daemon Protocol" RFC McLaughlin, L. III, (editor), "Line Printer Daemon Protocol" RFC
1179, August 1990. 1179, August 1990.
[RFC1759] [RFC1759]
Smith, R., Wright, F., Hastings, T., Zilles, S., and Gyllenskog, Smith, R., Wright, F., Hastings, T., Zilles, S., and Gyllenskog,
J., "Printer MIB", RFC 1759, March 1995. J., "Printer MIB", RFC 1759, March 1995.
[RFC1766] [RFC1766]
H. Alvestrand, "Tags for the Identification of Languages", RFC H. Alvestrand, "Tags for the Identification of Languages", RFC
skipping to change at page 144, line 42 skipping to change at page 145, line 5
[RFC2046] [RFC2046]
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types.
N. Freed & N. Borenstein. November 1996. (Obsoletes RFC1521, N. Freed & N. Borenstein. November 1996. (Obsoletes RFC1521,
RFC1522, RFC1590), RFC 2046. RFC1522, RFC1590), RFC 2046.
[RFC2048] [RFC2048]
N. Freed, J. Klensin & J. Postel, "Multipurpose Internet Mail N. Freed, J. Klensin & J. Postel, "Multipurpose Internet Mail
Extension (MIME) Part Four: Registration Procedures". RFC 2048, Extension (MIME) Part Four: Registration Procedures". RFC 2048,
November 1996. November 1996.
[RFC2068] Expires December 23, 1999
R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee,
"Hypertext Transfer Protocol - HTTP/1.1", RFC 2068, January 1997
[RFC2069] [RFC2616]
J. Franks, P. Hallam-Baker, J. Hostetler, P. Leach, A. Luotonen, E. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P.
Sink, L. Stewart, "An Extension to HTTP: Digest Access Leach, T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1",
Authentication", RFC-2069, Jan 1997. RFC 2616, June 1999
[RFC2617]
J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A.
Luotonen, L. Stewart, "HTTP Authentication: Basic and Digest Access
Authentication", RFC 2617, June 1999.
[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
[RFC2228] [RFC2228]
M. Horowitz, S. Lunt, "FTP Security Extensions", RFC 2228, October M. Horowitz, S. Lunt, "FTP Security Extensions", RFC 2228, October
1997. 1997.
Expires December 11, 1999
[RFC2246] [RFC2246]
T. Dierks, C. Allen, "The TLS Protocol Version 1.0", RFC 2246, T. Dierks, C. Allen, "The TLS Protocol Version 1.0", RFC 2246,
January 1999. January 1999.
[RFC2277] [RFC2277]
H. Alvestrand, "IETF Policy on Character Sets and Languages" RFC H. Alvestrand, "IETF Policy on Character Sets and Languages" RFC
2277, January 1998. 2277, January 1998.
[RFC2278] [RFC2278]
N. Freed, J. Postel: "IANA CharSet Registration Procedures", RFC N. Freed, J. Postel: "IANA CharSet Registration Procedures", RFC
skipping to change at page 145, line 44 skipping to change at page 146, line 5
[RFC2566] [RFC2566]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, R. deBry, T. Hastings, R. Herriot, S. Isaacson, 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.
[RFC2567] [RFC2567]
Wright, D., "Design Goals for an Internet Printing Protocol", Wright, D., "Design Goals for an Internet Printing Protocol",
draft-ietf-ipp-req-03.txt, November, 1998. draft-ietf-ipp-req-03.txt, November, 1998.
Expires December 23, 1999
[RFC2568] [RFC2568]
Zilles, S., "Rationale for the Structure and Model and Protocol for Zilles, S., "Rationale for the Structure and Model and Protocol for
the Internet Printing Protocol", draft-ietf-ipp-rat-04.txt, the Internet Printing Protocol", draft-ietf-ipp-rat-04.txt,
November, 1998. November, 1998.
[RFC2569] [RFC2569]
Herriot, R., Hastings, T., Jacobs, N., Martin, J., "Mapping between Herriot, R., Hastings, T., Jacobs, N., Martin, J., "Mapping between
LPD and IPP Protocols", draft-ietf-ipp-lpd-ipp-map-05.txt, November LPD and IPP Protocols", draft-ietf-ipp-lpd-ipp-map-05.txt, November
1998. 1998.
[RFC2579] [RFC2579]
K. McCloghrie, D. Perkins, J. Schoenwaelder, "Textual Conventions K. McCloghrie, D. Perkins, J. Schoenwaelder, "Textual Conventions
for SMIv2" RFC 2579 (Also STD0058), April 1999, . for SMIv2" RFC 2579 (Also STD0058), April 1999, .
[RFC2616]
R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P.
Leach, T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1",
RFC 2616, June 1999.
[RFC2617]
J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A.
Luotonen, L. Stewart, "HTTP Authentication: Basic and Digest Access
Authentication", RFC 2617, June 1999.
[SSL] [SSL]
Netscape, The SSL Protocol, Version 3, (Text version 3.02), Netscape, The SSL Protocol, Version 3, (Text version 3.02),
November 1996. November 1996.
Expires December 11, 1999
[SWP] [SWP]
P. Moore, B. Jahromi, S. Butler, "Simple Web Printing SWP/1.0", May P. Moore, B. Jahromi, S. Butler, "Simple Web Printing SWP/1.0", May
7, 1997, ftp://ftp.pwg.org/pub/pwg/ipp/new_PRO/swp9705.pdf 7, 1997, ftp://ftp.pwg.org/pub/pwg/ipp/new_PRO/swp9705.pdf
10. Author's Address 10. Author's Address
Scott A. Isaacson (Editor) Scott A. Isaacson (Editor)
Novell, Inc. Novell, Inc.
122 E 1700 S 122 E 1700 S
Provo, UT 84606 Provo, UT 84606
skipping to change at page 146, line 31 skipping to change at page 147, line 5
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
Expires December 23, 1999
Robert Herriot Robert Herriot
Xerox Corp. Xerox Corp.
3400 Hill View Ave, Building 1 3400 Hill View Ave, Building 1
Palo Alto, CA 94304 Palo Alto, CA 94304
Phone: 650-813-7696 Phone: 650-813-7696
Fax: 650-813-6860 Fax: 650-813-6860
e-mail: robert.herriot@pahv.xerox.com e-mail: robert.herriot@pahv.xerox.com
Roger deBry Roger deBry
skipping to change at page 147, line 5 skipping to change at page 147, line 35
San Diego, CA 95123 San Diego, CA 95123
Phone: (619) 874-6543 Phone: (619) 874-6543
Fax: (619) 279-8424 Fax: (619) 279-8424
e-mail: papowell@astart.com e-mail: papowell@astart.com
IPP Mailing List: ipp@pwg.org IPP Mailing List: ipp@pwg.org
IPP Mailing List Subscription: ipp-request@pwg.org IPP Mailing List Subscription: ipp-request@pwg.org
IPP Web Page: http://www.pwg.org/ipp/ IPP Web Page: http://www.pwg.org/ipp/
Expires December 11, 1999
Implementers of this specification document are encouraged to join IPP Implementers of this specification document are encouraged to join IPP
Mailing List in order to participate in any discussions of clarification Mailing List in order to participate in any discussions of clarification
issues and review of registration proposals for additional attributes issues and review of registration proposals for additional attributes
and values. and values.
Other Participants: Other Participants:
Chuck Adams - Tektronix Shivaun Albright - HP Chuck Adams - Tektronix Shivaun Albright - HP
Jeff Barnett - IBM Ron Bergman - Dataproducts Corp. Jeff Barnett - IBM Ron Bergman - Dataproducts Corp.
Sylvan Butler - HP Keith Carter - IBM Corporation Sylvan Butler - HP Keith Carter - IBM Corporation
skipping to change at page 147, line 32 skipping to change at page 148, line 4
Systems Systems
Sue Gleeson - Digital Charles Gordon - Osicom Sue Gleeson - Digital Charles Gordon - Osicom
Brian Grimshaw - Apple Jerry Hadsell - IBM Brian Grimshaw - Apple Jerry Hadsell - IBM
Richard Hart - Digital Stephen Holmstead Richard Hart - Digital Stephen Holmstead
Zhi-Hong Huang - Zenographics Babek Jahromi - Microsoft Zhi-Hong Huang - Zenographics Babek Jahromi - Microsoft
Swen Johnson - Xerox David Kellerman - Northlake Swen Johnson - Xerox David Kellerman - Northlake
Software Software
Carl Kugler - IBM Dave Kuntz - Hewlett-Packard Carl Kugler - IBM Dave Kuntz - Hewlett-Packard
Takami Kurono - Brother Rick Landau - Digital Takami Kurono - Brother Rick Landau - Digital
Scott Lawrence - Agranot Systems Greg LeClair - Epson Scott Lawrence - Agranot Systems Greg LeClair - Epson
Expires December 23, 1999
Harry Lewis - IBM Tony Liao - Vivid Image Harry Lewis - IBM Tony Liao - Vivid Image
Roy Lomicka - Digital Pete Loya - HP Roy Lomicka - Digital Pete Loya - HP
Ray Lutz - Cognisys Mike MacKay - Novell, Inc. Ray Lutz - Cognisys Mike MacKay - Novell, Inc.
Daniel Manchala - Xerox Carl-Uno Manros - Xerox Daniel Manchala - Xerox Carl-Uno Manros - Xerox
Jay Martin - Underscore Larry Masinter - Xerox Jay Martin - Underscore Larry Masinter - Xerox
Stan McConnell - Xerox Ira McDonald - High North Inc. Stan McConnell - Xerox Ira McDonald - High North Inc.
Peter Michalek - Shinesoft Paul Moore - Microsoft Peter Michalek - Shinesoft Paul Moore - Microsoft
Tetsuya Morita - Ricoh Yuichi Niwa - Ricoh Tetsuya Morita - Ricoh Yuichi Niwa - Ricoh
Pat Nogay - IBM Ron Norton - Printronics Pat Nogay - IBM Ron Norton - Printronics
Bob Pentecost - HP Rob Rhoads - Intel Bob Pentecost - HP Rob Rhoads - Intel
skipping to change at page 148, line 5 skipping to change at page 149, line 5
Kris Schoff - HP Bob Setterbo - Adobe Kris Schoff - HP Bob Setterbo - Adobe
Devon Taylor - Novell, Inc. Mike Timperman - Lexmark Devon Taylor - Novell, Inc. Mike Timperman - Lexmark
Randy Turner - Sharp Bill Wagner - Osicom Randy Turner - Sharp Bill Wagner - Osicom
Jim Walker - DAZEL Chris Wellens - Interworking Labs Jim Walker - DAZEL Chris Wellens - Interworking Labs
Rob Whittle - Novell, Inc. Jasper Wong - Xionics Rob Whittle - Novell, Inc. Jasper Wong - Xionics
Don Wright - Lexmark Rick Yardumian - Xerox Don Wright - Lexmark Rick Yardumian - Xerox
Lloyd Young - Lexmark Atsushi Yuki - Kyocera Lloyd Young - Lexmark Atsushi Yuki - Kyocera
Peter Zehler - Xerox Frank Zhao - Panasonic Peter Zehler - Xerox Frank Zhao - Panasonic
Steve Zilles - Adobe Steve Zilles - Adobe
Expires December 11, 1999 Expires December 23, 1999
11. Formats for IPP Registration Proposals 11. Formats for IPP Registration Proposals
In order to propose an IPP extension for registration, the proposer must In order to propose an IPP extension for registration, the proposer must
submit an application to IANA by email to "iana@iana.org" or by filling submit an application to IANA by email to "iana@iana.org" or by filling
out the appropriate form on the IANA web pages (http://www.iana.org). out the appropriate form on the IANA web pages (http://www.iana.org).
This section specifies the required information and the formats for This section specifies the required information and the formats for
proposing registrations of extensions to IPP as provided in Section 6 proposing registrations of extensions to IPP as provided in Section 6
for: for:
skipping to change at page 149, line 5 skipping to change at page 150, line 5
Note: For type3 keywords, the proposer will be the point of contact for Note: For type3 keywords, the proposer will be the point of contact for
the approved registration specification, if any maintenance of the the approved registration specification, if any maintenance of the
registration specification is needed. registration specification is needed.
11.3 Type2 enum attribute values registration 11.3 Type2 enum attribute values registration
Type of registration: type2 enum attribute value Type of registration: type2 enum attribute value
Name of attribute to which this enum specification is to be added: Name of attribute to which this enum specification is to be added:
Keyword symbolic name of this enum value: Keyword symbolic name of this enum value:
Expires December 11, 1999 Expires December 23, 1999
Numeric value (to be assigned by the IPP Designated Expert in Numeric value (to be assigned by the IPP Designated Expert in
consultation with IANA): consultation with IANA):
Specification of this enum value (follow the style of IPP Model Section Specification of this enum value (follow the style of IPP Model Section
4.1.4): 4.1.4):
Name of proposer: Name of proposer:
Address of proposer: Address of proposer:
Email address of proposer: Email address of proposer:
Note: For type2 enums, the Designated Expert will be the point of Note: For type2 enums, the Designated Expert will be the point of
skipping to change at page 150, line 5 skipping to change at page 151, line 5
Specification of this attribute (follow the style of IPP Model Section Specification of this attribute (follow the style of IPP Model Section
4.2): 4.2):
Name of proposer: Name of proposer:
Address of proposer: Address of proposer:
Email address of proposer: Email address of proposer:
Note: For attributes, the IPP Designated Expert will be the point of Note: For attributes, the IPP Designated Expert will be the point of
contact for the approved registration specification, if any maintenance contact for the approved registration specification, if any maintenance
of the registration specification is needed. of the registration specification is needed.
Expires December 11, 1999 Expires December 23, 1999
11.6 Attribute Syntax registration 11.6 Attribute Syntax registration
Type of registration: attribute syntax Type of registration: attribute syntax
Proposed name of this attribute syntax: Proposed name of this attribute syntax:
Type of attribute syntax (integer, octetString, character-string, see Type of attribute syntax (integer, octetString, character-string, see
[IPP-PRO]): [IPP-PRO]):
Numeric value (to be assigned by the IPP Designated Expert in Numeric value (to be assigned by the IPP Designated Expert in
consultation with IANA): consultation with IANA):
Specification of this attribute (follow the style of IPP Model Section Specification of this attribute (follow the style of IPP Model Section
skipping to change at page 150, line 32 skipping to change at page 151, line 32
point of contact for the approved registration specification, if any point of contact for the approved registration specification, if any
maintenance of the registration specification is needed. maintenance of the registration specification is needed.
11.7 Operation registration 11.7 Operation registration
Type of registration: operation Type of registration: operation
Proposed name of this operation: Proposed name of this operation:
Numeric operation-id value (to be assigned by the IPP Designated Expert Numeric operation-id value (to be assigned by the IPP Designated Expert
in consultation with IANA): in consultation with IANA):
Object Target (Job, Printer, etc. that operation is upon): Object Target (Job, Printer, etc. that operation is upon):
Specification of this attribute (follow the style of IPP Model Section Specification of this operation (follow the style of IPP Model Section
3): 3):
Name of proposer: Name of proposer:
Address of proposer: Address of proposer:
Email address of proposer: Email address of proposer:
Note: For operations, the IPP Designated Expert will be the point of Note: For operations, the IPP Designated Expert will be the point of
contact for the approved registration specification, if any maintenance contact for the approved registration specification, if any maintenance
of the registration specification is needed. of the registration specification is needed.
11.8 Attribute Group registration 11.8 Attribute Group registration
skipping to change at page 151, line 5 skipping to change at page 152, line 5
Specification of this attribute group (follow the style of IPP Model Specification of this attribute group (follow the style of IPP Model
Section 3): Section 3):
Name of proposer: Name of proposer:
Address of proposer: Address of proposer:
Email address of proposer: Email address of proposer:
Note: For attribute groups, the IPP Designated Expert will be the point Note: For attribute groups, the IPP Designated Expert will be the point
of contact for the approved registration specification, if any of contact for the approved registration specification, if any
maintenance of the registration specification is needed. maintenance of the registration specification is needed.
Expires December 11, 1999 Expires December 23, 1999
11.9 Status code registration 11.9 Status code registration
Type of registration: status code Type of registration: status code
Keyword symbolic name of this status code value: Keyword symbolic name of this status code value:
Numeric value (to be assigned by the IPP Designated Expert in Numeric value (to be assigned by the IPP Designated Expert in
consultation with IANA): consultation with IANA):
Operations that this status code may be used with: Operations that this status code may be used with:
Specification of this status code (follow the style of IPP Model Section Specification of this status code (follow the style of IPP Model Section
13 APPENDIX B: Status Codes and Suggested Status Code Messages): 13 APPENDIX B: Status Codes and Suggested Status Code Messages):
skipping to change at page 152, line 5 skipping to change at page 153, line 5
entities within the abstract model (see section 4.1.2.3). Attribute entities within the abstract model (see section 4.1.2.3). Attribute
names, some attribute values, attribute syntaxes, and attribute group names, some attribute values, attribute syntaxes, and attribute group
names are represented as keywords. names are represented as keywords.
12.2.2 Attributes 12.2.2 Attributes
An attribute is an item of information that is associated with an An attribute is an item of information that is associated with an
instance of an IPP object. An attribute consists of an attribute name instance of an IPP object. An attribute consists of an attribute name
and one or more attribute values. Each attribute has a specific and one or more attribute values. Each attribute has a specific
Expires December 11, 1999 Expires December 23, 1999
attribute syntax. All object attributes are defined in section 4 and attribute syntax. All object attributes are defined in section 4 and
all operation attributes are defined in section 3. all operation attributes are defined in section 3.
Job Template Attributes are described in section 4.2. The client Job Template Attributes are described in section 4.2. The client
optionally supplies Job Template attributes in a create request optionally supplies Job Template attributes in a create request
(operation requests that create Job objects). The Printer object has (operation requests that create Job objects). The Printer object has
associated attributes which define supported and default values for the associated attributes which define supported and default values for the
Printer. Printer.
skipping to change at page 153, line 5 skipping to change at page 154, line 5
By definition, a Printer object supports an attribute only if that By definition, a Printer object supports an attribute only if that
Printer object responds with the corresponding attribute populated with Printer object responds with the corresponding attribute populated with
some value(s) in a response to a query for that attribute. A Printer some value(s) in a response to a query for that attribute. A Printer
object supports an attribute value if the value is one of the Printer object supports an attribute value if the value is one of the Printer
object's "supported values" attributes. The device behind a Printer object's "supported values" attributes. The device behind a Printer
object may exhibit a behavior that corresponds to some IPP attribute, object may exhibit a behavior that corresponds to some IPP attribute,
but if the Printer object, when queried for that attribute, doesn't but if the Printer object, when queried for that attribute, doesn't
respond with the attribute, then as far as IPP is concerned, that respond with the attribute, then as far as IPP is concerned, that
implementation does not support that feature. If the Printer object's implementation does not support that feature. If the Printer object's
Expires December 11, 1999 Expires December 23, 1999
"xxx-supported" attribute is not populated with a particular value (even "xxx-supported" attribute is not populated with a particular value (even
if that value is a legal value for that attribute), then that Printer if that value is a legal value for that attribute), then that Printer
object does not support that particular value. object does not support that particular value.
A conforming implementation MUST support all REQUIRED attributes. A conforming implementation MUST support all REQUIRED attributes.
However, even for REQUIRED attributes, conformance to IPP does not However, even for REQUIRED attributes, conformance to IPP does not
mandate that all implementations support all possible values mandate that all implementations support all possible values
representing all possible job processing behaviors and features. For representing all possible job processing behaviors and features. For
example, if a given instance of a Printer supports only certain document example, if a given instance of a Printer supports only certain document
skipping to change at page 154, line 5 skipping to change at page 155, line 5
"finishings-supported" Printer object attribute. Doing so, would "finishings-supported" Printer object attribute. Doing so, would
enable end users to be aware of and make use of the stapling enable end users to be aware of and make use of the stapling
feature using IPP attributes. feature using IPP attributes.
Even though support for Job Template attributes by a Printer object is Even though support for Job Template attributes by a Printer object is
OPTIONAL, it is RECOMMENDED that if the device behind a Printer object OPTIONAL, it is RECOMMENDED that if the device behind a Printer object
is capable of realizing any feature or function that corresponds to an is capable of realizing any feature or function that corresponds to an
IPP attribute and some associated value, then that implementation SHOULD IPP attribute and some associated value, then that implementation SHOULD
support that IPP attribute and value. support that IPP attribute and value.
Expires December 11, 1999 Expires December 23, 1999
The set of values in any of the supported value attributes is set The set of values in any of the supported value attributes is set
(populated) by some administrative process or automatic sensing (populated) by some administrative process or automatic sensing