JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
System Administration Guide: Printing
search filter icon
search icon

Document Information


1.  Introduction to Printing in the Oracle Solaris Operating System

2.  Planning for Printing (Tasks)

3.  Setting Up Network Printing Services (Tasks)

4.  Setting Up and Administering Printers by Using Solaris Print Manager (Tasks)

5.  Setting Up Printers by Using LP Print Commands (Tasks)

6.  Administering Printers by Using LP Print Commands (Tasks)

7.  Customizing LP Printing Services and Printers (Tasks)

8.  Administering the LP Print Scheduler and Managing Print Requests (Tasks)

9.  Administering Printers on a Network (Tasks)

10.  Administering Character Sets, Filters, Forms, and Fonts (Tasks)

11.  Administering Printers by Using the PPD File Management Utility (Tasks)

12.  Printing in the Oracle Solaris Operating System (Reference)

13.  Troubleshooting Printing Problems in the Oracle Solaris OS (Tasks)

A.  Using the Internet Printing Protocol

Overview of Oracle Solaris IPP Support

Overview of the IPP Listening Service

How the IPP Listening Service Works

IPP Components

IPP Libraries

IPP Support Model

IPP Object Model

IPP Printer Object

IPP Job Object

IPP Server-Side Support

Configuration of IPP Server-Side Data

IPP Operation Keywords

IPP Client-Side Support

lpsched Support

IPP Attributes



IPP Server-Side Support

The IPP listening service provides an IPP network protocol service that enables print client systems a means of interacting with a print service on the system that is running the listener. This listener implements server-side IPP protocol support that includes a broad set of standard operations and attributes. The listener is implemented in the Oracle Solaris OS as an Apache module and a series of shared libraries that contain IPP operation and wire support. The IPP software stack is installed when the Oracle Solaris OS is installed on the system. The IPP listening service is an SMF service that depends on the print service to run. As a result, IPP is automatically enabled on a print server when the first print queue has been added . IPP is disabled when the last print queue has been removed.

Server-side support for IPP starts with the IPP module, mod_ipp. The listening service uses the Apache web server because the Oracle Solaris OS ships with Apache software. The Apache module uses the Dynamic Shared Object (DSO) interface to plug in under the web server. Using the DSO interface, the module includes configuration support for the IPP Listening service and an entry point for the web server to hand the listener the HTTP connection. This modular approach enables the IPP support to reuse Apache delivered encryption and authentication mechanisms.

Figure A-1 IPP Server Configuration

Figure of the components that make up the IPP server configuration. Further explanation included in surrounding text.

Configuration of IPP Server-Side Data

The IPP listening service configuration file, /etc/apache/httpd-standalone-ipp.conf, is like any normal Apache 1.3 configuration file. The configuration files takes any Apache 1.3 configuration directives that you want to use.

The default configuration includes the following features:

The default operations that are enabled for /printers/ is limited to a set of operations that poses less of a security risk. However, all operations are enabled at the /admin/path (ipp://server/admin/), with basic authentication required.

The mod_ipp Apache configuration options to choose from are described in the following table:

Table A-2 mod_ipp Apache Module Configuration Options:

Selects level of protocol checking. The default is automatic, which provides maximal client interaction.
Enables you to selectively enable or disable IPP operation support for one more IPP operations.
Selects the user name to use when contacting the local print service. The default is the lp print user, which enables more functional proxying.
Selects the default print service to direct requests to. The default is the lpsched daemon and currently only has been tested against lpsched.

The following table shows the conformance checking types for the Apache Web Server Configuration. The syntax to use is:

ipp-conformance value

Table A-3 Apache Web Server Conformance Checking Types

Only check that the requested operation is supported by the protocol listener. (default)
Check that the request conforms to IPP/1.0.
Check that the request conforms to IPP/1.1.

The following is an annotated example of an apache configuration file:

if mod_ipp is loaded User lp run as "lp"
URI: ipp://{host]/printers/{queue}
SetHandler application/ipp use mod_ipp for this location
ipp-conformance strict enable strict protocol checking (default)
ipp-operation all enable enable all supported operations

IPP Operation Keywords

IPP objects support operations. An operation consists of a request and a response. When a print 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 operation. Operations also have attributes that affect the run time characteristics of the operation. These operation-specific attributes are defined as operation attributes. Print requests contain operation attributes, object attributes, and the required document data to perform the specific operation. Each request requires a response from the object. Each response indicates success or failure of the operation with a corresponding status code as a response parameter. Responses contain operation attributes, object attributes, and status messages that are generated during the operation request.

The following table describes the IPP operation keywords for the Apache Web Server Configuration.

Table A-4 IPP Operation Keywords

This keyword is used in place of an operation. The keyword is meant to signify that all operations that are supported by mod_ipp are selected.
This keyword is used in place of an operation. The keyword is meant to signify that all the required operations, as defined in RFC-2911, are selected, including the following: print-job, cancel-job, get-job-attributes, get-jobs, and get-printer-attributes.
A client wants to submit a print job with only a single document. The document data is sent with the request.
A client wants to validate that a print job can be handled by the scheduler before submitting a print job.
A client wants to submit a print job with multiple documents. The documents are sent with the send-document and send-uri operations.
A client wants to add a document to a print job that is created with the print-job operation. The document data is sent with the request.
A client wants to cancel a print job.
A client wants to gather information about a print job.
A client wants to gather a list of print jobs in a particular print queue.
A client wants to gather information about a particular print queue.
A client wants to hold a particular print job.
A client wants to release a particular print job.
A client wants to restart a particular print.
A client wants to pause (disable) a particular print queue. This operation will stop the processing of print requests in the queue. Note that the operation does not stop the queue from accepting jobs.
A client wants to resume (enable) processing of jobs in a particular print queue.
A client wants to remove all jobs from a particular print queue.
Create or modify attributes of a printer.
Modify attributes of an existing print job.
Resume (accept) queueing of print jobs.
Disable (reject) queueing of print jobs.
Retrieve the default destination for a print service.
Enumerate all printers available from the print service.
Enumerate all classes available from the print service.
CUPS specific equivalent of Enable-printer.
CUPS specific equivalent of Disable-printer.
Move jobs between queues in the same print service.