idnits 2.17.1 draft-ietf-printmib-job-protomap-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-23) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == There is 1 instance of lines with non-ascii characters in the document. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 23 longer pages, the longest (page 2) being 61 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 187 has weird spacing: '...me> or daXXX...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (March 21, 1999) is 9165 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'ISO-8824' is defined on line 971, but no explicit reference was found in the text == Unused Reference: 'PrtMIB' is defined on line 984, but no explicit reference was found in the text == Unused Reference: 'SNMPv2-TC' is defined on line 986, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'DPA' -- Possible downref: Non-RFC (?) normative reference: ref. 'IPP' -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO-8824' -- Possible downref: Non-RFC (?) normative reference: ref. 'JobMIB' ** Downref: Normative reference to an Informational RFC: RFC 1179 (ref. 'LPD') -- Possible downref: Non-RFC (?) normative reference: ref. 'PJL' ** Obsolete normative reference: RFC 1759 (ref. 'PrtMIB') (Obsoleted by RFC 3805) ** Obsolete normative reference: RFC 1903 (ref. 'SNMPv2-TC') (Obsoleted by RFC 2579) Summary: 11 errors (**), 0 flaws (~~), 7 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET-DRAFT Ron Bergman 3 Dataproducts Corp. 4 September 21, 1998 6 Job Submission Protocol Mapping Recommendations 7 for the Job Monitoring MIB 9 11 Expires March 21, 1999 13 Status of this Memo 15 This document is an Internet-Draft. Internet-Drafts are working 16 documents of the Internet Engineering Task Force (IETF), its areas, 17 and its working groups. Note that other groups may also distribute 18 working documents as Internet-Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six 21 months and may be updated, replaced, or obsoleted by other 22 documents at any time. It is inappropriate to use Internet-Drafts 23 as reference material or to cite them other than as "work in 24 progress". 26 To learn the current status of any Internet-Draft, please check the 27 "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow 28 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 29 munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or 30 ftp.isi.edu (US West Coast). 32 Abstract 34 This document defines the recommended mapping for many 35 currently popular Job submission protocols to objects and 36 attributes in the Job Monitoring MIB. 38 TABLE OF CONTENTS 40 1.0 INTRODUCTION......................................................3 41 2.0 LINE PRINTER DAEMON (LPR/LPD) PROTOCOL............................4 42 2.1 jmJobSubmissionID Mapped to LPR/LPD...............................4 43 2.2 jmJobIndex Mapped to LPR/LPD......................................5 44 2.3 Other MIB Objects Mapped to LPR/LPD...............................5 45 2.4 The Attribute Group Mapped to LPD.................................5 46 3.0 APPLETALK PROTOCOL................................................6 47 3.1 jmJobSubmissionID Mapped to AppleTalk.............................6 48 3.2 Other AppleTalk Mappings..........................................6 49 4.0 INTERNET PRINTING PROTOCOL (IPP)..................................6 50 4.1 jmJobSubmissionID Mapped to IPP...................................7 51 4.2 jmJobIndex Mapped to IPP..........................................7 52 4.3 Other MIB Objects Mapped to IPP...................................7 53 4.4 The Attribute Group Mapped to IPP.................................8 54 5.0 INTELLIGENT PRINTER DATA STREAM (IPDS)............................9 55 5.1 jmJobSubmissionId Mapped to IPDS..................................9 56 5.2 The Attribute Group Mapped to IPDS...............................10 57 6.0 DOCUMENT PRINTING APPLICATION (DPA)..............................10 58 6.1 jmJobSubmissionID Mapped to DPA..................................11 59 6.2 jmJobIndex Mapped to DPA.........................................11 60 6.3 Other MIB Objects Mapped to DPA..................................11 61 6.4 The Attribute Group Mapped to DPA................................12 62 7.0 NOVELL DISTRIBUTED PRINT SERVICE (NDPS)..........................13 63 7.1 jmJobSubmissionID Mapped to NDPS.................................13 64 7.2 jmJobIndex Mapped to NDPS........................................13 65 7.3 Other MIB Objects Mapped to NDPS.................................13 66 7.4 The Attribute Group Mapped to NDPS...............................14 67 8.0 PRINTER JOB LANGUAGE (PJL).......................................15 68 8.1 jmJobSubmissionID Mapped to PJL..................................16 69 8.2 jmJobIndex Mapped to PJL.........................................16 70 8.3 Other MIB Objects Mapped to PJL..................................16 71 8.4 The Attribute Group Mapped to PJL................................16 72 9.0 POSTSCRIPT.......................................................17 73 9.1 jmJobSubmissionID Mapped to PostScript...........................17 74 9.2 Other MIB Objects and Attributes Mapped to PostScript............17 75 10.0 NETWARE PSERVER.................................................17 76 10.1 jmJobSubmissionID Mapped to PServer.............................17 77 10.2 jmJobIndex Mapped to PServer....................................18 78 10.3 Other MIB Objects Mapped to PJL.................................18 79 10.4 The Attribute Group Mapped to PServer...........................18 80 11.0 NETWARE NPRINTER or RPRINTER....................................19 81 12.0 SERVER MESSAGE BLOCK (SMB) PROTOCOL.............................19 82 12.1 jmJobSubmissionID Mapped to SMB.................................19 83 12.2 jmJobIndex Mapped to SMB........................................19 84 12.3 Other MIB objects Mapped to SMB.................................20 85 13.0 TRANSPORT INDEPENDENT PRINTER/SYSTEM INTERFACE (TIP/SI).........20 86 13.1 jmJobSubmissionID Mapped to TIP/SI..............................20 87 13.2 jmJobIndex Mapped to TIP/SI.....................................20 88 13.3 Other MIB Objects Mapped to TIP/SI..............................21 89 13.4 The Attribute Group Mapped to TIP/SI............................21 90 14.0 REFERENCES......................................................21 91 15.0 AUTHORS.........................................................21 92 1.0 INTRODUCTION 94 The Job Monitoring MIB [JobMIB] is intended to be implemented in a 95 device or server that supports any job submission protocol. However, 96 the information available and the method of presentation varies 97 significantly by job submission protocol. A common method of mapping 98 job submission information to the Job Monitoring MIB is essential for 99 interoperability of Job MIB agents and monitoring applications. This 100 document defines recommended mappings for most popular job submission 101 protocols to ensure this compatibility. 103 All mappings are unidirectional from the job submission protocol to the 104 MIB. It is assumed that support of the job submission protocol in the 105 printer implies that the reverse information flow is presently defined 106 and does not require interaction from the MIB. This mapping is not 107 defined in this document as it should be obvious. 109 This document refers to system configurations that are defined in the 110 Job Monitoring MIB [JobMIB]. For those readers that are familiar with 111 the configuration descriptions, a short summary appears here. Please 112 see the Job MIB document for further details. 114 Configuration 1: This is a simple peer-to-peer system which contains 115 only a client and a printer. The Job MIB agent is resident in 116 the printer. 118 Configuration 2: This system contains a client, server, and a 119 printer. The Jib MIB agent is resident in the server. 121 Configuration 3: This system, as in configuration 2, contains a 122 client, server, and a printer. In this case the Job MIB agent is 123 implemented within the printer. 125 The most important object to be mapped is jmJobSubmissionID, since this 126 is a method for the user or client to determine the jmJobIndex for a 127 submitted job. Therefore, jmJobSubmissionID is specified for all job 128 submission protocols defined in this document. The remaining objects 129 mapped include only those items that have the equivalent information 130 presented to the printer by the job submission protocol. 132 While this document places a strong emphasis on jmJobSubmissionID 133 mapping to obtain jmJobIndex, the preferred method is through the use of 134 a bi-directional job submission protocol that returns the equivalent 135 value of jmJobIndex to the client, such as IPP. When a bi-directional 136 protocol that returns jmJobIndex is in use, the jmJobSubmissionID object 137 has no value to the client. When the jmJobIndex cannot be returned, the 138 use of a client defined jmJobSubmissionID is preferred over an agent 139 derived value. The client defined version allows for retrieval of 140 jmJobIndex using a single SNMP Get operation, since jmJobSubmissionID is 141 the index into the jmJobIDTable. An agent derived value will require a 142 search through multiple entries in the jmJobIDTable. 144 The majority of the protocols mapped in this document are oriented 145 towards network job submission. However, the Job Monitoring MIB is also 146 intended to monitor print jobs received from other than network ports, 147 such as parallel and serial ports. Some of the job submission protocols 148 included that are used with non-networked ports are PJL, PostScript, and 149 TIP/SI. In addition, the Job Monitoring MIB can be used with print jobs 150 that are internally generated, such as self test pages. In this latter 151 case, no mapping is required since all job submission protocols are 152 bypassed. 154 2.0 LINE PRINTER DAEMON (LPR/LPD) PROTOCOL 156 The LPR/LPD printing protocol [LPD] is used with BSD UNIX systems in the 157 client-server-printer configuration. Usage of the Job Monitoring MIB 158 with LPR/LPD will most likely conform to Configuration 3, where the 159 monitor application or the server uses SNMP to obtain job information 160 from the printer. The client communicates with the UNIX server using 161 the existing LPD protocol to obtain job information. 163 The LPR/LPD protocol is also used in the Windows environment to 164 implement peer-to-peer printing, as shown in configuration 1. In this 165 case, SNMP is used by the client and/or the monitor application to 166 obtain the job information. 168 One of the major problems of LPR/LPD is the large number of vendor 169 unique extensions currently used with the protocol and the resulting 170 compatibility issues between available implementations. To avoid these 171 issues, this mapping of LPR/LPD is restricted to the protocol as defined 172 by RFC 1179. 174 The LPR/LPD protocol transfers print job data and control information in 175 separate files, known as the Data File and Control File, respectively. 176 Most of the information concerning the print job is contained in the 177 Control File. In many LPD implementations, the Control File is 178 transferred following the Data File. Thus much of the information 179 concerning the job may not be available until the completion of the data 180 transmission. 182 2.1 jmJobSubmissionID Mapped to LPR/LPD 184 The LPR/LPD Receive Data File command contains a parameter which defines 185 the name of the data file. This name field is structured as follows: 187 dfaXXX or daXXXX 189 Where XXX or XXXX is the numeric job number assigned by the network 190 entity submitting the print job to the printer. The recommended mapping 191 of this name field to jmJobSubmissionID is: 193 octet 1: '9' 195 octets 2-40: Contains the portion of the name field. If 196 the portion is less than 40 octets, the 197 left-most character in the string shall appear in octet 198 position 2. Any unused portion of this field shall be 199 filled with spaces. Otherwise, only the last 39 bytes 200 shall be included. 202 octets 41-48: '00000XXX' or '0000XXXX', where XXX or XXXX is the 203 decimal (ASCII coded) representation of the LPR/LPD 204 job number. 206 2.2 jmJobIndex Mapped to LPR/LPD 208 The job index (jmJobIndex) is assigned by the SNMP job monitoring agent 209 and is independent of the XXX (or XXXX) index assigned by the LPR/LPD 210 client. This will allow the SNMP agent to track jobs received from 211 multiple sources. 213 2.3 Other MIB Objects Mapped to LPR/LPD 215 MIB Object | LPR/LPD Parameter 216 ------------------------------+---------------------------------------- 217 jmJobKOctetsPerCopyRequested | Number of bytes as defined in the Data 218 | File 219 jmJobOwner | Control file command code = P (User Id) 221 2.4 The Attribute Group Mapped to LPD 223 Other attributes that are applicable, but not defined in this section 224 such as attributes that map to a vendor unique extension, may also be 225 included. 227 MIB attribute | LPR/LPD information | Data type 228 ----------------------+---------------------------------+-------------- 229 jobName | Job Name (notes 1, 2) | Octet String 230 queueNameRequested | Queue name from the Data File | Octet String 231 fileName | Source File Name (notes 1, 3) | Octet String 233 Notes: 234 ------ 235 1. The information is optional in the Control File. The attribute 236 should be included if present in the Control File. 237 2. Control file command code = J. If this optional field is omitted 238 from the control file, then the agent returns the file name 239 (command code = N), if present. 240 3. Control file command code = N. 242 3.0 APPLETALK PROTOCOL 244 AppleTalk was originally developed as a peer-to-peer network protocol, 245 as described in configuration 1, for use with Apple Macintosh computers. 246 Today, print spoolers are also available for use with Macintosh computer 247 networks that conform to configurations 2/3. In addition, printing with 248 the AppleTalk protocol is supported from both Windows NT servers and 249 Novell servers also per configurations 2/3. 251 The AppleTalk protocol provides very little information that can be used 252 with the Job Monitoring MIB. The Macintosh print drivers are able to 253 provide information concerning the user and document name but imbed this 254 information in the PDL, which is typically PostScript. The preferred 255 jmJobSubmissionID is constructed from the information in the PostScript 256 file, as defined in section 9.0. 258 3.1 jmJobSubmissionID Mapped to AppleTalk 260 An alternative jmJobSubmissionID may be constructed from the Connection 261 Identifier contained in the AppleTalk Printer Access Protocol (PAP) 262 header. Since the Connection Id is not readily available in any of the 263 defined AppleTalk implementations, this approach may be of little 264 utility. 266 octet 1: 'A' 268 octets 2-40: Contains the AppleTalk printer name, with the first 269 character of the name in octet 2. AppleTalk printer 270 names are a maximum of 31 characters. Any unused 271 portion of this field shall be filled with spaces. 273 octets 41-48: '00000XXX', where 'XXX' is the decimal (ASCII coded) 274 representation of the Connection Id. 276 3.2 Other AppleTalk Mappings 278 No other Job MIB objects or parameters can be derived from information 279 available in the AppleTalk headers 281 4.0 INTERNET PRINTING PROTOCOL (IPP) 283 The Internet Printing Protocol [IPP] supports printing using any one of 284 the three possible configurations. For configuration 2, the mapping 285 defined herein is performed on an agent within the server. Otherwise, 286 the mapping is performed on an agent within the printer. 288 4.1 jmJobSubmissionID Mapped to IPP 290 IPP contains a rich set of parameters which allow several methods of 291 creating the jmJobSubmissionID object. To prevent interoperability 292 problems, the preferred method is to use the IPP job-uri attribute as 293 follows: 295 octet 1: '4' 297 octets 2-40: Contains the IPP job-uri job description attribute 298 generated by the printer. (The job-uri is returned to 299 the client by IPP.) If the job-uri is less than 40 300 octets, the left-most character in the string shall 301 appear in octet position 2. Any unused portion of this 302 field shall be filled with spaces. Otherwise, only the 303 last 39 bytes shall be included. 305 octets 41-48: Contains the decimal (ASCII coded) representation of 306 the job-id job description attribute. Leading zeros 307 shall be inserted to fill the entire 8 octet field. 309 NOTE - Since IPP returns the "job-identifier" attribute with the 310 jmJobIndex value for a job when the job is submitted, the use of the 311 jmJobSubmissionID table should not be needed by a management 312 application. See Section 1.0. 314 4.2 jmJobIndex Mapped to IPP 316 The job index (jmJobIndex) assigned by the SNMP job monitoring agent is 317 returned to the client by IPP as the job-id job description attribute. 318 (Since IPP does not require consecutively generated job-ids, the agent 319 may receive jobs from multiple clients and can assign jmJobIndex in an 320 ascending sequence independent of the submitting job client.) The IPP 321 job-id must be restricted to the range of 1 to 99,999,999 (decimal) to 322 allow the value to be properly represented in jmJobSubmissionID. 324 4.3 Other MIB Objects Mapped to IPP 326 MIB Object | IPP Job attribute 327 ---------------------------------+----------------------------------- 328 jmJobState | job-state 329 jmJobStateReasons1 | job-state-reasons (note 1) 330 jmNumberOfInterveningJobs | number-of-intervening-jobs 331 jmJobKOctetsPerCopyRequested | job-k-octets 332 jmJobKOctetsProcessed | job-k-octets-processed 333 jmJobImpressionsPerCopyRequested | job-impressions 334 jmJobImpressionsCompleted | job-impressions-completed 335 jmJobOwner | job-originating-user-name 336 Notes: 337 ------ 338 1. jmJobStateReasons1 is a bit map which can describe up to 31 job 339 state reasons. Also the IPP "job-state-reasons" attribute is a 340 multi-valued attribute with each value being a keyword. The IPP 341 condition may change multiple bits in this object. The IPP "job- 342 state-reasons" attribute may also change one or more of the 343 jobStateReasonsN attributes (see section 4.4). 345 4.4 The Attribute Group Mapped to IPP 347 The following mappings are required if the listed IPP job template 348 attribute is provided. 350 MIB attribute | IPP job attribute | Data type 351 ---------------------------+------------------------------+------------- 352 jobStateReasonsN(N=2, 3, 4)| job-state-reasons (note 3) | Integer 353 jobCodedCharSet | attributes-charset (note 1) | Octet String 354 jobNaturalLanguageTag | attributes-natural-language | Octet String 355 jobURI | job-uri | Octet String 356 jobName | job-name | Octet String 357 physicalDevice | output-device-assigned | Octet String 358 numberOfDocuments | number-of-documents | Integer 359 jobPriority | job-priority | Integer 360 jobHoldUntil | job-hold-until | Octet String 361 sides | sides (note 2) | Integer 362 finishing | finishings | Integer 363 printQualityRequested | print-quality | Integer 364 printerResolutionRequested | printer-resolution | Integer 365 jobCopiesRequested | copies (note 4) | Integer 366 documentCopiesRequested | copies (note 4) | Integer 367 jobCollationType | multiple-document-handling | Integer 368 sheetsRequested | job-media-sheets | Integer 369 sheetsCompleted | job-media-sheets-completed | Integer 370 mediumRequested | media | Octet String 371 jobSubmissionTime | time-at-submission | Integer 372 jobStartedProcessingTime | time-at-processing | Integer 373 jobCompletionTime | time-at-completed | Integer 375 Notes: 376 ------ 377 1. jobCodedCharSet is an enum from the IANA registry which is also 378 used in the Printer MIB. The IPP attributes-charset is the name 379 (MIME preferred name) of the character set. 380 2. The Job MIB sides attribute uses the integer values "1" and "2". 381 The IPP sides attribute uses three keywords. 382 3. jobStateReasonsN are three attributes (N=2, 3, 4). Also the IPP 383 "job-state-reasons" attribute is a multi-valued attribute with each 384 value being a keyword. The IPP condition may change multiple bits 385 in one or more of these Job MIB attributes. See also 386 jmJobStateReasons1 in section 4.3. 387 4. The IPP "copies" attribute maps to the Job MIB: 388 (1) jobCopiesRequested when the job has only one document OR 389 IPP "multiple-document-handling" is 'single-valued' 390 (2) documentCopiesRequested, in which case the MIB value is the 391 total number of document copies that the job will produce as a 392 whole. 394 5.0 INTELLIGENT PRINTER DATA STREAM (IPDS) 396 The IPDS datastream facilitates a close relationship between the print 397 supervisor (Print Services Facility - PSF) and the printer. There are 398 PSF applications for UNIX, Windows, OS/2, OS/400 and host operating 399 systems such as VM, MVS and VSE. Together, PSF and IPDS represent a 400 complete, mature and robust job management framework which includes font 401 and resource management, page progress tracking, job cancellation, 402 complete error recovery and end-user notification. Because PSF and the 403 printer correspond via the use of locally assigned ID�s, there is a 404 limited amount of clear text information provided during submission for 405 use by the Job MIB. 407 5.1 jmJobSubmissionId Mapped to IPDS 409 For IPDS on the MVS or VSE platform: 411 octet 1: 'E' 413 octets 2-40: Contains bytes 2-27 of the XOH Define Group Boundary 414 Group ID triplet. Octet position 2 must carry the value 415 x'01'. Bytes 28-40 must be filled with spaces. 417 octets 41-48: Contains a decimal (ASCII coded) representation of the 418 jmJobIndex assigned by the agent. Leading zeros shall 419 be inserted to fill the entire 8 octet field. 421 For IPDS on the VM platform: 423 octet 1: 'F' 425 octets 2-40: Contains bytes 2-31 of the XOH Define Group Boundary 426 Group ID triplet. Octet position 2 must carry the value 427 x'02'. Bytes 32-40 must be filled with spaces. 429 octets 41-48: Contains a decimal (ASCII coded) representation of the 430 jmJobIndex assigned by the agent. Leading zeros shall 431 be inserted to fill the entire 8 octet field. 433 For IPDS on the OS/400 platform: 435 octet 1: 'G' 437 octets 2-40: Contains bytes 2-36 of the XOH Define Group Boundary 438 Group ID triplet. Octet position 2 must carry the value 439 x'03'. Bytes 37-40 must be filled with spaces. 441 octets 41-48: Contains a decimal (ASCII coded) representation of the 442 jmJobIndex assigned by the agent. Leading zeros shall 443 be inserted to fill the entire 8 octet field. 445 5.2 The Attribute Group Mapped to IPDS 447 For MVS/VSE: 449 MIB attribute | IPDS XOH DGB Group ID | Data type 450 ----------------------------------+-----------------------+------------- 451 jobSourcePlatformType sptMVS(7) | Byte 2 = x'01' | Integer 452 jobName | Bytes 4-11 | Octet String 454 For VM: 456 MIB attribute | IPDS XOH DGB Group ID | Data type 457 ----------------------------------+-----------------------+------------- 458 jobSourcePlatformType sptVM(8) | Byte 2 = x'02' | Integer 459 fileName | Bytes 4-11 | Octet String 461 For OS/400: 463 MIB attribute | IPDS XOH DGB Group ID | Data type 464 ----------------------------------+-----------------------+------------- 465 jobSourcePlatformType sptOS400(9) | byte 2 = x'03' | Integer 466 fileName | Bytes 23-32 | Octet String 467 jobName | Bytes 37-46 | Octet String 469 6.0 DOCUMENT PRINTING APPLICATION (DPA) 471 The ISO 10175 Document Printing Application (DPA) [DPA] supports 472 printing using any one of the three possible configurations. For 473 configuration 2, the mapping defined herein is performed on a server. 474 Otherwise, the mapping is performed on an agent within the printer. 476 6.1 jmJobSubmissionID Mapped to DPA 478 DPA contains a rich set of parameters which allow several methods of 479 creating the jmJobSubmissionID object. To prevent interoperability 480 problems, the preferred method is to use the DPA job-owner attribute as 481 follows: 483 octet 1: '0' 485 octets 2-40: Contains the DPA job-owner attribute supplied by the 486 submitter. If the job-owner is less than 40 octets, the 487 left-most character in the string shall appear in octet 488 position 2. Any unused portion of this field shall be 489 filled with spaces. Otherwise, only the last 39 bytes 490 shall be included. 492 octets 41-48: Contains an 8-digit sequential decimal number. 494 6.2 jmJobIndex Mapped to DPA 496 The job index (jmJobIndex) assigned by the SNMP job monitoring agent is 497 returned to the client by DPA as a decimal digit string as the value of 498 the DPA job-identifier attribute. (Since DPA does not require 499 consecutively generated job-identifiers, the agent may receive jobs from 500 multiple clients and can assign the jmJobIndex in an ascending sequence 501 independent of the submitting job client.) The DPA job-identifier must 502 be restricted to the range of 1 to 99,999,999 (decimal) to allow the 503 value to be properly represented in jmJobSubmissionID. 505 NOTE - Since DPA returns the "job-identifier" attribute with the 506 jmJobIndex value for a job when the job is submitted, the use of the 507 jmJobSubmissionID table should not be needed by a management 508 application. See Section 1.0. 510 6.3 Other MIB Objects Mapped to DPA 512 MIB Object | DPA Job attribute 513 ---------------------------------+------------------------------------ 514 jmJobState | job-state 515 jmJobStateReasons1 | job-state-reasons (note 2) 516 jmNumberOfInterveningJobs | intervening-jobs 517 jmJobKOctetsPerCopyRequested | total-job-octets (notes 1, 3) 518 jmJobKOctetsProcessed | job-octets-completed (note 1) 519 jmJobImpressionsPerCopyRequested | job-impression-count (note 3) 520 jmJobImpressionsCompleted | impressions-completed 521 jmJobOwner | job-owner 523 Notes: 524 ------ 525 1. jmJobKOctetsPerCopyRequested and jmJobKOctetsProcessed is in K 526 octets while the DPA job-total-octets and job-octets-completed is 527 in octets and is 63-bits of significance. 528 2. jmJobStateReasons1 is a bit map which can describe up to 31 job 529 state reasons. Also the DPA "job-state-reasons" attribute is a 530 multi-valued attribute with each value being an object identifier 531 (OID). The DPA condition may change multiple bits in this object. 532 The DPA condition may also change one or more of the 533 jobStateReasonsN attributes (see section 4.4) 534 3. DPA octets include the multiplication factor due to job and 535 document copies, while the MIB values do not. 537 6.4 The Attribute Group Mapped to DPA 539 The following mappings are required if the listed DPA job attribute is 540 provided. 542 MIB attribute | DPA job attribute |IPP Data type 543 ---------------------------+------------------------------+------------- 544 jobStateReasonsN(N=2, 3, 4)| job-state-reasons (note 2) | Integer 545 jobCodedCharSet | (note 1) | Octet String 546 jobAccountName | accounting-information | Octet String 547 jobName | job-name | Octet String 548 deviceNameRequested | printer-name-requested | Octet String 549 physicalDevice | printers-assigned | Octet String 550 numberOfDocuments | number-of-documents | Integer 551 fileName | file-name | Octet String 552 documentName | document-name | Octet String 553 jobComment | job-comment | Octet String 554 documentFormat | document-format | Octet String 555 jobPriority | job-priority | Integer 556 jobProcessAfterDateAndTime | job-print-after | Octet String 557 outputBin | results-profile.output-bin | Octet String 558 sides | sides (note 3) | Integer 559 finishing | job-finishing, finishing | Integer 560 printQualityRequested | print-quality | Integer 561 printerResolutionRequested | default-printer-resolution | Integer 562 | (note 4) | 563 jobCopiesRequested | results-profile.job-copies | Integer 564 jobCopiesCompleted | job-copies-completed | Integer 565 documentCopiesRequested | copy-count (note 5) | Integer 566 documentCopiesCompleted | copies-completed (note 6) | Integer 567 sheetsRequested | job-media-sheet-count | Integer 568 sheetsCompleted | job-media-sheets-completed | Integer 569 pagesRequested | job-page-count | Integer 570 pagesCompleted | pages-completed | Integer 571 mediumRequested | page-media-select, | Octet String 572 | default-medium | 573 jobSubmissionTime | submission-time (note 7) | Octet String 574 jobStartedProcessingTime | started-printing-time (note 7) Octet String 575 jobCompletionTime | completion-time (note 7) | Octet String 576 Notes: 577 ------ 578 1. Every DPA attribute is tagged indicating the coded character set 579 to be used for that attribute. 580 2. jobStateReasonsN are three attributes (N=2, 3, 4). The DPA 581 condition may change one or more of the bits in one or more of 582 these Job MIB items. Also the DPA job-state-reasons is a multi- 583 valued attribute with each value being an OBJECT IDENTIFIER (OID). 584 3. The Job MIB sides attribute is an integer '1' or '2' while the DPA 585 sides attribute has one of six OID values that includes plex. 586 4. printerResolutionRequested has x and y resolution and is intended 587 to override the resolution instruction in the document, if any, 588 while the DPA default-printer-resolution is the same in x and y and 589 only takes effect if the document does not contain a resolution 590 instruction 591 5. The DPA "copy-count" attribute is a per-document attribute, so the 592 MIB value is the sum of the documents' "copy-count" values times 593 the job's "results-profile.job-copies" value. 594 6. The DPA "copies-completed" attribute is a per-document attribute, 595 so the MIB value is the sum of the documents' "copies-completed" 596 values times the job's "results-profile.job-copies" value. 597 7. The DPA GeneratlizedTime data type is defined by ISO 8824 598 (ISO-8824) while the MIB DateAndTime is defined by SNMPv2-TC 599 (SNMPv2-TC). 601 7.0 NOVELL DISTRIBUTED PRINT SERVICE (NDPS) 603 Novell Distributed Print Services is a DPA based job submission protocol 604 that conforms to configuration 3. 606 7.1 jmJobSubmissionID Mapped to NDPS 608 NDPS supports the generation of a properly formatted jmJobSubmissionID 609 for use in the Job MIB, via the attribute ndps-att-job-identifier. 611 7.2 jmJobIndex Mapped to NDPS 613 NDPS defines the attribute ndps-att-job-identifier-on-printer that can 614 be used to return the value of jmJobIndex to the NDPS client. See 615 Section 1.0. 617 7.3 Other MIB Objects Mapped to NDPS 619 MIB Object | NDPS Parameter 620 ---------------------------------+-------------------------------------- 621 jmJobState | ndps-att-current-job-state (note 1) 622 jmJobStateReasons1 | ndps-att-job-state-reasons (note 2) 623 jmNumberOfInterveningJobs | ndps-att-intervening-jobs 624 jmJobKOctetsPerCopyRequested | ndps-att-total-job-octets (notes 3,4) 625 jmJobKOctetsProcessed | ndps-att-octets-completed (note 3) 626 jmJobImpressionsPerCopyRequested | ndps-att-job-impressions-count 627 jmJobImpressionsCompleted | ndps-att-impressions-completed 628 jmJobOwner | ndps-att-job-owner (note 5) 630 Notes: 631 ------ 632 1. Some of the NDPS job states must be represented by both a 633 jmJobState and a jmJobStateReasons1 object or a jobStateReasonsN 634 attribute (N=2, 3, 4). 635 2. The NDPS job state reasons may be mapped to either the object 636 jmJobStateReasons1 or the attribute jobStateReasonsN (N=2, 3, 4). 637 3. jmJobKOctetsPerCopyRequested and jmJobKOctetsProcessed is in K 638 octets while the NDPS ndps-att-job-total-octets and 639 ndps-att-job-octets-completed is in octets and is 63-bits of 640 significance. 641 4. NDPS octets include the multiplication factor due to job and 642 document copies, while the MIB values do not. 643 5. The Job MIB object must be multiplied by the attribute 644 jobCopiesRequested to obtain the NDPS attribute value, if multiple 645 copies have been requested. 647 7.4 The Attribute Group Mapped to NDPS 649 The following mappings are required if the listed PJL attribute or 650 command option is provided. 652 MIB attribute | NDPS parameter | Data type 653 ---------------------------+------------------------------+------------- 654 jobStateReasonsN(N=2, 3, 4)| ndps-job-state-reasons | Integer 655 jobAccountName | ndps-att-job-owner | Octet String 656 jobName | ndps-att-job-name | Octet String 657 jobOriginatingHost | ndps-att-job-originator | Octet String 658 deviceNameRequested | ndps-att-printer-name-- | Octet String 659 | requested | 660 numberOfDocuments | ndps-att-number-of-documents | Integer 661 fileName | ndps-att-document-file-name | Octet String 662 documentName | ndps-att-document-name | Octet String 663 jobComment | ndps-att-job-comment | Octet String 664 documentFormatIndex | ndps-att-prtInterpreterIndex | Integer 665 documentFormat | ndps-att-document-format | Integer 666 jobPriority | ndps-att-job-priority | Integer 667 jobProcessAfterDateAndTime | ndps-att-job-print-after | Octet String 668 outputBin | ndps-att-results-profile | Integer 669 | (note 1) | 670 sides | ndps-att-sides (note 2) | Integer 671 finishing | ndps-att-job-finishing | Integer 672 printQualityRequested | ndps-att-print-quality | Integer 673 printerResolutionRequested | ndps-att-default-printer-- | 674 | resolution (note 3) | Integer 675 printerResolutionUsed | ndps-att-default-resolutions-- 676 | used | Integer 677 jobCopiesRequested | ndps-att-results-profile | Integer 678 | (note 4) | 679 jobCopiesCompleted | ndps-att-job-copies-completed| Integer 680 documentCopiesRequested | ndps-att-copy-count (note 5) | Integer 681 documentCopiesCompleted | ndps-att-copies-completed | Integer 682 | (note 6) | 683 sheetsRequested | ndps-att-job-media-- | 684 | sheet-count | Integer 685 sheetsCompleted | ndps-att-media-sheets-- | 686 | completed | Integer 687 mediumConsumed | ndps-att-media-used | Integer 688 jobSubmissionToServerTime | ndps-att-submission-time | Octet String 689 | (note 7) | 690 jobSubmissionTime | ndps-att-started-printing-time Octet String 691 | (note 7) | 692 jobCompletionTime | ndps-att-completion-time | Octet String 693 | (note 7) | 695 Notes: 696 ------ 697 1. The output-bin field in ndps-att-results-profile is to be used. 698 2. The Job MIB sides attribute is an integer '1' or '2' while the NDPS 699 sides attribute has one of six OID values that includes plex. 700 3. printerResolutionRequested has x and y resolution and is intended 701 to override the resolution instruction in the document, if any, 702 while the ndps-att-default-printer-resolution is the same in x and 703 y and only takes effect if the document does not contain a 704 resolution instruction 705 4. The job-copies field in ndps-att-results-profile is to be used. 706 5. The NDPS "copy-count" attribute is a per-document attribute, so the 707 MIB value is the sum of the documents' "copy-count" values times 708 the job's "results-profile.job-copies" value. 709 6. The NDPS "copies-completed" attribute is a per-document attribute, 710 so the MIB value is the sum of the documents' "copies-completed" 711 values times the job's "results-profile.job-copies" value. 712 7. The NDPS GeneratlizedTime data type is defined by ISO 8824 713 (ISO-8824) while the MIB DateAndTime is defined by SNMPv2-TC 714 (SNMPv2-TC). 716 8.0 PRINTER JOB LANGUAGE (PJL) 718 PJL [PJL] has been developed by Hewlett-Packard to provide job control 719 information to the printer and status information to applications, 720 independent of the PDL. 722 8.1 jmJobSubmissionID Mapped to PJL 724 PJL has defined the SUBMISSIONID option for the JOB command which 725 indicates a properly formatted jmJobSubmissionID for use in the Job MIB. 726 The PJL JOB command is presented at the start of a print job with 727 options that apply only the attached job. The syntax for this command 728 option is: 730 @PJL JOB SUBMISSIONID = "id string" 732 Driver software that implements this PJL command option must provide the 733 "id string" in one of the client version formats specified in the Job 734 MIB for jmJobSubmissionID. 736 For drivers that are not able to create the SUBMISSIONID option, it is 737 recommended that jmJobSubmissionID format 0 be created by the agent 738 using the PJL attribute DocOwner or DocOwnerId. 740 octet 1: '0' 742 octets 2-40: Contains the string associated with DocOwner or 743 DocOwnerId. If the string is less than 40 octets, the 744 left-most character in the string shall appear in octet 745 position 2. Otherwise, only the last 39 bytes shall be 746 included. Any unused portion of this field shall be 747 filled with spaces. If DocOwner or DocOwnerId cannot be 748 obtained, this field shall be blank. 750 octets 41-48: Contains the value of jmJobIndex associated with the 751 job. Leading zeros shall be inserted to fill the 752 entire 8 octet field. 754 8.2 jmJobIndex Mapped to PJL 756 PJL does not provide a value that can be mapped to jmJobIndex. 758 8.3 Other MIB Objects Mapped to PJL 760 MIB Object | PJL Job attribute 761 ----------------------+------------------------------------ 762 jobOwner | DocOwner or DocOwnerId attribute 764 8.4 The Attribute Group Mapped to PJL 766 The following mappings are required if the listed PJL attribute or 767 command option is provided. 769 MIB attribute | PJL attribute or command option | Data type 770 ----------------------+----------------------------------+-------------- 771 serverAssignedJobName | DocName attribute or the command | Octet String 772 | @PJL JOB Name = "string" | Octet String 773 submittingServerName | SrcServerName attribute | Octet String 774 jobOriginatingHost | SrcPort attribute | Octet String 775 queueNameRequested | SrcQ attribute | Octet String 776 fileName | JobFName attribute | Octet String 777 jobComment | JobDesc attribute | Octet String 778 jobSubmissionTime | TimeSubmit attribute | Octet String 780 9.0 POSTSCRIPT 782 The PostScript PDL permits comment fields which can be used by 783 application drivers to include job information. Although there are no 784 restrictions or requirements as to what information may be included, 785 many drivers include job owner and/or document name. 787 9.1 jmJobSubmissionID Mapped to PostScript 789 The use of a standard format job submission id comment string will allow 790 interoperability of printers and drivers from multiple vendors. The 791 following comment string format is recommended for use with PostScript 792 level 1 and level 2 data streams. 794 %%JMPJobSubmissionId:(id-string) 796 where "id string" can be any jmJobSubmissionID format reserved for 797 clients. 799 9.2 Other MIB Objects and Attributes Mapped to PostScript 801 No Other mappings from PostScript comment strings are recommended, but 802 many Job MIB objects and attributes can be defined using vendor unique 803 comment strings. 805 10.0 NETWARE PSERVER 807 The NetWare PServer job submission protocol is implemented in a client- 808 server-printer system on the server to printer link as defined in 809 configuration 3. 811 10.1 jmJobSubmissionID Mapped to PServer 813 octet 1: 'B' 814 octets 2-40: Contains the Directory Path Name of the agent as 815 recorded by the Novell File Server in the queue 816 directory. If the string is less than 40 octets, the 817 left-most character in the string shall appear in octet 818 position 2. Otherwise, only the last 39 bytes shall be 819 included. Any unused portion of this field shall be 820 filled with spaces. 822 octets 41-48: '000XXXXX' The decimal (ASCII coded) representation of 823 the Job Number as per the NetWare File Server Queue 824 Management Services. 826 10.2 jmJobIndex Mapped to PServer 828 The job index (jmJobIndex) is assigned by the SNMP job monitoring agent 829 and is independent of the Job Number assigned by the NetWare File Server 830 Queue Management Services. This will allow the SNMP agent to track jobs 831 received from multiple sources. 833 10.3 Other MIB Objects Mapped to PJL 835 MIB Object | PServer Job attribute 836 ----------------------+-------------------------------------------- 837 jobOwner | Client Id Number 839 10.4 The Attribute Group Mapped to PServer 841 The following mappings are required if the listed PServer parameter is 842 provided in the Novell File Server queue directory. 844 MIB attribute | PServer parameter | Data type 845 ---------------------------+-----------------------------+-------------- 846 serverAssignedJobName | Job File Name | Octet String 847 queueNameRequested | Queue Id | Integer 848 physicalDevice | Server Id Number | Integer 849 jobComment | Job Description | Octet String 850 jobPriority | (note 1) | Integer 851 jobProcessAfterDateAndTime | Target Execution Time | Octet String 852 jobCopiesRequested | Number of Copies | Integer 853 mediumRequested | Form Name | Octet String 854 jobSubmissionToServerTime | Job Entry Time | Octet String 856 Notes: 857 ------ 858 1. The job priority is determined by the priority assigned to the queue 859 that contains the job. Each queue can be assigned a unique priority 860 and the priority of the job is inherited from the queue. 862 11.0 NETWARE NPRINTER or RPRINTER 864 The NetWare NPrinter/RPrinter protocol was designed to transfer print 865 data from a Novell File Server to a printer attached directly to a local 866 port (e.g. parallel or serial) on a PC. NPrinter/RPrinter is an 867 extremely lightweight printing protocol. Consequently, no information 868 required by the Job Monitoring MIB is provided and a meaningful 869 jmJobSubmissionID cannot be generated. 871 It is recommended that an additional job submission layer, such as PJL 872 or another vendor private protocol, be included on top of 873 NPrinter/RPrinter to provide the required information. The mapping 874 should then be performed according to the recommendations of the higher 875 layer submission protocol. 877 12.0 SERVER MESSAGE BLOCK (SMB) PROTOCOL 879 The Server Message Block protocol is used with several PC Network 880 operating systems, such as Microsoft Windows for Workgroups, IBM LAN 881 Server, and Artisoft Lantastic. SMB systems supporting the Job 882 Monitoring MIB will conform to either configuration 1 or 3. 884 12.1 jmJobSubmissionID Mapped to SMB 886 octet 1: 'C' 888 octets 2-40: Contains a decimal (ASCII coded) representation of the 889 16 bit SMB Tree Id field, which uniquely identifies the 890 connection that submitted the job to the printer. The 891 most significant digit of the numeric string shall be 892 placed in octet position 2. All unused portions of this 893 field shall be filled with spaces. The SMB Tree Id has 894 a maximum value of 65,535. 896 octets 41-48: Contains a decimal (ASCII coded) representation of the 897 File Handle returned from the printer agent to the 898 client in response to a Create Print File command. 899 Leading zeros shall be inserted to fill the entire 8 900 octet field. 902 12.2 jmJobIndex Mapped to SMB 904 It is strongly recommended that the File Handle returned from the 905 printer agent be identical to jmJobIndex. If these items are identical, 906 there is no need for the client application to perform a search on 907 jmJobSubmissionID. To be compatible with the 16 bit field allocated to 908 this value by SMB, the maximum jmJobIndex is 65,535. 910 12.3 Other MIB objects Mapped to SMB 912 MIB Object | SMB Parameter 913 ----------------+------------------------------------------------ 914 jmJobOwner | SMB User Id field (note 1) 916 Notes: 917 ------ 918 1. A decimal (ASCII coded) representation of the SMB User Id numeric 919 shall be presented as jmJobOwner. 921 13.0 TRANSPORT INDEPENDENT PRINTER/SYSTEM INTERFACE (TIP/SI) 923 The TIP/SI protocol, although currently specified as a part of the IEEE 924 1284 parallel port standards [TIP/SI], was originally developed as a 925 network protocol. TIP/SI thus has the potential of being integrated 926 into any network or non-network configuration. 928 13.1 jmJobSubmissionID Mapped to TIP/SI 930 octet 1: 'D' 932 octets 2-40: Contains the Job Name from the Job Control-Start Job 933 (JC-SJ) command. If the Job Name portion is less than 934 40 octets, the left-most character in the string shall 935 appear in octet position 2. Any unused portion of this 936 field shall be filled with spaces. Otherwise, only the 937 last 39 bytes shall be included. 939 octets 41-48: Contains a decimal (ASCII coded) representation of the 940 jmJobIndex assigned by the agent. Leading zeros shall 941 be inserted to fill the entire 8 octet field. 943 13.2 jmJobIndex Mapped to TIP/SI 945 jmJobIndex is returned to the client as the Printer Assigned Job Id in a 946 Job Control-Start Job (JC-SJ) response packet. To be compatible with 947 the 16 bit field allocated to this value by TIP/SI, the maximum 948 jmJobIndex is 65,535. 950 13.3 Other MIB Objects Mapped to TIP/SI 952 MIB Object | TIP/SI Parameter 953 -----------------------+------------------------------------------------ 954 jmJobOwner | User string 956 13.4 The Attribute Group Mapped to TIP/SI 958 MIB attribute | TIP/SI information | Data type 959 ----------------------+---------------------------------+-------------- 960 jobName | Job Name string | Octet String 961 jobComment | Additional Information string | Octet String 963 14.0 REFERENCES 965 [DPA] ISO/IEC 10175-1:1996(E), "Information technology - Text and 966 office systems - Document Printing Application (DPA) - Part 1: Abstract 967 service definition and procedures", JTC1/SC18. 969 [IPP] The Internet Printing Protocol RFC XXXX, Model RFC XXXX 971 [ISO-8824] ISO/IEC 8824:1990, "Information technology - Open Systems 972 Interconnection - Specification of Abstract Syntax Notation (ASN.1)". 974 [JobMIB] The Job Monitoring MIB, work in progress, , to be published as an Informational RFC 976 as a Printer Working Group (PWG) standard. 978 [LPD] Line Printer Daemon Protocol, RFC 1179, IETF informational 979 document. 981 [PJL] Printer Job Language Technical Reference Manual, Hewlett-Packard 982 part number 5021-0328. 984 [PrtMIB] The Printer MIB, RFC 1759, IETF standards track document. 986 [SNMPv2-TC] Case, J., McCloghrie, K., Rose, M., Waldbusser, S., 987 "Textual Conventions for Version 2 of the Simple Network Management 988 Protocol (SNMPv2), RFC 1903, January 1996. 990 [TIP/SI] IEEE Standard 1284.1, Transport Independent Printer/System 991 Interface. 993 15.0 AUTHORS 995 This document was created with significant contributions from the 996 following individuals. 998 Ron Bergman (Editor) 999 Dataproducts Corp. 1000 1757 Tapo Canyon Road 1001 Simi Valley, CA 93063-3394 1003 Phone: 805-578-4421 1004 Fax: 805-578-4001 1005 Email: rbergman@dpc.com 1007 Tom Hastings 1008 Xerox Corporation, ESAE-231 1009 701 S. Aviation Blvd. 1010 El Segundo, CA 90245 1012 Phone: 310-333-6413 1013 Fax: 310-333-5514 1014 EMail: hastings@cp10.es.xerox.com 1016 Scott A. Isaacson 1017 Novell, Inc. 1018 122 E 1700 S 1019 Provo, UT 84606 1021 Phone: 801-861-7366 1022 Fax: 801-861-4025 1023 EMail: scott_isaacson@novell.com 1025 Harry Lewis 1026 IBM Corporation 1027 6300 Diagonal Hwy 1028 Boulder, CO 80301 1030 Phone: (303) 924-5337 1031 Fax: (303) 924-4662 1032 Email: harryl@us.ibm.com 1034 Bob Pentecost 1035 Hewlett-Packard Corporation 1036 11311 Chinden Boulevard 1037 Boise, ID 83714 1039 Phone: (208) 396-3312 1040 Fax: (208) 396-4122 1041 Email: bpenteco@boi.hp.com 1042 Send comments to the printmib WG using the Job Monitoring Project 1043 (JMP) Mailing List: jmp@pwg.org 1045 For further information, access the PWG web page under "JMP": 1046 http://www.pwg.org/ 1048 Other Participants: 1050 Chuck Adams - Tektronix 1051 Keith Carter - IBM Corporation 1052 Angelo Caruso - Xerox 1053 Jeff Copeland - QMS 1054 Andy Davidson - Tektronix 1055 Mabry Dozier - QMS 1056 Lee Farrell - Canon 1057 David Kellerman - Northlake Software 1058 Rick Landau - Digital 1059 Jay Martin - Underscore 1060 Ira McDonald - Xerox 1061 Stuart Rowley - Kyocera 1062 Bob Setterbo - Adobe 1063 Gail Songer - EFI 1064 Mike Timperman - Lexmark 1065 William Wagner - DPI/Osicom 1066 Chris Wellens - Interworking Labs 1067 Rob Whittle - Novell 1068 Don Wright - Lexmark 1069 Lloyd Young - Lexmark