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.
+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"