HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Perl HylaFax Interface, and some bugs



Folks,

I'm in the process of finishing a Perl 5 OO interface to Hylafax.  In
another week or so, it will be stable enough to be alpha, so I can toss it
onto the net for whoever is interested in it.  I'm putting in methods for
the whole interface, piece-by-piece; still feeling out the structure, but
it seems to work for the type of stuff I want to do with it.  I'm trying
my best to use the sendfax configuration files to make it simple to use
for those who have mastered sendfax.

However, as I've been refining the interface, I've run into a few strange
bugs that appear in the HylaFax protocol, and I was hoping people would
have a few comments.  Specifically, the problems came up in the creation
of a Clone method, which would clone a job and then allow you to resubmit
it with a different dialstring, tagline, etc, for use in fax broadcasting. 

Bug #1 - LASTTIME changes very strangely: take a look at the following
snippet:

  jnew
  200 New job created: jobid: 3733 groupid: 3733.
  jparm lasttime 001440
  213 LASTTIME set to 001440.
  jparm
  217-Job state: jobid 3733 groupid 3733
      SENDTIME: NOW
      LASTTIME: 101370431

How did LASTTIME get set to this strange number?  I only noticed this
because my Clone function actually duplicates the whole job, so when it
cloned the JPARM LASTTIME 101370431, the server complained and the job
blew up.  Oddly enough, the sendq file seems to have something completely
unrelated to the number I put in as well as the number that's returned:

  killian /var/spool/fax/sendq 197# grep kill q3733
  killtime:10800

Bug #2: "Incomplete" jobs: if a job is only halfway completed, and then
the Hylafax connection is broken, you can't get back into the job to fix
it, finish it, or delete it.  If I were to QUIT out of a job after
defining only the items in the example above:

  job 3733
  500 Cannot set job 3733; invalid or corrupted job description file.

This is a major pain, because I can't recover very gracefully from a job
submission failing to finish, losing a connection, deleting a job that is
missing information, etc. This error, as well as the generic "Server has
N'ACKd the request" error, are very frustrating because they give no
indication on how to fix the problem.  Informative error messages would be
very handy here (what was corrupted?) 

Pointers, comments, etc, would be greatly appreciated here.

Bug #3: If a job fails due a modem initialization error (ie, "Can't
configure modem for faxing"), then I believe the job should be rescheduled
for another modem rather than be cancelled as it is now.  I couldn't find
any way to change this behavior in the documentation.

Thanks in advance for any assistance and comments on the above.  I've only
been on this list for a few weeks, so apologies if this stuff has already
come up and gone by.

Looking forward to pl2....

David.




Project hosted by iFAX Solutions