The Printer MUST accept Send-Document and Send-URI operations. As [ipp-mod]
says, only the Create-Job, Print-Job, and Print-URI operations are prevented
by setting the "printer-is-accepting-jobs" to 'false'. This was for a good
reason. We don't want the operator to mess up any jobs that are in the
process of being send when he/she sets the "printer-is-accepting-jobs" to
'false'. In the Set2 extension spec that we are working on, we explain this
little detail a lot better:
11.2.1 Disable-Printer Operation
This OPTIONAL operation allows a client to stop the Printer object from
accepting new jobs, i.e., cause the Printer to reject subsequent Job
Creation operations and return the 'server-error-not-accepting-jobs' status
code. The Printer still accepts all other operations, including
Validate-Job, Send-Document and Send-URI operations. Thus a Disable-Printer
operation allows a client to continue submitting multiple documents of a
multiple document job if the Create-Job operation had already been accepted.
All previously created or submitted Jobs and currently processing Jobs
Here is the [ipp-mod] spec for the "printer-is-accepting-jobs" that is clear
as to which operations are affects by the boolean attribute:
4.4.23 printer-is-accepting-jobs (boolean)
This REQUIRED Printer attribute indicates whether the printer is currently
able to accept jobs, i.e., is accepting Print-Job, Print-URI, and Create-Job
requests. If the value is 'true', the printer is accepting jobs. If the
value is 'false', the Printer object is currently rejecting any jobs
submitted to it. In this case, the Printer object returns the
'server-error-not-accepting-jobs' status code.
This value is independent of the "printer-state" and "printer-state-reasons"
attributes because its value does not affect the current job; rather it
affects future jobs. This attribute, when 'false', causes the Printer to
reject jobs even when the "printer-state" is 'idle' or, when 'true', causes
the Printer object to accepts jobs even when the "printer-state" is
In the IIG, there is a mistake in that section 18.104.22.168:
22.214.171.124 Suggested Additional Processing Steps for Operations that
Create/Validate Jobs and Add Documents
This section in combination with the previous section recommends the
processing steps for the Print-Job, Validate-Job, Print-URI, Create-Job,
Send-Document, and Send-URI operations that IPP objects SHOULD use. These
are the operations that create jobs, validate a Print-Job request, and add
documents to a job.
Does include a check of "printer-is-accepting-jobs" and returns an error for
all of these operations. It should only be for Print-Job, Print-URI, and
Create-Job which create jobs. The other operations are adding to a job that
is already created.
From: Venkatesh [mailto:venky at teil.soft.net]
Sent: Wednesday, September 22, 1999 21:12
To: ipp at pwg.org
Subject: IPP> printer-is-accepting-jobs
The Printer Object attribute "printer-is-accepting-jobs" when set to
the printer object stops accepting any print job requests.
Assume that initially "printer-is-accepting-jobs" is set to true.
If a client issues a Create-Job request and if the Printer object
process the request successfully it returns the Job-URI and Job-ID.
Suppose now the Administrator of the Printer Object set
attribute to 'false' will the Prinetr Object accept any Send-Document
Send-URI operation for the Job created before.