Goal is to write replacement SafeQ using cups and samba For now, first goal is to support SafeQ terminal protocol so we can re-use devices not supported by vendor any more. We are also annoyed by SafeQ "feature" which doesn't allow us to use scanning if Xerox runs out of toner. This is arbitrary limitation which cripples this setup for us. ./debian-install.sh # will install required Debian packages We have old Xerox WorkCentre 5225 and 7232 machines (from 2008) and getting active jobs or history is supported by web interface which is scraped and javascript variables inside used to display info. ./xwc-jobs.pl 10.60.3.35 # list active jobs on Xerox WorkCentre 5225 by scraping web ./xwc-jobs.pl 10.60.3.35 list ./xwc-jobs.pl 10.60.3.35 hist # list completed jobs Script produces tab delimited output, but if you want to format it nicely you can always use SEP enviroment variable to specify sparator and column to format it. This is included in xwc-jobs helper shell script which is useful for interactive use: dpavlin@t42:~/safeq$ ./xwc-jobs 10.60.3.35 IP id Job Name Owner Status Type Quantity 10.60.3.35 00015c2c - 10.60.3.10 3:User Action 1:Print 0 10.60.3.35 00015c2f Test Page root 3:User Action 1:Print 0 10.60.3.35 00015c32 - 10.60.3.10 3:User Action 1:Print 0 You can delete job using: dpavlin@t42:~/safeq$ curl -XPOST -d OPR=CANCEL -d JOBS=00015c32/ http://10.60.3.35/JOBCTRL.cmd or use d[elete] or c[ancel] aruguments and job id(s): dpavlin@t42:~/safeq$ ./xwc-jobs 10.60.3.35 d 00015c41 10.60.3.35 00015c41 CANCEL REQUEST: ACCEPTED We would like to have nice job name and user info on Xerox, so I tested how to send data using various protocols: dpavlin@t42:~/safeq$ lpstat -v device for ipp: ipp://10.60.3.35/ipp device for XWC5225-5KatL: socket://10.60.3.35 dpavlin@t42:~/safeq$ lpr -Pipp -U lpr-U1 -C lpr-C1 -J lpr-J1 -T lpr-T1 /usr/share/doc/printer-driver-foo2zjs/manual.pdf dpavlin@t42:~/safeq$ lpr -PXWC5225-5KatL -U lpr-U2 -C lpr-C2 -J lpr-J2 -T lpr-T2 /usr/share/doc/printer-driver-foo2zjs/manual.pdf dpavlin@t42:~/safeq$ rlpr -H 10.60.3.35 -U rlpr-U -C rlpr-C -J rlpr-J -T rlpr-T /usr/share/doc/printer-driver-foo2zjs/manual.pdf And results are *VERY* different: dpavlin@t42:~/safeq$ ./xwc-jobs IP id Job Name Owner Status Type Quantity 10.60.3.35 00015c65 lpr-T1 lpr-U1 1:Printing... 1:Print 0 10.60.3.35 00015c68 - 10.60.3.10 0:Printing - wait 1:Print 0 10.60.3.35 00015c6b rlpr-J rlpr-U 0:Printing - wait 1:Print 0 So, it seems that we can't tranfer job name or owner through caps and socket connection. Next problem is pesky banner pages which Xerox insists on printing using default cups drivers for it. Solution might be to use ppd files from Xerox, but they reference filter which doesn't exist and assume that postscript is supported on device which isn't the case for us. However, we can migrate option to disable banner to working ppd: *JCLOpenUI *JCLBanner/Banner Sheet: Boolean *OrderDependency: 10.0 JCLSetup *JCLBanner *DefaultJCLBanner: False *JCLBanner False/Disabled: "@PJL SET JOBATTR=<22>@BANR=OFF<22><0A>" *JCLBanner True/Enabled: "@PJL SET JOBATTR=<22>@BANR=START<22><0A>" *JCLCloseUI: *JCLBanner This will use more-or-less undocumented option @BANR to turn it off. Only reference to this option is in Xerox document "PDL Reference Guide for the Phaser 6510/WC 6515 Series"