The ability to obtain more information about a printer or to
download the appropriate driver is outside the scope of
IPP version 1. I am proposing 2 optional attributes be added to the
printer. The attributes would be extensions of Printer
Description Attributes. The attributes are printer-more-info and
printer-driver-installer. These attributes are optional.
The printer-more-info attribute is to be used to give the end user
a URI to obtain additional information. The URI is
intended to provide a hook for printer venders or pay-for-print
operations to interact with end users in ways outside the scope
of IPP(e.g. cost of a print job, locations of driver installers, map to
The printer-driver-installer attribute is a URI to a "installer
service". The intention is that this is a programmatic
hook to obtain the appropriate driver. Protocol specific mechanisms
will be used to obtain the driver installer for the correct
client environment. I have some HTTP specific examples below. The use
of a simple URI here implies that no special
treatment of this attribute is implied. The IPP printer does not
require any additional knowledge of the client environment to
satisfy the GetAttribute request. The IPP protocol is not complicated
by the print driver installation hook.
The two attributes should be in both the printer and directory
services. Putting them in the printer permits client
usage of these attributes in environments that are not using a
directory service to represent their printers. The attribute must
be in the printer when the printer is located by means outside
directory services(e.g. URI in magazine advertisement).
Inclusion of these attributes in the printer also permits printer
vendors to provide factory default values enabling ease of
installation. The value may be changed by printer configuration tools
or administrator operations in IPP version 2. Inclusion
of these attributes in the directory schema permits ease of
administration. Site specific policies can be quickly enacted.
The use of these attributes are not mandatory. I intend to
provide an informational RFC to codify their use. This
informational RFC is not part of the IPP standard. It is meant to
document how actual implementations of driver download
and additional information work in conjunction with IPP.
Example of multiple levels of driver installation service using IPP and HTTP
Drivers already on client or install disk. Use the Printer
Description Attribute, printer-model (or the proposed
printer-device-id), to determine which driver to install. The driver
is already on your system, on the OS install disk, or a
vendor supplied printer install disk. In this scenario the client OS
and language is known by the user and the appropriate
driver is selected by the user. The driver install method is provided
by the OS.
Driver installer on printer Home Page. Use printer-more-info, to
locate print driver installer page for the printer.
Other mechanisms can be used to locate the page such as knowing the
printer vendors Home Page and following links,
advertisement, word of mouth etc. An end user is required to interpret
the information on the print driver installer page and
select the appropriate driver installer for the client OS. The
intention here is the printer Home Page is specific to the
Driver installer obtained from URI in non-IPP fashion. Issue an
HTTP Get to the URI from the printer-driver-
installer attribute to get the appropriate driver. The Installer
provider can provide service in an implementation specific
fashion. It may just default to some specific installer(eg NT 5.0). A
super-Installer could be downloaded. This would be
responsible for obtaining the parameters required to install the
appropriate driver in the client environment. The third way a
provider may download the appropriate driver Installer is to look at
the product tokens in the HTTP Get request. The tokens
and their formats are not standard and vary from browser to browser.
Driver installer obtained from URI in IPP fashion. Issue an HTTP
Get to the URI from the printer-driver-installer
attribute to get the appropriate driver. Included in the Get will be
IPP specific product tags. The Installer will use IPP
product tags in the HTTP Get request to determine which installer to
download to the client.