1 - 3 - 7 - 8 - A - B - C - D - E - F - G - H - I - J - L - M - N - O - P - Q - R - S - T - U - V - W
client
Click on the red underlined text to get to the source
... attributes that form a generic directory schema. These attributes
are useful when registering a Printer so that a client can find the
Printer not just by name, but by filtered searches as well.
- Section 17 is an appendix summarizing the additions and changes
...
... distributed computing environment where requesters of print services
(clients, applications, printer drivers, etc.) cooperate and interact
with print service providers. This model and semantics ...
... describes a simple, abstract model for IPP even though the underlying
configurations may be complex "n-tier" client/server systems. An
important simplifying step in the IPP model is to expose only the key
...
... | | | |
| +---+------------+---+ |
N D S | | IPP Client |------------+
O I E | +---------+----------+
T R C | |
...
... which only represents the Printer object.
IPP clients implement the IPP protocol on the client side and give
...
... 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 ...
... and fan-out figures below represent configurations 3a and 3b.
In this document the term "client" refers to a software entity that
sends IPP ...
... IPP Printer object and accepts IPP
operation responses. A client MAY be:
1. contained within software controlled by an end user, e.g.
...
... +---------------+
O +--------+ | ########### |
/|\ | client |------------IPP------------># Printer # |
/ \ +--------+ | # Object # |
...
... +---------------+
O +--------+ ########### | |
/|\ | client |--IPP--># Printer #-any->| output device |
...
... any/ | |
O +--------+ ########### / +---------------+
/|\ | client |-IPP-># Printer #--*
/ \ +--------+ # Object # \ +---------------+
...
... create a Job object is sent
in a create request from the end user via an IPP Client to the
Printer object. The Printer object validates the create ...
... groups as follows:
- "job-template" attributes: These attributes can be supplied by
the client or end user and include job processing instructions
which are intended to override any Printer object defaults
and/or instructions embedded within the document data. (See
...
... - "job-description" attributes: These attributes describe the Job
object's identification, state, size, etc. The client supplies
some of these attributes, and the Printer object generates
others. (See section 4.3)
...
... When a job is submitted to the Printer object via a create request,
the client supplies only a single Printer object URI. The client
...
... the client supplies only a single Printer object URI. The client
supplied Printer object URI MUST be one of the values in the
...
... 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
...
... object as values in one its attributes.
When a client submits a create request to the Printer object, the
Printer object validates ...
... URI which is stored
in the "job-uri" Job attribute. This URI is then used by clients as
the target for subsequent Job operations. The Printer object
...
... communication
channel that is not secured with SSL3 (using a simple "http" schemed
URI). If a client were to submit a job using the secure URI, the
Printer object would assign the new Job object a secure URI ...
... Printer object would assign the new Job object a secure URI as well.
If a client were to submit a job using the open-channel URI, the
...
... "job-printer-uri" attribute. This is a reference back to the Printer
object that created the Job object. If a client only has access to a
Job object's "job-uri" identifier, the client ...
... client only has access to a
Job object's "job-uri" identifier, the client can query the Job's
"job-printer-uri" attribute in order to determine which Printer
...
... than one URI, the Printer object picks the one URI supplied by the
client when creating the job to build the value for and to populate
the Job's "job-printer-uri" attribute.
...
... object to which the create request was originally submitted.
Therefore, in order to allow both types of client access to IPP Job
objects (either by Job URI ...
... 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 constraints imposed on the client ...
... clients to access Printer objects and Job
objects no matter the local constraints imposed on the client
implementation.
...
... the scope of this IPP/1.1 document. A Job object's name is
optionally chosen and supplied by the IPP client submitting the job.
If the client does not supply a Job object name, the Printer object
...
... optionally chosen and supplied by the IPP client submitting the job.
If the client does not supply a Job object name, the Printer object
generates a name for the new Job object. In all cases, the name only
has local meaning.
...
... Printer object's "printer-name" attribute contains the name.
- Each Job object has a name (which is not necessarily unique).
The client optionally supplies this name in the create request.
If the client ...
... client optionally supplies this name in the create request.
If the client does not supply this name, the Printer object
generates a name for the Job object. The Job object's "job-name"
attribute contains the name.
...
... IPP objects support operations. An operation consists of a request
and a response. When a client communicates with an IPP object, the
client ...
... client communicates with an IPP object, the
client issues an operation request to the URI for that object.
Operation requests and responses have parameters that identify the
...
... value. Valid values are defined in the "operations-supported"
Printer attribute section (see section 4.4.15). The client specifies
which operation is being requested by supplying the correct
"operation-id" value.
...
...
In addition, every invocation of an operation is identified by a
"request-id" value. For each request, the client chooses the
"request-id" which MUST be an integer (possibly unique depending on
...
... "request-id" which MUST be an integer (possibly unique depending on
client requirements) in the range from 1 to 2**31 - 1 (inclusive).
...
... requirements) in the range from 1 to 2**31 - 1 (inclusive).
This "request-id" allows clients to manage multiple outstanding
requests. The receiving IPP ...
... receiving IPP object copies all 32-bits of the client-
supplied "request-id" attribute into the response so that the client
...
... 32-bits of the client-
supplied "request-id" attribute into the response so that the client
can match the response with the correct outstanding request, even if
the "request-id" is out of range ...
... connection oriented protocol that would make it impossible for a
client to receive responses in any order other than the order in
which the corresponding requests were sent. In such cases, the
"request-id" attribute would not be essential for correct protocol
operation ...
... operation attributes are REQUIRED and which are OPTIONAL
for an IPP object to support and which attributes a client MUST
supply in a request and an IPP object MUST supply in a response.
...
... IPP object MUST supply in a response.
- Job Template Attributes: These attributes affect the processing
of a job. A client OPTIONALLY supplies Job Template Attributes
in a create request, and the receiving ...
... Object Attributes. The "ipp-attribute-fidelity" operation
attribute affects processing of all client-supplied Job Template
attributes (see sections 3.2.1.2 and 15 for a full description
of "ipp-attribute-fidelity" and its relationship to other
...
... query operation directed at a Printer object.
- Unsupported Attributes: In a create request, the client supplies
a set of Operation and Job Template attributes. If any of these
attributes or their values is unsupported by the Printer object,
...
... the Printer object returns the set of unsupported attributes in
the response. Sections 3.1.7, 3.2.1.2, and 15 give a full
description of how Job Template attributes supplied by the
client in a create request are processed by the Printer object
and how unsupported attributes are returned to the client ...
... by the
client in a create request are processed by the Printer object
and how unsupported attributes are returned to the client.
Because of extensibility, any IPP object might receive a request
...
... Unsupported Attribute group is defined for all operation
responses for returning unsupported attributes that the client
supplied in the request.
...
... the same name occurs more than once, the group is mal-formed.
Clients MUST NOT submit such malformed requests and Printers MUST NOT
return such malformed responses. If such a malformed request is
submitted to a Printer, the Printer MUST either (1) reject the
...
... return such malformed responses. If such a malformed request is
submitted to a Printer, the Printer MUST either (1) reject the
request with the 'client-error-bad-request' status code (see section
13.1.4.1) or (2) process the request normally after selecting only
...
... IPP objects to support; the others
are OPTIONAL (see section 5.2.2). Therefore, before using an
OPTIONAL operation, a client SHOULD first use the REQUIRED Get-
Printer-Attributes operation to query the Printer's "operations-
...
... query the Printer's "operations-
supported" attribute in order to determine which OPTIONAL Printer and
Job operations are actually supported. The client SHOULD NOT use an
OPTIONAL operation that is not supported. When an IPP object
...
...
The client MUST supply and the Printer object MUST support the
following REQUIRED operation attributes in every IPP ...
... encoding method) used by any 'text' and
'name' attributes that the client is supplying in this request.
It also identifies the charset that the Printer object MUST use
...
... of the 'text' and 'name' attribute syntaxes.
All clients and IPP objects MUST support the 'utf-8' charset
...
... IANA [IANA-CS]. If the Printer object
does not support the client supplied charset value, the Printer
object MUST reject the request, set the "attributes-charset ...
... object MUST reject the request, set the "attributes-charset" to
'utf-8' in the response, and return the 'client-error-charset-
not-supported' status code ...
... charset(s) supported as the values of the "charset-supported"
Printer attribute (see Section 4.4.18), so that the client can
query to determine which charset ...
... interoperability with multiple IPP object implementations, a
client may want to supply 'utf-8' in the "attributes-charset"
operation attribute ...
... charset"
operation attribute, even though the client is only passing and
able to present a simpler charset, such as US-ASCII ...
... charset convert) those characters that are returned in
the response that it cannot present to its user. On the other
hand, if both the client and the IPP objects also support a
charset ...
... IPP objects also support a
charset in common besides utf-8, the client may want to use
that charset in order to avoid charset ...
... operation attribute identifies the natural language used
by any 'text' and 'name' attributes that the client is
supplying in this request. This attribute also identifies the
natural language ...
... contained Job objects for all text strings generated by the IPP
object. A client MAY query this attribute to determine which
natural language ...
... Printer object MUST be able to generate these text strings in
any of its supported natural languages. If the client requests
a natural language that is not supported, the Printer object
...
... language-configured" attribute" (see Section 4.4.19).
For other 'text' and 'name' attributes supplied by the client,
authentication system, operator, system administrator ...
... "attributes-natural-language" operation attribute, the client
MUST use the Natural Language Override mechanism (see sections
...
... Language Override mechanism (see sections
4.1.1.2 and 4.1.2.2) for each such attribute value supplied.
The client MAY use the Natural Language Override mechanism
redundantly, i.e., use it even when the value is in the same
...
... Operation attribute). That is the IPP
object accepts all client supplied values no matter what the
values are in the Printer object's "generated-natural-
language ...
... natural-language-supported", only applies to generated
messages, not client supplied messages. The IPP object MUST
remember that natural language ...
... IPP object MUST
remember that natural language for all client-supplied
attributes, and when returning those attributes in response to
a query ...
... 4.1.2.2 nameWithLanguage).
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 the natural language ...
... object will use the value of the "job-name" attribute to
populate the Job object's "job-name" attribute. Whenever any
client queries the Job object's "job-name" attribute, the IPP
...
... Override.
Clients SHOULD NOT supply 'text' or 'name' attributes that use an
illegal combination of natural language and charset ...
...
- In a create request: If the client supplies a text or name
attribute (for example, the "job-name" operation attribute) that
...
... attribute (for example, the "job-name" operation attribute) that
uses an apparently incompatible combination, it is a client
choice that does not affect the Printer object or its correct
operation. Therefore, the Printer object simply accepts the
...
... choice that does not affect the Printer object or its correct
operation. Therefore, the Printer object simply accepts the
client supplied value, stores it with the Job object, and
responds back with the same combination whenever the client (or
...
... client supplied value, stores it with the Job object, and
responds back with the same combination whenever the client (or
any client) queries ...
... responds back with the same combination whenever the client (or
any client) queries for that attribute.
- In a query ...
... query-type operation, like Get-Printer-Attributes: If the
client requests an apparently incompatible combination, the
Printer object responds (as described in section 3.1.4.2) using
the Printer's configured natural language ...
... language rather than the
natural language requested by the client.
In either case, the Printer object does not reject the request
...
... charset and natural language information, there is
never any question or ambiguity in how the client interprets the
response.
...
...
The Printer object MUST supply and the client MUST support the
following REQUIRED operation attributes in every IPP ...
... charset" operation attribute
supplied by the client in the request. If this is not possible
(i.e., the charset requested is not supported), the request
...
... possible basis in order to return the 'text' and 'name'
attributes in the charset requested by the client. However,
some information loss MAY occur during the charset conversion
...
... charset
stores the data in the charset supplied by the client or code
converts to one of the other supported charsets, depends on
...
... operation attribute, the IPP object NEED NOT return the same
value as that supplied by the client in the request. The IPP
object MAY return the natural language ...
... language-configured" attribute,
rather than the natural language supplied by the client. For
any 'text' or 'name' attribute or status message in the
...
... object's "printer-uri-supported" attribute). Even if the Printer
object supports more than one URI, the client supplies only one URI
as the target ...
... URI
as the target of the operation. The client identifies the target
object by supplying the correct URI ...
... - The Job object itself using the Job object's URI. In this case,
the client identifies the target object by supplying the correct
URI ...
... Printer object that created the Job object generated the Job ID,
it MUST be able to correctly associate the client supplied Job
ID with the correct Job object. The client supplies the Printer
...
... it MUST be able to correctly associate the client supplied Job
ID with the correct Job object. The client supplies the Printer
object's URI in the "printer-uri (uri)" operation attribute ...
... If the operation is directed at the Job object directly using the Job
object's URI, the client MUST NOT include the redundant "job-id"
operation attribute.
...
... URI, then default port number implied by that URI
scheme MUST be used by the client to contact the IPP object.
...
...
The status code is intended for use by automata. A client
implementation of IPP SHOULD convert status code ...
... status message for each
status code for use by the client when the user's natural language is
English.
...
... response. See section 13.
If the client supplies unsupported values for the following
parameters or Operation attributes, the Printer object MUST reject
...
... operation-id server-error-operation-not-supported
attributes-charset client-error-charset-not-supported
compression ...
... charset-not-supported
compression client-error-compression-not-supported
document-format client ...
... client-error-compression-not-supported
document-format client-error-document-format-not-supported
document-uri client-error-uri-scheme-not-supported,
...
... document-format client-error-document-format-not-supported
document-uri client-error-uri-scheme-not-supported,
client-error-document-access-error
...
... document-uri client-error-uri-scheme-not-supported,
client-error-document-access-error
If the client ...
... client-error-document-access-error
If the client supplies unsupported values for other attributes, or
unsupported attributes, the Printer returns the status code defined
...
... status message is intended for
the human end user. If a response does include a "status-message"
attribute, an IPP client NEED NOT examine or display the messages,
however it SHOULD do so in some implementation specific manner. The
"status-message" is especially useful for a later version ...
... human
user to accompany a status code that an earlier version of a client
might not understand.
...
... language indicated by the value of the "attributes-
natural-language" in the client request if supported, otherwise the
Printer object uses the value in the Printer object's own "natural-
language ...
... status message for the following error status codes (see section 13):
'client-error-bad-request', 'client-error-charset-not-supported',
...
... error status codes (see section 13):
'client-error-bad-request', 'client-error-charset-not-supported',
'server-error-internal-error', 'server-error-operation-not-
...
... localize the message, since it is intended for use by the system
administrator or other experienced technical persons. Localization
might obscure the technical meaning of such messages. Clients MUST
NOT attempt to parse the value of this attribute. See the
"document-access-error" operation attribute ...
... status code is one of the following: 'successful-
ok-ignored-or-substituted-attributes', 'successful-ok-conflicting-
attributes', 'client-error-attributes-or-values-not-supported' or
'client-error-conflicting-attributes'.
...
... attributes', 'client-error-attributes-or-values-not-supported' or
'client-error-conflicting-attributes'.
If the status code ...
... Group 2 rather than
sending an empty group. However, a client MUST be able to accept an
empty group.
...
... 2. The Printer object does support the attribute, but does not
support some or all of the particular attribute syntaxes or
values supplied by the client (i.e., the Printer object does
not have those attribute syntaxes or values in its
corresponding "xxx-supported" attribute).
...
... In the case of an unsupported attribute name, the Printer object
returns the client-supplied attribute with a substituted value of
'unsupported'. This value's syntax type is "out-of-band" and its
...
... In the case of a supported attribute with one or more unsupported
attribute syntaxes or values, the Printer object simply returns the
client-supplied attribute with the unsupported attribute syntaxes or
values as supplied by the client. This indicates support for the
...
... client-supplied attribute with the unsupported attribute syntaxes or
values as supplied by the client. This indicates support for the
attribute, but no support for that particular attribute syntax or
value. If the client ...
... by the client. This indicates support for the
attribute, but no support for that particular attribute syntax or
value. If the client supplies a multi-valued attribute with more
than one value and the Printer object supports the attribute but only
supports a subset of the client ...
... client supplies a multi-valued attribute with more
than one value and the Printer object supports the attribute but only
supports a subset of the client-supplied attribute syntaxes or
values, the Printer object
...
... version number and Y is the minor version
number. By including a version number in the client request, it
allows the client to identify which version ...
... version number in the client request, it
allows the client to identify which version of IPP it is interested
...
... in using, i.e., the version whose conformance requirements the client
may be depending upon the Printer to meet.
...
... IPP object does not support that major version number supplied
by the client, i.e., the major version field of the "version-number"
...
... version-number" that it supports that is
closest to the version number supplied by the client in the request.
There is no version negotiation ...
... status code from an IPP
object, a client SHOULD try again with a different version number. A
client ...
... client SHOULD try again with a different version number. A
client MAY also determine the versions supported either from a
directory that conforms to Appendix E (see section 16) or by querying
...
... document indicate structural or syntactic changes that make it
impossible for older version of IPP clients and Printer objects to
correctly parse and correctly process the new or changed attributes,
operations and responses. If the major version number ...
... operation
attributes (i.e., those attributes that an IPP object can ignore
without confusing clients)
- adding OPTIONAL (for an IPP object to support) operation
attribute ...
... groups (i.e., those attributes that an IPP object can
ignore without confusing clients)
- adding new attribute syntaxes
- adding OPTIONAL operations
...
... print job" and create a new Job object, a
client issues a create request. A create request is any one of
...
...
- The Print-Job Request: A client that wants to submit a print job
with only a single document uses the Print-Job ...
... with only a single document uses the Print-Job operation. The
operation allows for the client to "push" the document data to
the Printer object by including the document data in the request
itself.
...
...
- The Print-URI Request: A client that wants to submit a print job
with only a single document (where the Printer object "pulls"
...
... print job
with only a single document (where the Printer object "pulls"
the document data instead of the client "pushing" the data to
the Printer object) uses the Print-URI operation. In this
...
... the Printer object) uses the Print-URI operation. In this
case, the client includes in the request only a URI reference to
the document data (not the document data itself).
...
...
- The Create-Job Request: A client that wants to submit a print
job with multiple documents uses the Create-Job operation. This
...
... document for the newly create Job object). The Send-Document
operation includes the document data in the request (the client
"pushes" the document data to the printer), and the Send-URI
...
... Print-Job operation, however, for
performance reasons, the client SHOULD use the Print-Job operation
for all single document jobs. Also, Print-Job ...
... it.
Job submission time is the point in time when a client issues a
create request. The initial state ...
... received, the Printer MUST do the following:
1. Process the client supplied attributes and either accept or
reject the request
2. Validate ...
... reject the request
2. Validate the syntax of and support for the scheme of any client
supplied URI
...
...
1. Validating the document data
2. Validating the actual contents of any client supplied URI
(resolve the reference and follow the link ...
... Printer, MAY accept jobs that it does not have enough space for. In
such a situation, a Printer object MAY stop reading data from a
client for an indefinite period of time. A client MUST be prepared
for a write operation to block for an indefinite period of time (see
...
... such a situation, a Printer object MAY stop reading data from a
client for an indefinite period of time. A client MUST be prepared
for a write operation to block for an indefinite period of time (see
section 5.1 on client ...
... client MUST be prepared
for a write operation to block for an indefinite period of time (see
section 5.1 on client conformance).
When a Printer object has too little space for starting ...
... When receiving a 'server-error-busy' status-code in an operation
response, a client MUST be prepared for the Printer object to close
the connection before the client ...
... client MUST be prepared for the Printer object to close
the connection before the client has sent all of the data (especially
for the Print-Job operation). A client ...
... client has sent all of the data (especially
for the Print-Job operation). A client MUST be prepared to keep
submitting a create request until the IPP Printer ...
...
All Printer operations are directed at Printer objects. A client
MUST always supply the "printer-uri" operation attribute in order to
...
...
This REQUIRED operation allows a client to submit a print job with
only one document and supply the document data (rather than just a
...
... The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied by the client as described in section 8.3.
"job-name" (name(MAX)):
...
...
"job-name" (name(MAX)):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It contains the client
...
... The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It contains the client
supplied Job name. If this attribute is supplied by the
client, its value is used for the "job-name" attribute of the
...
... object MUST support this attribute. It contains the client
supplied Job name. If this attribute is supplied by the
client, its value is used for the "job-name" attribute of the
newly created Job object. The client ...
... by the
client, its value is used for the "job-name" attribute of the
newly created Job object. The client MAY automatically include
any information that will help the end-user distinguish amongst
...
... document subject, or source file name. If this attribute is
not supplied by the client, the Printer generates a name to use
in the "job-name" attribute of the newly created Job object
...
...
"ipp-attribute-fidelity" (boolean):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. The value 'true' indicates
that total fidelity to client ...
... client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. The value 'true' indicates
that total fidelity to client supplied Job Template attributes
and values is required, else the Printer object MUST reject the
Print-Job ...
...
"document-name" (name(MAX)):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It contains the client
...
... The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It contains the client
supplied document name. The document name MAY be different
than the Job name. Typically, the client software ...
... client
supplied document name. The document name MAY be different
than the Job name. Typically, the client software
automatically supplies the document name on behalf of the end
user by using a file name or an application generated name. If
...
... "compression" (type3 keyword):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute and the "compression-
...
... object MUST support this attribute and the "compression-
supported" attribute (see section 4.4.32). The client supplied
"compression" operation attribute ...
... compression
algorithm used on the document data. The following cases exist:
a) If the client omits this attribute, the Printer object MUST
assume that the data is not compressed (i.e. the Printer
follows the rules below as if the client ...
... client omits this attribute, the Printer object MUST
assume that the data is not compressed (i.e. the Printer
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
supported by the Printer object, i.e., the value is not one
of the values of the Printer object's "compression ...
... compression-
supported" attribute, the Printer object MUST reject the
request, and return the 'client-error-compression-not-
supported' status code ...
... unsupported attributes and values.
c) If the client supplies the attribute and the Printer object
supports the attribute value, the Printer object uses the
corresponding decompression algorithm ...
... algorithm fails before the Printer
returns an operation response, the Printer object MUST
reject the request and return the 'client-error-
compression-error' status code ...
...
"document-format" (mimeMediaType):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. The value of this
attribute identifies the format of the supplied document data.
...
... The following cases exist:
a) If the client does not supply this attribute, the Printer
object assumes that the document data is in the format
defined by the Printer object's "document-format-default"
...
... defined by the Printer object's "document-format-default"
attribute. (i.e. the Printer follows the rules below as if
the client supplied the "document-format" attribute with a
value equal to the printer's default value).
...
... value equal to the printer's default value).
b) If the client supplies this attribute, but the value is not
supported by the Printer object, i.e., the value is not one
of the values of the Printer object's "document-format-
...
... of the values of the Printer object's "document-format-
supported" attribute, the Printer object MUST reject the
request and return the 'client-error-document-format-not-
supported' status code.
...
... supported' status code.
c) If the client supplies this attribute and its value is
'application/octet-stream' (i.e. to be auto-sensed, see
...
... check occurs before the Printer returns an operation
response, then the Printer MUST reject the request and
return the 'client-error-document-format-not-supported'
status code.
...
... status code.
d) If the client supplies this attribute, and the value is
supported by the Printer object, the Printer is capable of
interpreting the document data.
...
... e) If interpreting of the document data fails before the
Printer returns an operation response, the Printer object
MUST reject the request and return the 'client-error-
document-format-error' status code.
...
... "document-natural-language" (naturalLanguage):
The client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute. This attribute
specifies the natural language ...
... "job-k-octets" (integer(0:MAX)):
The client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute and the "job-k-
octets-supported" attribute (see section 4.4.33). The client ...
... client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute and the "job-k-
octets-supported" attribute (see section 4.4.33). The client
supplied "job-k-octets" operation attribute identifies the
...
... total size of the document(s) in K octets being submitted (see
section 4.3.17.1 for the complete semantics). If the client
supplies the attribute and the Printer object supports the
attribute, the value of the attribute is used to populate the
...
...
For this attribute and the following two attributes ("job-
impressions", and "job-media-sheets"), if the client supplies
the attribute, but the Printer object does not support the
attribute, the Printer object ignores the client ...
... client supplies
the attribute, but the Printer object does not support the
attribute, the Printer object ignores the client-supplied
value. If the client supplies the attribute and the Printer
...
... attribute, the Printer object ignores the client-supplied
value. If the client supplies the attribute and the Printer
supports the attribute, and the value is within the range of
...
... the corresponding Printer object's "xxx-supported" attribute,
the Printer object MUST use the value to populate the Job
object's "xxx" attribute. If the client supplies the attribute
and the Printer supports the attribute, but the value is
outside the range ...
... attribute and its value to the Unsupported Attributes response
group, reject the request, and return the 'client-error-
attributes-or-values-not-supported' status code. If the client ...
... client-error-
attributes-or-values-not-supported' status code. If the client
does not supply the attribute, the Printer object MAY choose to
populate the corresponding Job object attribute ...
... "job-impressions" (integer(0:MAX)):
The client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute and the "job-
impressions-supported" attribute (see section 4.4.34). The
...
... object OPTIONALLY supports this attribute and the "job-
impressions-supported" attribute (see section 4.4.34). The
client supplied "job-impressions" operation attribute
identifies the total size in number of impressions of the
...
... "job-media-sheets" (integer(0:MAX)):
The client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute and the "job-media-
sheets-supported" attribute (see section 4.4.35). The client ...
... client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute and the "job-media-
sheets-supported" attribute (see section 4.4.35). The client
supplied "job-media-sheets" operation attribute identifies the
...
... Group 2: Job Template Attributes
The client OPTIONALLY supplies a set of Job Template attributes as
defined in section 4.2. If the client is not supplying any Job
...
... The client OPTIONALLY supplies a set of Job Template attributes as
defined in section 4.2. If the client is not supplying any Job
Template attributes in the request, the client SHOULD omit Group ...
... defined in section 4.2. If the client is not supplying any Job
Template attributes in the request, the client SHOULD omit Group 2
rather than sending an empty group ...
... Group 3: Document Content
The client MUST supply the document data to be processed.
In addition to the MANDATORY parameters ...
... default value
attributes for the supported Job Template attributes that were
not supplied by the client as IPP attribute or embedded
instructions in the document data.
...
...
The Printer object MUST return to the client the following sets of
attributes as part of the Print-Job Response:
...
... operation attribute as described in sections 13 and 3.1.6. If
the client supplies unsupported or conflicting Job Template
attributes or values, the Printer object MUST reject or accept
the Print-Job ...
... attributes or values, the Printer object MUST reject or accept
the Print-Job request depending on the whether the client
supplied a 'true' or 'false' value for the "ipp-attribute-
fidelity" operation attribute ...
... See section 3.1.7 for details on returning Unsupported Attributes.
The value of the "ipp-attribute-fidelity" supplied by the client
does not affect what attributes the Printer object returns in this
group ...
... the Print-Job operation is accepted or rejected. If the job is
accepted, the client may query the job using the Get-Job-
Attributes operation requesting the unsupported attributes that
...
... URI by
returning the contents of the REQUIRED "job-uri" Job object
attribute. The client uses the Job object's URI when directing
operations at the Job object. The Printer object always uses
...
... returning the REQUIRED "job-id" Job object attribute. The
client uses this "job-id" attribute in conjunction with the
"printer-uri" attribute used in the Print-Job ...
... state-message" attribute. If the Printer object supports
this attribute then it MUST be returned in the response. If
this attribute is not returned in the response, the client can
assume that the "job-state-message" attribute is not supported
...
... supports this attribute then it MUST be returned in the
response. If this attribute is not returned in the response,
the client can assume that the "number-of-intervening-jobs"
attribute is not supported and will not be returned in a
subsequent Job object query ...
... 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 data using the "document-uri" (uri) operation attribute ...
... URI, and MUST check for valid URI syntax. If the client-supplied URI
scheme is not supported, i.e. the value is not in the Printer
object's "referenced-uri-scheme-supported" attribute, the Printer
...
... URI
scheme is not supported, i.e. the value is not in the Printer
object's "referenced-uri-scheme-supported" attribute, the Printer
object MUST reject the request and return the 'client-error-uri-
scheme-not-supported' status code.
...
... part of the operation or subsequently. If the Printer determines an
accessibility problem before returning an operation response, it
rejects the request and returns the 'client-error-document-access-
error' status code. The Printer MAY also return a specific document
...
... This REQUIRED operation is similar to the Print-Job operation
(section 3.2.1) except that a client supplies no document data and
the Printer allocates no resources (i.e., it does not create a new
...
... create a new
Job object). This operation is used only to verify capabilities of a
printer object against whatever attributes are supplied by the client
in the Validate-Job request. By using the Validate-Job ...
... Validate-Job request. By using the Validate-Job operation a
client can validate that an identical Print-Job operation (with the
...
... security negotiation as the Print-Job operation
(see section 8), so that a client can check that the client and
Printer object security requirements ...
... Print-Job operation
(see section 8), so that a client can check that the client and
Printer object security requirements can be met before performing a
...
... The Validate-Job operation does not accept a "document-uri" attribute
in order to allow a client to check that the same Print-URI operation
will be accepted, since the client ...
... client to check that the same Print-URI operation
will be accepted, since the client doesn't send the data with the
Print-URI operation. The client ...
... client doesn't send the data with the
Print-URI operation. The client SHOULD just issue the Print-URI
request.
...
... Print-Job operation
(section 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 ...
... client does
not supply document data or any reference to document data. Also,
the client does not supply any of the "document-name", "document-
format", "compression", or "document-natural-language ...
... or Send-URI operations. In each of those operation requests, the
client OPTIONALLY supplies the "document-name", "document-format",
and "document-natural-language" attributes for each document in the
...
...
This REQUIRED operation allows a client to request the values of the
attributes of a Printer object. In the request, the client supplies
...
... This REQUIRED operation allows a client to request the values of the
attributes of a Printer object. In the request, the client supplies
the set of Printer attribute names and/or attribute group ...
... the implementation supports for Printer objects.
Since a client MAY request specific attributes or named groups, there
is a potential that there is some overlap. For example, if a client
requests ...
... client MAY request specific attributes or named groups, there
is a potential that there is some overlap. For example, if a client
requests, 'printer-name' and 'all', the client is actually requesting
the "printer-name" attribute twice: once by naming it explicitly, and
...
... groups, there
is a potential that there is some overlap. For example, if a client
requests, 'printer-name' and 'all', the client is actually requesting
the "printer-name" attribute twice: once by naming it explicitly, and
once by inclusion in the 'all' group ...
... group. In such cases, the Printer
object NEED NOT return each attribute only once in the response even
if it is requested multiple times. The client SHOULD NOT request the
same attribute in multiple ways.
...
... The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied by the client as described in section 8.3.
"requested-attributes ...
... "requested-attributes" (1setOf keyword):
The client OPTIONALLY supplies a set of attribute names and/or
attribute group ...
... group names in whose values the requester is
interested. The Printer object MUST support this attribute.
If the client omits this attribute, the Printer MUST respond as
if this attribute had been supplied with a value of 'all'.
...
...
"document-format" (mimeMediaType):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. This attribute is useful
for a Printer object to determine the set of supported
...
... document format. By specifying the
document format, the client can get the Printer object to
eliminate the attributes and values that are not supported for
a specific document format ...
... values of '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 the Get-Printer-Attributes operation to
obtain the attributes and values that will be used to
...
... does distinguish between different sets of supported values for
each different document format specified by the client, this
specialization applies only to the following Printer object
attributes:
...
... object attributes (including
"document-format-supported") remain invariant with respect to the
client supplied document format (except for new Printer
description attribute as registered according to section 6.2).
...
... description attribute as registered according to section 6.2).
If the client omits this "document-format" operation attribute,
the Printer object MUST respond as if the attribute had been
...
... supplied with the value of the Printer object's "document-format-
default" attribute. It is RECOMMENDED that the client always
supply a value for "document-format", since the Printer object's
"document-format-default" may be 'application/octet-stream ...
... attribute syntax in section 4.1.9.
If the client supplies a value for the "document-format" Operation
attribute that is not supported by the Printer, i.e., is not among
the values of the Printer object's "document-format-supported"
...
... the values of the Printer object's "document-format-supported"
attribute, the Printer object MUST reject the operation and return
the 'client-error-document-format-not-supported' status code.
...
... requested-attributes" operation
attribute with any supplied values (attribute keywords) that were
requested by the client but are not supported by the IPP object.
If the Printer object does return unsupported attributes
...
...
This REQUIRED operation allows a client to retrieve the list of Job
objects belonging to the target Printer object. The client ...
... client to retrieve the list of Job
objects belonging to the target Printer object. The client may also
supply a list of Job attribute names and/or attribute group ...
... The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied by the client as described in section 8.3.
"limit" (integer ...
... "limit" (integer(1:MAX)):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It is an integer value that
...
... object MUST support this attribute. It is an integer value that
determines the maximum number of jobs that a client will
receive from the Printer even if "which-jobs" or "my-jobs"
constrain which jobs are returned. The limit is a "stateless ...
... constrain which jobs are returned. The limit is a "stateless
limit" in that if the value supplied by the client is 'N', then
only the first 'N' jobs are returned in the Get-Jobs Response.
There is no mechanism to allow for the next 'M' jobs after the
...
... only the first 'N' jobs are returned in the Get-Jobs Response.
There is no mechanism to allow for the next 'M' jobs after the
first 'N' jobs. If the client does not supply this attribute,
the Printer object responds with all applicable jobs.
...
... "requested-attributes" (1setOf type2 keyword):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It is a set of Job
attribute names ...
... attribute group names are the same as those defined in the
Get-Job-Attributes operation in section 3.3.4. If the client
does not supply this attribute, the Printer MUST respond as if
the client ...
... client
does not supply this attribute, the Printer MUST respond as if
the client had supplied this attribute with two values: 'job-
uri' and 'job-id'.
...
...
"which-jobs" (type2 keyword):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It indicates which Job
objects MUST be returned by the Printer object. The values for
...
... the 'completed' value is supplied.
If a client supplies some other value, the Printer object MUST
copy the attribute and the unsupported value to the Unsupported
Attributes response group ...
... Attributes response group, reject the request, and return the
'client-error-attributes-or-values-not-supported' status code.
...
... status code.
If the client does not supply this attribute, the Printer
object MUST respond as if the client had supplied the attribute
...
... If the client does not supply this attribute, the Printer
object MUST respond as if the client had supplied the attribute
with a value of 'not-completed'.
...
...
"my-jobs" (boolean):
The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It indicates whether jobs
from all users or just the jobs submitted by the requesting
...
... user of this request MUST be considered as candidate jobs to be
returned by the Printer object. If the client does not supply
this attribute, the Printer object MUST respond as if the
client ...
... client does not supply
this attribute, the Printer object MUST respond as if the
client had supplied the attribute with a value of 'false',
i.e., jobs from all users. The means for authenticating the
requesting user and matching the jobs is described in section
...
... The Printer object returns all of the Job objects up to the number
specified by the "limit" attribute that match the criteria as defined
by the attribute values supplied by the client in the request. It is
possible that no Job objects are returned since there may literally
be no Job objects at the Printer, or there may be no Job objects that
...
... possible that no Job objects are returned since there may literally
be no Job objects at the Printer, or there may be no Job objects that
match the criteria supplied by the client. If the client requests
any Job attributes at all, there is a set of Job Object Attributes ...
... be no Job objects at the Printer, or there may be no Job objects that
match the criteria supplied by the client. If the client requests
any Job attributes at all, there is a set of Job Object Attributes
...
... requested-attributes" operation
attribute with any supplied values (attribute keywords) that were
requested by the client but are not supported by the IPP object.
If the Printer object does return unsupported attributes
...
... Jobs are returned in the following order:
- If the client requests all 'completed' Jobs (Jobs in the
'completed', 'aborted', or 'canceled' states), then the Jobs are
returned newest to oldest (with respect to actual completion
...
... returned newest to oldest (with respect to actual completion
time)
- If the client requests all 'not-completed' Jobs (Jobs in the
'pending', 'processing', 'pending-held', and 'processing-
stopped' states), then Jobs are returned in relative
...
...
This OPTIONAL operation allows a client to stop the Printer object
from scheduling jobs on all its devices. Depending on
implementation, the Pause-Printer operation ...
... object (see Sections 1 and 8.5). Otherwise, the IPP Printer MUST
reject the operation and return: 'client-error-forbidden', 'client-
error-not-authenticated ...
... IPP Printer MUST
reject the operation and return: 'client-error-forbidden', 'client-
error-not-authenticated', or 'client-error-not-authorized ...
... The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied by the client as described in section 8.3.
...
...
This operation allows a client to resume the Printer object
scheduling jobs on all its devices. The Printer object MUST remove
...
... object (see Sections 1 and 8.5). Otherwise, the IPP Printer MUST
reject the operation and return: 'client-error-forbidden', 'client-
error-not-authenticated ...
... IPP Printer MUST
reject the operation and return: 'client-error-forbidden', 'client-
error-not-authenticated', or 'client-error-not-authorized ...
... object (see Sections 1 and 8.5). Otherwise, the IPP object MUST
reject the operation and return: client-error-forbidden, client-
error-not-authenticated ...
... IPP object MUST
reject the operation and return: client-error-forbidden, client-
error-not-authenticated, and client-error-not-authorized ...
...
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 correct target ...
...
This OPTIONAL operation allows a client to create a multi-document
Job object that is initially "empty" (contains no documents). In the
...
... 32-bit identifier (the
"job-id" attribute). For each new document that the client desires
to add, the client uses a Send-Document operation. Each Send-
...
... "job-id" attribute). For each new document that the client desires
to add, the client uses a Send-Document operation. Each Send-
Document Request contains the entire stream of document data for one
...
... first document with a 'true' or 'false' value for the "last-document"
operation attribute (see below), so that clients MAY always submit
one document jobs with a 'false' value for "last-document" in the
first Send-Document and a 'true' for "last-document" in the second
...
... URI operations) that follow could occur over an arbitrarily long
period of time for a particular job, a client MUST send another send
operation within an IPP Printer defined minimum time interval after
...
...
An IPP object MUST recover from an errant client that does not supply
a send operation, sometime after the minimum time interval specified
by the Printer object's "multiple-operation-time-out" attribute.
...
... section 4.3.8), and clean up all resources associated with the
Job. In this case, if another send operation is finally
received, the Printer responds with an "client-error-not-
possible" or "client-error-not-found" depending on whether or
...
... received, the Printer responds with an "client-error-not-
possible" or "client-error-not-found" depending on whether or
not the Job object is still around when the send operation
finally arrives.
...
... object (see Sections 1 and 8.5). Otherwise, the IPP object MUST
reject the operation and return: 'client-error-forbidden', 'client-
error-not-authenticated ...
... IPP object MUST
reject the operation and return: 'client-error-forbidden', 'client-
error-not-authenticated', or 'client-error-not-authorized ...
... The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied 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 MUST support this attribute. It contains the client
...
... The client OPTIONALLY supplies this attribute. The Printer
object MUST support this attribute. It contains the client
supplied document name. The document name MAY be different than
the Job name. It might be helpful, but NEED NOT be unique
...
... the Job name. It might be helpful, but NEED NOT be unique
across multiple documents in the same Job. Typically, the
client software automatically supplies the document name on
behalf of the end user by using a file name or an application
generated name. See the description of the "document-name"
...
... "document-natural-language" (naturalLanguage):
The client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute. This attribute
specifies the natural language ...
...
"last-document" (boolean):
The client MUST supply this attribute. The Printer object MUST
support this attribute. It is a boolean flag that is set to
'true' if this is the last document for the Job, 'false'
...
... Group 2: Document Content
The client MUST supply the document data if the "last-document"
flag is set to 'false'. However, since a client might not know
...
... The client MUST supply the document data if the "last-document"
flag is set to 'false'. However, since a client might not know
that the previous document sent with a Send-Document (or Send-URI)
...
... set to 'true'. Such a request MUST NOT increment the value of the
Job object's "number-of-documents" attribute, since no real
document was added to the job. It is not an error for a client to
submit a job with no actual document data, i.e., only a single
Create-Job ...
...
This OPTIONAL operation is identical to the Send-Document operation
(see section 3.3.1) except that a client MUST supply a URI reference
("document-uri" operation attribute ...
... ("document-uri" operation attribute) rather than the document data
itself. If a Printer object supports this operation, clients can use
both Send-URI or Send-Document operations to add new documents to an
...
... both Send-URI or Send-Document operations to add new documents to an
existing multi-document Job object. However, if a client needs to
indicate that the previous Send-URI or Send-Document was the last
...
... indicate that the previous Send-URI or Send-Document was the last
document, the client MUST use the Send-Document operation with no
document data and the "last-document" flag set to 'true' (rather than
using a Send-URI ...
...
This REQUIRED operation allows a client to cancel a Print Job from
the time the job is created ...
... 'processing' 'canceled' 'successful-ok'
'processing' 'processing' 'successful-ok' See Rule 1
'processing' 'processing' 'client-error-not-possible'
See Rule 2
'processing- 'canceled' 'successful-ok'
...
... 'processing- 'processing- 'successful-ok' See Rule 1
stopped' stopped'
'processing- 'processing- 'client-error-not-possible'
stopped' stopped' See Rule 2
'completed' 'completed' 'client-error-not-possible ...
... client-error-not-possible'
stopped' stopped' See Rule 2
'completed' 'completed' 'client-error-not-possible'
'canceled' 'canceled' 'client-error-not-possible'
...
... 'completed' 'completed' 'client-error-not-possible'
'canceled' 'canceled' 'client-error-not-possible'
'aborted' 'aborted' 'client-error-not-possible'
...
... 'canceled' 'canceled' 'client-error-not-possible'
'aborted' 'aborted' 'client-error-not-possible'
Rule 1: If the implementation requires some measurable time to
...
... Otherwise, the IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized ...
... IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
...
... client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
...
... The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied by the client as described in section 8.3.
"message" (text(127)):
...
...
"message" (text(127)):
The client OPTIONALLY supplies this attribute. The Printer
object OPTIONALLY supports this attribute. It is a message to
the operator. This "message" attribute is not the same as the
...
... queries that attribute. This "message" operation attribute is
used to send a message from the client to the operator along
with the operation request. It is an implementation decision
of how or where to display this message to the operator (if at
...
...
This REQUIRED operation allows a client to request the values of
attributes of a Job object and it is almost identical to the Get-
Printer-Attributes operation (see section 3.2.5). The only
...
... the implementation supports for Job objects.
Since a client MAY request specific attributes or named groups, there
is a potential that there is some overlap. For example, if a client
requests ...
... client MAY request specific attributes or named groups, there
is a potential that there is some overlap. For example, if a client
requests, 'job-name' and 'job-description', the client is actually
requesting the "job-name" attribute once by naming it explicitly, and
...
... groups, there
is a potential that there is some overlap. For example, if a client
requests, 'job-name' and 'job-description', the client is actually
requesting the "job-name" attribute once by naming it explicitly, and
once by inclusion in the 'job-description' group ...
... group. In such cases, the
Printer object NEED NOT return the attribute only once in the
response even if it is requested multiple times. The client SHOULD
NOT request the same attribute in multiple ways.
...
... The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied by the client as described in section 8.3.
"requested-attributes ...
... "requested-attributes" (1setOf keyword):
The client OPTIONALLY supplies this attribute. The IPP object
MUST support this attribute. It is a set of attribute ...
... and/or attribute group names in whose values the requester is
interested. If the client omits this attribute, the IPP object
MUST respond as if this attribute had been supplied with a value
...
... requested-attributes" operation
attribute with any supplied values (attribute keywords) that were
requested by the client but are not supported by the IPP object.
If the Printer object does return unsupported attributes
...
...
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
...
... operation is supported, then the Release-Job operation MUST be
supported, and vice-versa. The OPTIONAL "job-hold-until" operation
attribute allows a client to specify whether to hold the job
indefinitely or until a specified time period, if supported.
...
... 'pending-held' 'pending-held' 'successful-ok' See Rule 1
'pending-held' 'pending' 'successful-ok' See Rule 2
'processing' 'processing' 'client-error-not-possible'
'processing- 'processing- 'client-error-not-possible'
...
... 'processing' 'processing' 'client-error-not-possible'
'processing- 'processing- 'client-error-not-possible'
stopped' stopped'
'completed' 'completed' 'client-error-not-possible ...
... client-error-not-possible'
stopped' stopped'
'completed' 'completed' 'client-error-not-possible'
'canceled' 'canceled' 'client-error-not-possible'
...
... 'completed' 'completed' 'client-error-not-possible'
'canceled' 'canceled' 'client-error-not-possible'
'aborted' 'aborted' 'client-error-not-possible'
...
... 'canceled' 'canceled' 'client-error-not-possible'
'aborted' 'aborted' 'client-error-not-possible'
Rule 1: If the implementation supports multiple reasons for a job to
...
... stopped' states. If an operation is needed to hold jobs while in
these states, it will be added as an additional operation, rather
than overloading the Hold-Job operation. Then it is clear to clients
by querying the Printer object's "operations-supported" (see Section
4.4.15) and the Job object's "job-state ...
... Otherwise, the IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized ...
... IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
...
... client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
...
...
"job-hold-until" (type3 keyword | name(MAX)):
The client OPTIONALLY supplies this Operation attribute. The
IPP ...
... create operations with at least the
'indefinite' value, if it supports the Hold-Job operation.
Otherwise, a client cannot create a job and hold it immediately
(without picking some supported time period in the future).
...
... according to section 3.1.7, returns the 'successful-ok-
ignored-or-substituted-attributes, and holds the job
indefinitely until a client performs a subsequent Release-Job
operation.
...
... operation.
If the client (1) supplies a value that specifies a time period
that has already started or the 'no-hold' value (meaning don't
hold the job) and (2) the IPP ...
... 4.2.2).
If the client does not supply a "job-hold-until" Operation
attribute in the request, the IPP object MUST populate the job
...
... value (if IPP object supports the "job-hold-until" attribute)
and hold the job indefinitely, until a client performs a
Release-Job operation.
...
...
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 is supported, then the Release-Job operation MUST be
...
... 'processing- 'processing- 'successful-ok'
stopped' stopped' No effect on the job.
'completed' 'completed' 'client-error-not-possible'
'canceled' 'canceled' 'client-error-not-possible'
...
... 'completed' 'completed' 'client-error-not-possible'
'canceled' 'canceled' 'client-error-not-possible'
'aborted' 'aborted' 'client-error-not-possible'
...
... 'canceled' 'canceled' 'client-error-not-possible'
'aborted' 'aborted' 'client-error-not-possible'
Rule 1: If there are other reasons to keep the job in the 'pending-
...
... Otherwise, the IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized ...
... IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
...
... client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
The Release-Job Request and Release-Job Response have the same
...
... state" code and action:
'pending' 'pending' 'client-error-not-possible'
'pending-held' 'pending-held' 'client-error-not-possible'
...
... 'pending' 'pending' 'client-error-not-possible'
'pending-held' 'pending-held' 'client-error-not-possible'
'processing' 'processing' 'client-error-not-possible'
...
... 'pending-held' 'pending-held' 'client-error-not-possible'
'processing' 'processing' 'client-error-not-possible'
'processing- 'processing- 'client-error-not-possible'
...
... 'processing' 'processing' 'client-error-not-possible'
'processing- 'processing- 'client-error-not-possible'
stopped' stopped'
'completed' 'pending' or 'successful-ok' - job is started
...
... 'completed' 'pending' or 'successful-ok' - job is started
'pending-held' over.
'completed' 'completed' 'client-error-not-possible' -
see Rule 1
'canceled' 'pending' or 'successful-ok' - job is started
...
... 'canceled' 'pending' or 'successful-ok' - job is started
'pending-held' over.
'canceled' 'canceled' 'client-error-not-possible' -
see Rule 1
'aborted' 'pending' or 'successful-ok' - job is started
...
... 'aborted' 'pending' or 'successful-ok' - job is started
'pending-held' over.
'aborted' 'aborted' 'client-error-not-possible' -
see Rule 1
...
... Otherwise, the IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized ...
... IPP object MUST reject the operation and return:
'client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
...
... client-error-forbidden', 'client-error-not-authenticated', or
'client-error-not-authorized' as appropriate.
...
...
"job-hold-until" (type3 keyword | name(MAX)):
The client OPTIONALLY supplies this attribute. The IPP object
MUST support this Operation attribute ...
... returns the 'successful-ok-ignored-or-substituted-attributes'
status code, and holds the job indefinitely until a client
performs a subsequent Release-Job operation.
...
... the job, i.e., ignores the "job-hold-until" attribute.
If the client (1) supplies a value that specifies a time period
that has already started or the 'no-hold' value (meaning don't
hold the job) and (2) the IPP ...
... processing immediately (see Section 4.2.2).
If the client does not supply a "job-hold-until" operation
attribute in the request, the IPP object removes ...
...
Note: In the future an OPTIONAL Modify-Job or Set-Job-Attributes
operation may be specified that allows the client to modify other
attributes before releasing the restarted job.
...
...
This section defines the basic attribute syntax types that all
clients and IPP objects MUST be able to accept in responses and
accept in requests, respectively. Each attribute description 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-of-band" values for operations defined in this document. All
...
... IPP objects and
clients MUST support both the 'textWithoutLanguage' and
'textWithLanguage' attribute syntaxes. However, in actual usage and
protocol execution, objects and clients ...
... clients MUST support both the 'textWithoutLanguage' and
'textWithLanguage' attribute syntaxes. However, in actual usage and
protocol execution, objects and clients accept and return only one of
the two syntax per attribute. The syntax 'text' never appears "on-
the-wire".
...
... language for each text string on a value-by-value basis. In these
cases, the attribute syntax 'textWithoutLanguage' is used for text
attributes. In other cases, the client needs to supply or the
Printer object needs to return a text value in a natural language
...
... language
that is different from the rest of the text values in the request or
response. In these cases, the client or Printer object uses the
attribute syntax 'textWithLanguage' for text attributes (this is the
Natural Language ...
... Language Override mechanism and MUST be
supported by all IPP objects and clients.
If the attribute is multi-valued (1setOf text), then the
...
... requirements are independent of the value of the "ipp-attribute-
fidelity" operation attribute that the client MAY supply.
Example: If the client ...
... client MAY supply.
Example: If the client supplies the "attributes-natural-language"
operation attribute ...
... operation attribute with the value: 'en' indicating English, but the
value of the "job-name" attribute is in French, the client MUST use
the 'textWithLanguage' attribute syntax with the following two
values:
...
... 'nameWithoutLanguage' or 'nameWithLanguage'. That is, all IPP
objects and clients MUST support both the 'nameWithoutLanguage' and
'nameWithLanguage' attribute syntaxes. However, in actual usage and
protocol execution, objects and clients ...
... clients MUST support both the 'nameWithoutLanguage' and
'nameWithLanguage' attribute syntaxes. However, in actual usage and
protocol execution, objects and clients accept and return only one of
the two syntax per attribute. The syntax 'name' never appears "on-
the-wire".
...
... Language Override mechanism and MUST be supported by all IPP
objects and clients.
The 'nameWithLanguage' attribute syntax behaves the same as the
...
... Language Override mechanism and MUST be supported
by all IPP objects and clients. If a name is in a language that is
different than the rest of the object or operation, then this
...
... requirements are independent of the value of the "ipp-attribute-
fidelity" operation attribute that the client MAY supply.
Example: If the client ...
... client MAY supply.
Example: If the client supplies the "attributes-natural-language"
operation attribute ...
... operation attribute with the value: 'en' indicating English, but the
"printer-name" attribute is in German, the client MUST use the
'nameWithLanguage' attribute syntax as follows:
...
... For purposes of matching two 'name' attribute values for equality,
such 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 object's corresponding "xxx-supported" attribute), the
...
... IPP requires
all lower case values in IPP attributes to simplify comparing by IPP
clients and Printer objects.
Standard values for this syntax type are the following keywords:
...
... IPP requires all lower case values
in IPP attributes to simplify comparing by IPP clients and Printer
objects. When a character-set in the IANA registry has more than one
...
... ASCII], IPP
requires all lower case to simplify comparing by IPP clients and
Printer objects. Examples include:
...
... doesn't recognize. If the Printer determines this problem before
returning an operation response, it rejects the request and returns
the 'client-error-document-format-not-supported' status code. If the
Printer determines this problem after accepting the request and
...
... only supports auto-sensing of the document format, but will depend on
the result of applying its auto-sensing when the client does not
supply the "document-format" attribute. If the client supplies a
...
... the result of applying its auto-sensing when the client does not
supply the "document-format" attribute. If the client supplies a
document format value, the Printer MUST rely on the supplied
...
... summarize:
1. If the client does not supply a document format value, the
Printer MUST rely on its default value ...
... stream' indicating an auto-sensing
mechanism).
2. If the client supplies a value other than 'application/octet-
stream', the client ...
... client supplies a value other than 'application/octet-
stream', the client is supplying valid information about the
format of the document data and the Printer object MUST trust ...
... format of the document data and the Printer object MUST trust
the client supplied value more than the outcome of applying an
automatic format detection mechanism. For example, the client
...
... the client supplied value more than the outcome of applying an
automatic format detection mechanism. For example, the client
may be requesting the printing of a PostScript file as a
...
... stream of PostScript commands and print the result.
3. If the client supplies a value of 'application/octet-stream',
the client ...
... client supplies a value of 'application/octet-stream',
the client is indicating that the Printer object MUST use its
auto-sensing mechanism on the client supplied document data
...
... the client is indicating that the Printer object MUST use its
auto-sensing mechanism on the client supplied document data
whether auto-sensing is the Printer object's default or not.
...
... Note: Since the auto-sensing algorithm is probabilistic, if the
client requests both auto-sensing ("document-format" set to
'application/octet-stream') and true fidelity ("ipp-attribute-
...
... for Job Template attributes by a Printer object is OPTIONAL (see
section 12.2.3 for a description of support for OPTIONAL attributes).
Also, clients OPTIONALLY supply Job Template attributes in create
requests.
...
... doesn't support "xxx", then it MUST support neither an "xxx-
default" attribute nor an "xxx-supported" attribute, and it
MUST treat an attribute "xxx" supplied by a client as
unsupported. An attribute "xxx" may be supported for some
document formats and not supported for other document formats.
...
... postscript').
2. "xxx" is OPTIONALLY supplied by the client in a create request.
If "xxx" is supplied, the client ...
... by the client in a create request.
If "xxx" is supplied, the client is indicating a desired job
processing behavior for this Job. When "xxx" is not supplied,
the client ...
... client is indicating a desired job
processing behavior for this Job. When "xxx" is not supplied,
the client is indicating that the Printer object apply its
default job processing behavior at job processing time if the
document content does not contain an embedded instruction
...
... object attribute
that describes which job processing behaviors are supported by
that Printer object. A client can query the Printer object to
find out what xxx-related behaviors are supported by inspecting
...
... default value attribute describes what will
be done at job processing time when no other job processing
information is supplied by the client (either explicitly as an
IPP attribute in the create ...
... application then limits selectable values to only those value that
are supported, the application can guarantee that the values supplied
by the client in the create request all fall within the set of
supported values at the Printer. When querying the Printer, the
...
... create request all fall within the set of
supported values at the Printer. When querying the Printer, the
client MAY enumerate each attribute by name in the Get-Printer-
Attributes Request, or the client MAY just name the "job-template"
...
... client MAY enumerate each attribute by name in the Get-Printer-
Attributes Request, or the client MAY just name the "job-template"
group in order to get the complete set of supported attributes (both
...
... The "finishings" attribute is an example of a Job Template attribute.
It can take on a set of values such as 'staple', 'punch', and/or
'cover'. A client can query the Printer object for the "finishings-
supported" attribute and the "finishings-default" attribute. The
...
... supported attribute contains a set of supported values. The default
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 create request and the document data does not contain any
...
... the create request and the document data does not contain any
corresponding finishing instructions. If the client does supply the
"finishings" attribute in the create request, the IPP ...
... Attribute") shows the name and syntax for each Job Template attribute
in the Job object. These are the attributes that can optionally be
supplied by the client in a create request. The last two columns
(labeled "Printer: Default Value ...
... range available to end-users.
If the client does not supply this attribute and this attribute is
supported by the Printer object, the Printer object MUST use the
value of the Printer object's "job-priority ...
... integer value indicates the number of priority levels
supported. The Printer object MUST take the value supplied by the
client and map it to the closest integer in a sequence of n integers
values that are evenly distributed over the range ...
... 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 them to 5, in the range ...
... 'no-hold': immediately, if there are not other reasons to hold the
job
'indefinite': - the job is held indefinitely, until a client
performs a Release-Job (section 3.3.6)
'day-time': during the day
...
... candidate for processing immediately.
If the client does not supply this attribute and this attribute is
supported by the Printer object, the Printer object MUST use the
value of the Printer object's "job-hold-until-default" at job
...
... The 'staple-xxx' values are specified with respect to the document as
if the document were a portrait document. If the document is
actually a landscape or a reverse-landscape document, the client
supplies the appropriate transformed value. For example, to position
a staple in the upper left hand corner of a landscape document when
...
... supplies the appropriate transformed value. For example, to position
a staple in the upper left hand corner of a landscape document when
held for reading, the client supplies the 'staple-bottom-left' value
(since landscape is defined as a +90 degree rotation of the image
...
... with respect to the media from portrait, i.e., anti-clockwise). On
the other hand, to position a staple in the upper left hand corner of
a reverse-landscape document when held for reading, the client
supplies the 'staple-top-right' value (since reverse-landscape is
defined as a -90 degree rotation of the image ...
... 15.3.
If the client supplies a value of 'none' along with any other
combination of values, it is the same as if only that other
combination of values had been supplied (that is the 'none' value has
...
... are not ascending or are overlapping, the IPP object MUST reject the
request and return the 'client-error-bad-request' status code. The
attribute is associated with print-stream ...
... ranges-default" attribute. If the "page-ranges" attribute is
not supplied by the client, all pages of the document will be
printed.
...
... This attribute indicates the desired orientation for printed print-
stream pages; it does not describe the orientation of the client-
supplied print-stream pages.
...
... that a Printer object may support or not support any Job Template
attribute based on the document format supplied by the client.
However, a special mention is made here since it is very likely that
a Printer object will support "orientation-requested" for only a
...
... URI, the
Printer object uses the Printer URI supplied by the client in the
create request. For example, if the create ...
... URI that was used in
the create request. This attribute permits a client to identify the
Printer object that created this Job object when only the Job
...
... created this Job object when only the Job
object's URI is available to the client. The client queries the
...
... object's URI is available to the client. The client queries the
creating Printer object to determine which languages ...
... more user friendly than the "job-uri" attribute value. It does not
need to be unique between Jobs. The Job's "job-name" attribute is
set to the value supplied by the client in the "job-name" operation
attribute in the create request (see Section 3.2.1.1). If, however,
...
... create request (see Section 3.2.1.1). If, however,
the "job-name" operation attribute is not supplied by the client in
the create request, the Printer object, on creation of the Job, MUST
...
... IPP operation was received.
Only if such is not available, does the Printer object use the value
supplied by the client in the "requesting-user-name" operation
attribute of the create ...
... principal, with the
Job object. Since such an internal attribute is implementation-
dependent and not of interest to clients, it is not specified as a
Job Description attribute. This originating user id is used for
...
... usually indicates its condition in human readable form
locally at the device. A client can obtain more complete
device status remotely by querying the Printer object's
"printer-state ...
... state. This phase is
called Job Retention. While in the Job Retention phase, the job's
document data is retained and a client may restart the job using the
Restart ...
... Using the Get-Jobs operation and supplying the 'not-completed' value
for the "which-jobs" operation attribute, a client is requesting jobs
in the Job Not Completed phase. Using the Get-Jobs operation and
supplying the 'completed' value for the "which-jobs" operation
attribute ...
... in the Job Not Completed phase. Using the Get-Jobs operation and
supplying the 'completed' value for the "which-jobs" operation
attribute, a client is requesting jobs in the Job Retention and Job
History phases. Using the Get-Job-Attributes operation, a client is
...
... operation
attribute, a client is requesting jobs in the Job Retention and Job
History phases. Using the Get-Job-Attributes operation, a client is
requesting a job in any phase except Job Removal. After Job Removal,
the Get-Job-Attributes and Get-Jobs operations no longer are capable
...
... Note: While values cannot be added to the 'job-state' attribute
without impacting deployed clients that take actions upon receiving
"job-state ...
... state-
reasons" values can be defined and registered without impacting such
deployed clients. In other words, the "job-state-reasons" attribute
is intended to be extensible.
...
... 'submission-interrupted': The job was not completely submitted
for some unforeseen reason, such as: (1) the Printer has
crashed before the job was closed by the client, (2) the
Printer or the document transfer method has crashed in some
...
... method has crashed in some
non-recoverable way before the document data was entirely
transferred to the Printer, (3) the client crashed or failed to
close the job before the time-out period. See section 4.4.31.
'job-outgoing': The Printer is transmitting ...
... 'unsupported-document-format': The job was aborted by the system
because the document-data's document-format is not among those
supported by the Printer. If the client specifies the
document-format as 'application/octet-stream', the printer MAY
...
... message(s), since they are intended for use by the system
administrator or other experienced technical persons. Localization
might obscure the technical meaning of such messages. Clients MUST
NOT attempt to parse the value of this attribute. See "job-
document-access-errors" (section 4.3.11) for additional errors that a
...
... Document/Send-URI operations SHOULD support this attribute so that
clients can query the number of documents in each job.
...
... NEED NOT reflect the exact number of seconds.
If a client queries a "time-at-xxx(integer)" time tick Job attribute
...
... 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 event occurred in some life other than the Printer's current
life.
...
... Description attribute (see Section 4.4.29).
A client MAY request this attribute in a Get-Job-Attributes or Get-
Jobs request and use the value returned in combination with other
requested Event Time Job Description Attributes in order to display
...
... integer' value of a "time-at-xxx" attribute is the number of
seconds ago that the "time-at-xxx" event occurred. A client can
compute the wall-clock time at which the "time-at-xxx" event occurred
...
... compute the wall-clock time at which the "time-at-xxx" event occurred
by subtracting this difference from the client's wall-clock time.
...
... For these attributes, the Printer object may try to compute the value
if it is not supplied in the create request. Even if the client does
supply a value for these three attributes in the create request, the
...
... create request, the
Printer object MAY choose to change the value if the Printer object
is able to compute a value which is more accurate than the client
supplied value. The Printer object may be able to determine the
correct value for these attributes either right at job submission
...
...
This REQUIRED attribute is populated using the value in the client
supplied "attributes-charset" attribute in the create ...
... method) used
by any Job attributes with 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 "attributes-charset ...
...
This REQUIRED attribute is populated using the value in the client
supplied "attributes-natural-language" attribute in the create ...
... language used for any Job
attributes with 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 "attributes-natural-language ...
... This REQUIRED Printer attribute MUST have the same cardinality
(contain the same number of values) as the "printer-uri-supported"
attribute. This attribute identifies the Client Authentication
mechanism associated with each URI listed in the "printer-uri-
...
... URI. See
[RFC2910] for more details on Client Authentication.
The following standard keyword values are defined:
...
... "anonymous".
'requesting-user-name': When a client performs an operation whose
target is the associated URI ...
... authenticated user is
"anonymous".
'basic': When a client performs an operation whose target is the
associated URI ...
... target is the
associated URI, the Printer object challenges the client with
HTTP basic authentication ...
... authenticated user is the name received via the basic
authentication mechanism.
'digest': When a client performs an operation whose target is the
associated URI ...
... target is the
associated URI, the Printer object challenges the client with
HTTP digest authentication ...
... digest authentication mechanism.
'certificate': When a client performs an operation whose target is
the associated URI ...
... target is
the associated URI, the Printer object expects the client to
provide a certificate. The Printer object assumes that the
...
... URI.
This attribute is orthogonal to the definition of a Client
Authentication mechanism. Specifically, 'none' does not exclude
Client Authentication. See section 4.4.2.
...
... This attribute is orthogonal to the definition of a Client
Authentication mechanism. Specifically, 'none' does not exclude
Client Authentication. See section 4.4.2.
Consider the following example. For a single Printer object, an
...
... TLS is being
used to secure the channel. The client SHOULD be prepared to
use TLS framing to negotiate an acceptable ciphersuite ...
... fact is made explicit by the presence of the 'tls' value in
"uri-security-supported". The client does not need to resort to
understanding which security it must use by following naming
...
... state,
a Printer MUST NOT produce printed output, but it MUST perform
other operations requested by a client. If a Printer had been
printing a job when the Printer was paused, the Printer MUST
resume printing that job when the Printer is no longer paused
...
... still active, the Printer object MUST perform no other
operations requested by a client, including returning this
value. If a Printer object had been printing a job when it was
shutdown, the Printer NEED NOT resume printing that job when
...
... matches the (two-octet binary) "version-number" parameter supplied by
the client in each request (see sections 3.1.1 and 3.1.8) with the
(US-ASCII) keyword values of this attribute.
...
... specified by this attribute, instead of the natural language
requested by the client in the "attributes-natural-language"
operation attribute ...
... This REQUIRED Printer attribute identifies the document format that
the Printer object has been configured to assume if the client does
not supply a "document-format" operation attribute in any of the
...
...
The time zone of this attribute NEED NOT be the time zone used by
people located near the Printer object or device. The client MUST
NOT expect that the time zone of any received 'dateTime' value to be
...
... NOT expect that the time zone of any received 'dateTime' value to be
in the time zone of the client or in the time zone of the people
located near the printer.
...
... located near the printer.
The client SHOULD display any dateTime attributes to the user in
client ...
... client SHOULD display any dateTime attributes to the user in
client local time by converting the 'dateTime' value returned by the
server to the time zone of the client ...
... client 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 Printer in attributes that use the 'dateTime'
...
... IPP operation itself. The supported values are used to validate
the client supplied "compression" operation attributes in Print-Job ...
... 1024 octets. The
supported values are used to validate the client supplied "job-k-
octets" operation attributes in create ...
... number of impressions per job. The supported values are used to
validate the client supplied "job-impressions" operation attributes
in create ...
... number of media sheets per job. The supported values are used to
validate the client supplied "job-media-sheets" operation attributes
in create ...
... The values of these two attributes returned by the Get-Printer-
Attributes operation MAY be affected by the "document-format"
attribute supplied by the client in the Get-Printer-Attributes
request. In other words, the implementation MAY have different
...
... Client Conformance Requirements ...
...
This section describes the conformance requirements for a client (see
section 2.1), whether it be:
...
... downstream" print server.
A conforming client MUST support all REQUIRED operations as defined
in this document. For each attribute included in an operation
request, a conforming client ...
... client MUST support all REQUIRED operations as defined
in this document. For each attribute included in an operation
request, a conforming client MUST supply a value whose type and value
syntax conforms to the requirements of the Model document as
...
... value
syntax conforms to the requirements of the Model document as
specified in Sections 3 and 4. A conforming client MAY supply any
IETF standards track extensions and/or vendor ...
... conformance requirements placed on the user
interfaces provided by IPP clients or their applications. For
example, one application might not allow an end user to submit
multiple documents per job, while another does. One application
...
... whereas a different implementation might not.
When sending a request, an IPP client NEED NOT supply any attributes
that are indicated as OPTIONALLY supplied by the client.
...
... When sending a request, an IPP client NEED NOT supply any attributes
that are indicated as OPTIONALLY supplied by the client.
A client ...
... by the client.
A client MUST be able to accept any of the attribute syntaxes defined
in Section 4.1, including their full range, that may be returned to
...
... range, that may be returned to
it in a response from a Printer object. In particular for each
attribute that the client supports whose attribute syntax is 'text',
the client MUST accept and process both the 'textWithoutLanguage' and
...
... attribute that the client supports whose attribute syntax is 'text',
the client MUST accept and process both the 'textWithoutLanguage' and
'textWithLanguage' forms. Similarly, for each attribute that the
client ...
... client MUST accept and process both the 'textWithoutLanguage' and
'textWithLanguage' forms. Similarly, for each attribute that the
client supports whose attribute syntax is 'name', the client MUST
accept and process both the 'nameWithoutLanguage' and
...
... 'textWithLanguage' forms. Similarly, for each attribute that the
client supports whose attribute syntax is 'name', the client MUST
accept and process both the 'nameWithoutLanguage' and
'nameWithLanguage' forms. For presentation purposes, truncation of
...
... 'nameWithLanguage' forms. For presentation purposes, truncation of
long attribute values is not recommended. A recommended approach
would be for the client implementation to allow the user to scroll
through long attribute values.
...
... groups, attributes, attribute
syntaxes, values, and status codes that the client does not expect.
Therefore, a client implementation MUST gracefully handle such
...
... status codes that the client does not expect.
Therefore, a client implementation MUST gracefully handle such
responses and not refuse to inter-operate with a conforming Printer
that is returning IETF standards ...
... status codes, and out-of-band attribute
values that conform to Section 6. Clients may choose to ignore any
parameters, attribute groups, attributes, attribute syntaxes, or
...
... values that they do not understand.
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 ...
... layer 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 Printer MAY print all or part of the received portion of
...
... Encoding and Transport document [RFC2910]. A client SHOULD support
Operation Privacy and Server Authentication ...
... IPP/1.1 clients MUST meet the conformance requirements for clients
specified in this document and [RFC2910]. IPP ...
... specified in this document and [RFC2910]. IPP/1.1 clients MUST send
requests containing a "version-number" parameter with a '1.1' value.
...
...
It is recommended that IPP/1.1 clients try supplying alternate
version numbers if they receive a 'server-error-version ...
... defined in Section 4.1, including their full range, in any operation
in which a client may supply attributes or the system administrator
may configure attributes (by means outside the scope of this IPP ...
... process both the 'nameWithoutLanguage' and 'nameWithLanguage' forms.
Furthermore, an IPP object MUST return attributes to the client in
operation responses that conform to the syntax specified in Section
4.1, including their full range ...
... operation responses that conform to the syntax specified in Section
4.1, including their full range if supplied previously by a client.
...
...
An IPP Printer implementation SHOULD contain support for Client
Authentication as defined in the IPP/1.1 Encoding and Transport ...
...
Security MUST NOT be compromised when a client supplies a lower
"version-number" parameter in a request. For example, if an IPP ...
...
IPP objects MUST be able to accept any client request which correctly
uses the "attributes-natural-language" operation attribute ...
... language
NEED NOT be a general purpose translator of any arbitrary 'text' or
'name' value supplied by the client into that natural language.
However, the object MUST be able to translate (automatically
...
...
Extensions registered for use with IPP/1.1 are OPTIONAL for client
and IPP object conformance to the IPP ...
... basic attribute syntax type in order to communicate extra information
to the reader through its name. This extra information is not
represented in the protocol because it is unimportant to a client or
Printer object. The list below describes the prefixes and their
...
... "redirection" - Further action must be taken in order to complete the
request
"client-error" - The request contains bad syntax or cannot be
fulfilled
"server-error" - The IPP ...
... in Section 3.1.4.1).
In addition, the client MAY separately and individually identify the
Natural Language Override of a supplied 'text' or 'name' attribute
...
... charset, the object MUST convert between them in
order to return the requested charset to the client according to
Section 3.1.4.2. If an IPP object supports more than one natural
...
... languages. All
responses MUST be returned in the charset requested by the client.
However, the Get-Jobs operation uses the 'textWithLanguage' and
'nameWithLanguage' mechanism to identify the differing natural
...
... charset and natural language
attributes. The client can query the Printer object to determine
the list of charsets ...
... related to the set of natural languages that must be accepted for
client supplied 'text' and 'name' attributes. For client supplied
'text' and 'name' attributes, an IPP ...
... languages that must be accepted for
client supplied 'text' and 'name' attributes. For client supplied
'text' and 'name' attributes, an IPP object MUST accept ALL supplied
...
... configured to support 'en-us' natural language does not mean that the
Printer object should reject a job if the client supplies a job name
that is in 'fr-ca'.
...
... (depending on the source of the attribute):
1. Some attributes are supplied by the client (e.g., the client
supplied "job-name", "document-name", and "requesting-user-
...
...
1. Some attributes are supplied by the client (e.g., the client
supplied "job-name", "document-name", and "requesting-user-
name" operation attributes ...
... natural language for these attributes is different than what a
client requests, then they must be reported using the Natural
Language Override mechanism.
...
... language. If the natural
language for these attributes is different than what a client
requests, then they must be reported using the Natural Language
Override mechanism.
...
... language. If the natural language for these
attributes is different than what a client requests, then they
must be reported using the Natural Language Override mechanism.
...
... language-supported" natural languages.
If a client requests some natural language for these attributes
other than one of the supported values, the IPP ...
... client
requesting-user-name (name) client
status-message (text) Job or Printer object
detailed-status-message (text) Job or Printer object -
...
...
Job Template Attributes:
job-hold-until (keyword | name) client matches
administrator-configured
...
... administrator-configured
job-hold-until-default (keyword | name) client matches
administrator-configured
...
... administrator-configured
job-hold-until-supported (keyword | client matches
name) administrator-configured
...
... name) administrator-configured
job-sheets (keyword | name) client matches
administrator-configured
...
... administrator-configured
job-sheets-default (keyword | name) client matches
administrator-configured
...
... administrator-configured
job-sheets-supported (keyword | name) client matches
administrator-configured
...
... administrator-configured
media-default (keyword | name) client matches
administrator-configured
...
... administrator-configured
media-supported (keyword | name) client matches
administrator-configured
...
... administrator-configured
media-ready (keyword | name) client matches
administrator-configured
...
...
Job Description Attributes:
job-name (name) client or Printer object
job-originating-user-name (name) Printer object
...
... (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.
...
... encryption on that data. However, if the connection between the
client and the IPP object is over a public network, the client ...
... client and the IPP object is over a public network, the client may
wish to protect the content of the information during transmission
through the network ...
... status codes that allow an IPP server to return
information back to a client about any potential access control
violations for an IPP ...
...
During a create operation, the client's identity is recorded in the
Job object in an implementation-defined ...
... Job object in an implementation-defined attribute. This information
can be used to verify a client's identity for subsequent operations
on that Job object in order to enforce any access control policy ...
...
Examples of this environment include printing a document created by
the client on a publicly available printer, such as at a commercial
print shop; or printing a document remotely on a business associate's
printer. This latter operation is functionally equivalent to sending
...
...
When the document is not stored on the client, printing can be done
by reference. That is, the print request can contain a reference, or
pointer, to the document instead of the actual document itself (see
...
... for remote entities to "assume" the credentials of a client for
forwarding requests to a 3rd party. It is anticipated that Print-By-
Reference will be used to access "public" documents and that
...
... "printer-uri-supported" attribute. For each Printer operation
request, a client MUST supply only one URI in the "printer-uri"
operation attribute ...
... operation attribute. In other words, even though the Printer
supports more than one URI, the client only interacts with the
Printer object using one if its URIs. This duality is not needed for
...
...
In many IPP operations, a client supplies a list of attributes to be
returned in the response. For security reasons, an IPP ...
... security reasons, an IPP object may be
configured not to return all attributes (or all values) that a client
requests. The job attributes returned MAY depend on whether the
requesting user is the same as the user that submitted the job. The
IPP ...
... IPP 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 requested attributes. The client cannot tell by such a response
whether the requested attribute was present or absent on the object.
...
... (see section 1). Otherwise, the IPP Printer MUST reject the
operation and return: 'client-error-forbidden', 'client-error-not-
authenticated ...
... IPP Printer MUST reject the
operation and return: 'client-error-forbidden', 'client-error-not-
authenticated', or 'client-error-not-authorized ...
... client-error-not-
authenticated', or 'client-error-not-authorized' as appropriate. For
operations on jobs, the requesting user is intended to be the job
owner or may be an operator or administrator ...
... 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 IPP client. Another approach would be for the
foreign job to belong to 'anonymous'. Only if the IPP client has
...
... the user of the IPP client. Another approach would be for the
foreign job to belong to 'anonymous'. Only if the IPP client has
been authenticated as an operator or administrator ...
... other users' jobs, then the foreign jobs would also be visible to an
end-user IPP client using Get-Jobs and Get-Job-Attributes.
...
... operation attributes are defined in section 3.
Job Template Attributes are described in section 4.2. The client
optionally supplies Job Template attributes in a create request
...
... system administrator sets the only supported value for
the "job-sheets-supported" attribute to 'none'. In this case, if a
client requests anything except 'none', the create request is
rejected or the "job-sheets" value is ignored (depending on the value
...
... administrator does not include the value
'none' in the "job-sheets- supported" attribute. In this case, if a
client requests 'none', the create request is rejected or the "job-
sheets" value is ignored (again depending on the value of "ipp-
...
... "redirection" - Further action must be taken in order to complete
the request
"client-error" - The request contains bad syntax or cannot be
fulfilled
"server-error" - The IPP ...
... As with type2 enums, IPP status codes are extensible. IPP clients
are NOT REQUIRED to understand the meaning of all registered status
codes, though such understanding is obviously desirable. However,
...
... are NOT REQUIRED to understand the meaning of all registered status
codes, though such understanding is obviously desirable. However,
IPP clients MUST understand the class of any status code, as
...
... that an unrecognized response MUST NOT be cached. For example, if an
unrecognized status code of "client-error-xxx-yyy" is received by the
client, it can safely assume that there was something wrong with its
request and treat the response as if it had received a "client ...
... unrecognized status code of "client-error-xxx-yyy" is received by the
client, it can safely assume that there was something wrong with its
request and treat the response as if it had received a "client-
...
... client-error-xxx-yyy" is received by the
client, it can safely assume that there was something wrong with its
request and treat the response as if it had received a "client-
error-bad-request" status code. In such cases, IPP ...
... "informational" - 0x0100 to 0x01FF
"redirection" - 0x0200 to 0x02FF
"client-error" - 0x0400 to 0x04FF
"server-error" - 0x0500 to 0x05FF
...
... This class of status code indicates that the client's request was
successfully received, understood, and accepted.
...
... the Unsupported Attributes group of the response for all operations
as supplied by the client. See sections 3.1.7 and 3.2.1.2.
...
... Client Error Status Codes ...
... This class of status code is intended for cases in which the client
seems to have erred. The IPP object SHOULD return a message
...
... client-error-bad-request (0x0400) ...
... client-error-forbidden (0x0401) ...
... client-error-not-authenticated (0x0402) ...
...
The request requires user authentication. The IPP client may repeat
the request with suitable authentication information. If the request
...
... diagnostic
information. This status codes reveals more information than
"client-error-forbidden".
...
... client-error-not-authorized (0x0403) ...
... not authorized to perform the request. This status codes reveals
more information than "client-error-forbidden" and "client-error-
not-authenticated ...
... status codes reveals
more information than "client-error-forbidden" and "client-error-
not-authenticated".
...
... client-error-not-possible (0x0404) ...
... status code is used when the request is for something that can
not happen. For example, there might be a request to cancel a job
that has already been canceled or aborted by the system. The IPP
client SHOULD NOT repeat the request.
...
... client-error-timeout (0x0405) ...
...
The client did not produce a request within the time that the IPP
object was prepared to wait. For example, a client ...
... client did not produce a request within the time that the IPP
object was prepared to wait. For example, a client issued a Create-
Job operation and then, after a long period of time, issued a Send-
...
... held for the waiting additional Documents. The IPP object was forced
to close the Job since the client took too long. The client SHOULD
NOT repeat the request without modifications.
...
... IPP object was forced
to close the Job since the client took too long. The client SHOULD
NOT repeat the request without modifications.
...
... client-error-not-found (0x0406) ...
... URI. No
indication is given of whether the condition is temporary or
permanent. For example, a client with an old reference to a Job (a
URI) tries to cancel the Job, however in the mean time the Job might
...
... deleted. This status code, 'client-error-not-found' is returned
indicating that the referenced Job can not be found. This error
status code is also used when a client ...
... client-error-not-found' is returned
indicating that the referenced Job can not be found. This error
status code is also used when a client supplies a URI as a reference
to the document data in either a Print-URI ...
... client-error-gone (0x0407) ...
... The requested object is no longer available and no forwarding address
is known. This condition should be considered permanent. Clients
with link editing capabilities should delete ...
... has no facility to determine, whether or not the condition is
permanent, the status code "client-error-not-found" should be used
instead.
...
... client-error-request-value-too-long (0x0409) ...
... IPP object is refusing to service the request because one or more
of the client-supplied attributes has a variable length value that is
longer than the maximum length specified for that attribute. The IPP
...
... Note: For attribute values that are URIs, this rare condition is
only likely to occur when a client has improperly submitted a request
with long query information (e.g. an IPP ...
... IPP application allows an end-
user to enter an invalid URI), when the client has descended into a
URI "black hole ...
... IPP object is under attack
by a client attempting to exploit security holes present in some IPP
...
... client-error-document-format-not-supported (0x040A) ...
... operation attribute, that is not supported by the Printer object.
This error is returned independent of the client-supplied "ipp-
attribute-fidelity". The Printer object MUST return this status
code, even if there are other Job Template attributes that are not
...
... client-error-attributes-or-values-not-supported (0x040B) ...
... create request, if the Printer object does not support one or
more attributes, attribute syntaxes, or attribute values supplied in
the request and the client supplied the "ipp-attribute-fidelity"
operation attribute with the 'true' value, the Printer object MUST
...
... Unsupported Attributes Group all the attributes and/or values
supplied by the client that are not supported. See section 3.1.7.
For example, if the request indicates 'iso-a4' media, but that media
type is not supported by the Printer object. Or, if the client ...
... by the client that are not supported. See section 3.1.7.
For example, if the request indicates 'iso-a4' media, but that media
type is not supported by the Printer object. Or, if the client
supplies a Job Template attribute and the attribute itself is not
even supported by the Printer. If the "ipp-attribute-fidelity"
...
... status code.
For any operation where a client requests attributes (such as a Get-
Jobs, Get-Printer-Attributes, or Get-Job-Attributes operation), if
...
... client-error-uri-scheme-not-supported (0x040C) ...
... IPP Printer does not support the charset
supplied by the client in the "attributes-charset" operation
attribute, the Printer MUST reject the operation and return this
...
... client-error-conflicting-attributes (0x040E) ...
... the Unsupported Attributes Group the conflicting attributes supplied
by the client. See sections 3.1.7 and 3.2.1.2.
...
... client-error-compression-not-supported (0x040F) ...
... operation attribute,
is compressed in a way that is not supported by the Printer object.
This error is returned independent of the client-supplied "ipp-
attribute-fidelity". The Printer object MUST return this status
code, even if there are other Job Template attributes that are not
...
... client-error-compression-error (0x0410) ...
... compression" operation attribute. This error is
returned independent of the client-supplied "ipp-attribute-fidelity".
The Printer object MUST return this status code, even if there are
...
... client-error-document-format-error (0x0411) ...
... service the request because Printer
encountered an error in the document data while interpreting it.
This error is returned independent of the client-supplied "ipp-
attribute-fidelity". The Printer object MUST return this status
code, even if there are Job Template attributes that are not
...
... client-error-document-access-error (0x0412) ...
... access-error" operation attribute (see section 3.1.6.4). This error
is returned independent of the client-supplied "ipp-attribute-
fidelity". The Printer object MUST return this status code, even if
...
... temporary-error" response. If the condition is more permanent, the
error status codes "client-error-gone" or "client-error-not-found"
could be used.
...
... version number that the IPP object does
support. For example, if a client supplies version '1.0' and an
IPP ...
... error
condition, the 'successful-ok' status code will be returned. In such
a case, the client would look at the returned Job Object Attributes
or later query ...
... or a disk full condition, occurs while the IPP Printer processes an
operation. The client MAY try the unmodified request again at some
later point in time with an expectation that the temporary internal
error condition ...
...
A temporary error indicating that the Printer is too busy processing
jobs and/or other requests. The client SHOULD try the unmodified
request again at some later point in time with an expectation that
the temporary busy condition will have been cleared.
...
...
An error indicating that the job has been canceled by an operator or
the system while the client was transmitting the data to the IPP
Printer. If a job-id and job-uri had been created ...
... The IPP object does not support multiple documents per job and a
client attempted to supply document data with a second Send-Document
or Send-URI operation.
...
... attributes
successful-ok-conflicting-attributes x x x x x x x x x
client-error-bad-request x x x x x x x x x
client-error-forbidden x x x x x x x x x
...
... client-error-bad-request x x x x x x x x x
client-error-forbidden x x x x x x x x x
client-error-not-authenticated x x x x x x x x x
...
... client-error-forbidden x x x x x x x x x
client-error-not-authenticated x x x x x x x x x
client-error-not-authorized x x x x x x x x x
...
... client-error-not-authenticated x x x x x x x x x
client-error-not-authorized x x x x x x x x x
client-error-not-possible x x x x x x x x x
...
... client-error-not-authorized x x x x x x x x x
client-error-not-possible x x x x x x x x x
client-error-timeout x x
...
... client-error-not-possible x x x x x x x x x
client-error-timeout x x
client-error-not-found x x x x x x x x x
...
... client-error-timeout x x
client-error-not-found x x x x x x x x x
client-error-gone x x x x x x x x x
...
... client-error-not-found x x x x x x x x x
client-error-gone x x x x x x x x x
client-error-request-entity ...
... client-error-gone x x x x x x x x x
client-error-request-entity-too-large x x x x x x x x x
client ...
... client-error-request-entity-too-large x x x x x x x x x
client-error-request-value-too-long x x x x x x x x x
client-error-document-format-not- x x x x x x
...
... client-error-request-value-too-long x x x x x x x x x
client-error-document-format-not- x x x x x x
supported
client ...
... client-error-document-format-not- x x x x x x
supported
client-error-attributes-or-values-not- x x x x x x x x x
supported
client ...
... client-error-attributes-or-values-not- x x x x x x x x x
supported
client-error-uri-scheme-not-supported x x
client-error-charset ...
... client-error-uri-scheme-not-supported x x
client-error-charset-not-supported x x x x x x x x x
client ...
... client-error-charset-not-supported x x x x x x x x x
client-error-conflicting-attributes x x x x x x x x x
client-error-compression ...
... client-error-conflicting-attributes x x x x x x x x x
client-error-compression-not-supported x x x x x
client ...
... client-error-compression-not-supported x x x x x
client-error-compression-error x x x x
client ...
... client-error-compression-error x x x x
client-error-document-format-error x x x x
client-error-document-access-error x x
...
... client-error-document-format-error x x x x
client-error-document-access-error x x
server-error-internal-error x x x x x x x x x
server-error-operation-not-supported x x x x
...
... attributes
successful-ok-conflicting-attributes x x x x x x
client-error-bad-request x x x x x x
client-error-forbidden x x x x x x
...
... client-error-bad-request x x x x x x
client-error-forbidden x x x x x x
client-error-not-authenticated x x x x x x
...
... client-error-forbidden x x x x x x
client-error-not-authenticated x x x x x x
client-error-not-authorized x x x x x x
...
... client-error-not-authenticated x x x x x x
client-error-not-authorized x x x x x x
client-error-not-possible x x x x x x
...
... client-error-not-authorized x x x x x x
client-error-not-possible x x x x x x
client-error-timeout
...
... client-error-not-possible x x x x x x
client-error-timeout
client-error-not-found x x x x x x
...
... client-error-not-found x x x x x x
client-error-gone x x x x x x
client-error-request-entity ...
... client-error-request-entity-too-large x x x x x x
client-error-request-value-too-long x x x x x x
client-error-document-format-not-
...
... client-error-request-value-too-long x x x x x x
client-error-document-format-not-
supported
client ...
... client-error-document-format-not-
supported
client-error-attributes-or-values-not- x x x x x x
supported
client ...
... client-error-attributes-or-values-not- x x x x x x
supported
client-error-uri-scheme-not-supported
client-error-charset ...
... client-error-charset-not-supported x x x x x x
client-error-conflicting-attributes x x x x x x
client-error-compression ...
... client-error-conflicting-attributes x x x x x x
client-error-compression-not-supported
client ...
... client-error-compression-error
client-error-document-format-error
client-error-document-access-error
...
... client-error-document-format-error
client-error-document-access-error
server-error-internal-error x x x x x x
server-error-operation-not-supported x x x x x x
...
... print job to a Printer object, the IPP model allows
a client to supply operation and Job Template attributes along with
the document data. These Job Template attributes in the create
...
... supported by that Printer. This model, which allows for flexibility
and power, also introduces the potential that at job submission time,
these client-supplied attributes may conflict with either:
- what the implementation is capable of realizing (i.e., what the
...
...
If there is a conflict between what the client requests and what a
Printer object supports, the client may request one of two possible
...
... If there is a conflict between what the client requests and what a
Printer object supports, the client may request one of two possible
conflict handling mechanisms:
...
... processing the Job the best it can.
In the first case the client is indicating to the Printer object:
"Print the job exactly as specified with no exceptions, and if that
can't be done, don't even bother printing the job at all." In the
...
... "Print the job exactly as specified with no exceptions, and if that
can't be done, don't even bother printing the job at all." In the
second case, the client is indicating to the Printer object: "It is
more important to make sure the job is printed rather than be
processed exactly as specified; just make sure the job is printed
...
... more important to make sure the job is printed rather than be
processed exactly as specified; just make sure the job is printed
even if some client-supplied attributes need to be changed or
ignored."
...
... In a create request, "ipp-attribute-fidelity" is a boolean operation
attribute that is OPTIONALLY supplied by the client. The value
'true' indicates that total fidelity to client supplied Job Template
...
... operation
attribute that is OPTIONALLY supplied by the client. The value
'true' indicates that total fidelity to client supplied Job Template
attributes and values is required. The client is requesting that the
...
... 'true' indicates that total fidelity to client supplied Job Template
attributes and values is required. The client is requesting that the
Job be printed exactly as specified, and if that is not possible then
the job MUST be rejected rather than processed incorrectly. The
...
... the job MUST be rejected rather than processed incorrectly. The
value 'false' indicates that a reasonable attempt to print the Job is
acceptable. If a Printer does not support some of the client
supplied Job Template attributes or values, the Printer MUST ignore
them or substitute any supported value for unsupported values,
...
... associated with that attribute, or use some other supported value
that is similar to the unsupported requested value. For example, if
a client supplies a "media" value of 'na-letter', the Printer may
choose to substitute 'iso-a4' rather than a default value of
...
... choose to substitute 'iso-a4' rather than a default value of
'envelope'. If the client does not supply the "ipp-attribute-
fidelity" attribute, the Printer assumes a value of 'false'.
...
...
Each Printer implementation MUST support both types of "fidelity"
printing (that is whether the client supplies a value of 'true' or
'false'):
...
... 'false'):
- If the client supplies 'false' or does not supply the attribute,
the Printer object MUST always accept the request by ignoring
unsupported Job Template attributes and by substituting
...
... unsupported values of supported Job Template attributes with
supported values.
- If the client supplies 'true', the Printer object MUST reject
the request if the client supplies unsupported Job Template
...
... - If the client supplies 'true', the Printer object MUST reject
the request if the client supplies unsupported Job Template
attributes.
...
... attributes.
Since a client can always query a Printer to find out exactly what is
and is not supported, "ipp-attribute-fidelity" set to 'false' is
...
... instruction. Consider the case where a previously formatted file of
document data is sent to an IPP Printer. In this case, if the client
supplies any attributes at job submission time, the client desires
...
... IPP Printer. In this case, if the client
supplies any attributes at job submission time, the client desires
that those attributes override the embedded instructions. Consider
the case were a previously formatted document has embedded in it
...
...
1) Simply pre-pend the document data with the PDL instruction that
corresponds to the client-supplied PDL attribute, such that if
the document data also has the same PDL instruction, it will
override what the Printer object pre-pended. In other words,
...
... this implementation is using the same implementation semantics
for the client-supplied IPP attributes as for the Printer
object defaults.
...
...
Template attributes. In other words, if "ipp-attribute-fidelity" is
set to 'true', a Job is accepted if and only if the client supplied
Job Template attributes and values are supported by the Printer.
Whether these attributes actually affect the processing of the Job
...
... implement this specification document.
1. Using the client supplied "document-format" attribute or some
form of document format detection algorithm ...
... an implementation specific mechanism such as entry attributes, entry
type fields, specific branches, etc. Directory clients can search or
browse for entries of type printer. Clients ...
... clients can search or
browse for entries of type printer. Clients use the directory
service to find entries based on naming, organizational contexts, or
...
... contexts, or
filtered searches on attribute values of entries. For example, a
client can find all printers in the "Local Department" context.
Authentication ...
... object, one of the RECOMMENDED directory entry attributes is the
Printer object's "printer-uri-supported" attribute. The directory
client queries the "printer-uri-supported" attribute (or its
equivalent) in the directory entry and then the IPP client ...
... client queries the "printer-uri-supported" attribute (or its
equivalent) in the directory entry and then the IPP client addresses
the IPP Printer ...
... The first list contains extensions and clarifications and the second
list contains changes in semantics or conformance. However, client
and IPP object implementations of IPP ...
... into this document:
1. Section 2.1 - clarified that the term "client" can be either
contained in software controlled by an end user or a part of a
print server that controls devices.
...
... Unsupported Attributes.
17. Sections 3.2.1.1, 4.3.8, 13.1.4.16, and 13.1.4.17 - added the
'client-error-compression-not-supported', 'client-error-
...
... format' and 'document-format-error' job-state-reasons.
19. Sections 3.2.2, 4.3.8 and 13.1.4.19 - added 'client-error-
document-access-error' status code and 'document-access-error'
...
... Transport" document.
28. Section 4.1 - Clarified that the requirement that clients MUST
NOT send "out-of-band" values in requests applies only to
...
... operations defined in this document. Other operations are
allowed to define "out-of-band" values that clients can
supply.
29. Sections 4.1.1 and 4.1.2 - clarified that the maximum 'text'
...
... 33. Section 4.1.14 - clarified that the localization of dateTime
by the client includes the time zone.
34. Section 4.2 - clarified that xxx-supported have multiple
keywords and/or names by adding parentheses to the table to
...
... 52. Section 4.4.3 - clarified "uri-security-supported" is
orthogonal to Client Authentication so that 'none' does not
exclude Client Authentication.
...
... orthogonal to Client Authentication so that 'none' does not
exclude Client Authentication.
53. Section 4.4.11 - simplified the "printer-state" descriptions
...
... out-of-band value. Also clarified that
the time zone NEED NOT be the time zone that the people near
the device use and that the client SHOULD display the dateTime
attributes in the user's local time.
...
... minute" and "pages-per-minute-color" Printer Description
attributes.
60. Section 5.1 - clarified that the client conformance
requirements apply to clients controlled by an end user and
...
... 60. Section 5.1 - clarified that the client conformance
requirements apply to clients controlled by an end user and
clients in servers.
...
... conformance
requirements apply to clients controlled by an end user and
clients in servers.
61. Section 5.1 - clarified that any response MAY contain
additional attribute groups ...
... groups, attributes, attribute syntaxes,
or attribute values.
62. Section 5.1 - clarified that a client SHOULD do its best to
prevent a channel from being closed by a lower layer ...
... IANA as extensions.
67. Section 8.3 - clarified the use of URIs for each Client
Authentication mechanism.
68. Section 8.5 - added the security discussion ...
... operator/administrator operations.
69. Section 13.1.4.16 - added client-error-compression-not-
supported (0x040F)
...
... compression-not-
supported (0x040F)
70. Section 13.1.4.17 - added client-error-compression-error
(0x0410)
...
... compression-error
(0x0410)
71. Section 13.1.4.18 - added client-error-document-format-error
(0x0411)
72. Section 13.1.4.19 - added client ...
... client-error-document-format-error
(0x0411)
72. Section 13.1.4.19 - added client-error-document-access-error
(0x0412)
73. Section 13.1.5.10 - added server-error-multiple-document-
...
... indicated that such localization might obscure the technical
meaning of such messages.
2. Section 3.1.8, 5.2.4, and 13.1.5.4 - Clients and IPP objects
MUST support version 1.1 ...
... authentication-
supported (1setOf type2 keyword)" Printer Description
attribute to describe the Client Authentication used by each
Printer URI.
...
... conformance
requirements. Section 4.4.16 - added the "multiple-document-
jobs-supported (boolean)" Printer Description attribute so
that a client can tell whether a Printer that supports
Create-Job/Send-Document supports multiple document jobs or
...
... keyword)" Printer Description attribute from OPTIONAL to
REQUIRED.
21. Section 5.1 - changed the client security requirements from
RECOMMENDED non-standards track SSL3 to MUST support Client
Authentication ...
... client security requirements from
RECOMMENDED non-standards track SSL3 to MUST support Client
Authentication as defined in the IPP/1.1 Encoding and
...
... Transport document [RFC2910]. A client SHOULD support
Operation Privacy and Server Authentication ...
... security requirements
from OPTIONAL non-standards track SSL3 to SHOULD contain
support for Client Authentication as defined in the IPP/1.1
Encoding ...
... Server Authentication. Security MUST NOT be
compromised when the client supplies a lower version-number in
a request.
...
