JobControl is a feature that many people have wanted, in a round-about
way, for quite some time.
JobControl gives HylaFAX servers the ability to "virtualize" the
sending configuration in a standard way. Many users want to use
different TSI or calling_party numbers for different users who submit
jobs. JobControl gives them the abilty to do so.
The administrator can configure/setup a JobControlCmd that can assign
these types of settings, and these values can be based on arbitrary job
values, instead of being limited only to the destination number.
This means that parameters can be changed/set based on the client (IP) of
the job submitter, the owner of the job, the email address of the sender,
etc, as well as the destination, etc.
Some possible uses include:
* Specifying a different ModemGroup set for each owner/submitter
* Specifying a different ModemGroup based on the email address of the
* Specifying MaxSendPages/MaxDials/MaxTries on a per "owner" basis to
override/force specific maximums.
* Specifying TimeOfDay restrictions for certain senders
* Rejecting jobs based on the submitters requested ModemGroup
* Setting the TSI based on the sender
* Setting the DialRules/ModemDialCmd basd on the details of the
submitted job owner/email and destination modemgroups.
Below, you will find some sample jobcontrol programs that can be used
to perform various flexability. These are not bullet proof ones, and
don't contain full error checking, but should provide a good base
to start doing your own business logic.
Notes on JobControl and batching
JobControl and Batching often conflict. Unless the only things you
are controlling in JobControl are per-destination, and apply to every job
to a particular destination, batching will effectivly disable any of
the special JobControl options you are setting.
When batching is enabled, it goes through the sleepig and blocked jobs, and
pulls all the jobs to the same destination in the same call. This means that
it ignores some of the job's settings (like modem group), and can cause
problems if other job-specific settings are wanted.
If you expect to be able to control all of these various settings on jobs, despite
them going to the same destination, you should disable batching (MaxBatchJobs: 1).