![]() |
Hi Dave, I like your script, i was amazed at the low error rate you were able to achieve with hylafax and i was going to ask about the secrets of your modem config file, but then....... ..... i realized you had divided them all by 10 ;-) Interestingly even still your getting virtually no phase B errors while quite a few more DCS errors than i am (i am using generally 10/95 USR Couriers, with a couple of 97 x2 models) Have you altered the standard usr config files in any way? - Robert At 10:34 2/04/98 -0500, David Birnbaum wrote: >Rob, Shuvam, et al, > >First - let me state that the recent messages on the nature of faxing and >these problems with doing electronic faxing, particularly the mesage from >Dr. Pollack, to be the most interesting and educational things on this >list that I've seen go by in a long time. That one email alone taught me >more about the internals of faxing than three months getting a tidbit here >and there from the various FAQs and stuff on the net. Who do I make my >check out to? > >On a second note, I'm getting ready to start spending time with our faxing >systems again, which will involve moving from a mere 3K a night on up, as >we have more and more clients who access our services. So, anything I can >do to reduce the overhead of calls, etc, is of high importance! In any >case, here's some numbers for a month's worth of faxes, across 8 USR Total >Control modems, which are the chassis version of the high-end couriers. I >also included a PERL version of the gawk script for those who don't speak >gawk that well. > >Modem: total >Total faxes sent: 48263 > >Error No % Fl >--------------------------------------- >Normal and proper end of connection 510 1.1 >Unable to configure modem for fax use 2 0.0 >No response to EOP repeated 3 times 206 0.4 >Busy signal detected 5250 10.9 >Can not open document file 98 0.2 >Job aborted by user 108 0.2 >DCS sent 3 times without response; Giving up after 3 attempt 2 0.0 >RSPREC error/got DCN 233 0.5 >No carrier detected 6601 13.7 >No local dialtone 19 0.0 >DTE to DCE data underflow 9 0.0 >DCS sent 3 times without response 1741 3.6 >No response to MPS repeated 3 times 2 0.0 >Unspecified Transmit Phase B error 18 0.0 >Unknown problem (check modem power) 2 0.0 >No answer (T.30 T1 timeout) 325 0.7 >--------------------------------------- >Total 0 31.3 > >For me, the error ratio, once you remove the 10.9 of busy and 13.7 of no >carrier, is down to 6.7%. The errors I am worried about, that I am >interested in tracking down and fixing, are those that make up the 5% of >what appear to be errors in the faxmodem protocol: > >- DCS errors - appear to be related to random modem failures >- Normal and proper end of connection - is actually a different class > of error, I don't know why it's reported like this. > >and one that looks strongly like a bug in Hylafax's non-fax code. > >- Can not open document file - looks like some sort of locking/race > condition, having to do with jobs that share the same document file. > >Oddly enough, on the fax errors, often times that number will work on >another day or another try. Why? Who knows...line noise? Phase of the >moon? Composition of document? > >David. > > >#!/usr/local/bin/perl ># ># Adapted from the GAWK script.... ># ># ----- > >require 5.000; > >use Text::ParseWords; >use Getopt::Std; > >&getopts("t"); > >while(<>) { > chomp; > @array = quotewords("\t", 0, $_); > $array[3] = "total" if $opt_t; > $total{$array[3]}++; > if ( $array[10] == 0 ) { > $array[13] =~ s/; too many .*//; > $errcount->{$array[3]}->{$array[13]}++; > } >} > >foreach $modem ( keys %total ) { > print "Modem: $modem\n"; > printf "%-68.68s %6i\n\n", "Total faxes sent:", $total{$modem}; > printf "%-60.60s %5s %10s\n","Error", "No","% Fl"; > print "---------------------------------------\n"; > > $tot = 0; > foreach $error ( keys %{$errcount->{$modem}} ) { > if ( $errcount->{$modem}->{$error} > 0 ) { > $rate = $errcount->{$modem}->{$error} * 100 / $total{$modem}; > $tot += $errcount->{$modem}->{$error}; > printf "%-60.60s %5i %8.1f\n", $error, $errcount->{$modem}->{$error}, $rate; > } > } > > print "---------------------------------------\n"; > printf "%-60.60s %5i %8.1f\n", "Total", $total, $tot * 100 / $total{$modem}; > printf "\n"; >}