Features and configuration of the default scripts

As already written above, CapiSuite comes with default scripts giving you the most used communication functions of an answering machine and a fax device.

This section should help you to use them for your daily needs.

Script features

The scripts distributed with CapiSuite give you the following main functions:

  • multi-user answering machine

    • different users using different numbers and different announcements are supported

    • incoming calls are saved and sent to the user by email

    • the delay until a call is accepted and the maximum record length are freely adjustable

    • silence is detected and the call terminated after an adjustable silence period

    • incoming fax calls are automatically detected and received

    • comfortable, menu-controlled remote inquiry functions are supported telling you the date/time when the call was received and the called and calling numbers.

    • record your own announcement via the remote inquiry menu

    • nearly each setting is configurable globally but can be overwritten for each user

  • fax machine

    • different users using different numbers are supported

    • incoming faxes are stored and sent to the user by email

    • command line tool for faxing PostScript documents included

    • number of tries and delays for sending faxes freely configurable

    • currently supports only one ISDN controller for outgoing faxes

As my native language is german, all waves distributed with CapiSuite are in german only. If someone wants to provide waves in english (or any other language), please contact me. Thx!

How the scripts work

Here follows a rough overview of how the scripts work in general. I will only explain the behaviour which is important for the user here. If you want to understand the internals, please refer to the section called “Structural overview of the default scripts”.

When an incoming call is received, several lists for the different users are searched for the called number. The different users can define their own numbers in the configuration (see below). So the scripts decide by looking on the called number to which user the call destinates. If they find the number in the voice- or fax-number list of any user, they'll answer the call with this service and give the caller the possibility to leave his message or send his fax.

The received document is then saved to a local directory in some native format and also converted to a well-known format and mailed to the user along with some details of the call. Voice calls are sent as a WAV attachment, while fax calls are sent as PDF documents attached to the mail.

So you'll normally get your incoming calls as a mail to a specified address - but they're also saved in the local filesystem to be on the safe side. It's your task to delete old files you don't need any more. For further instructions, please see the section called “Deleting old files”.

There's also the possibility to do a remote inquiry on the answering machine. The caller is presented a menu where he can choose to record his announcement or to hear the saved voice calls. He will be told how many calls are available, from whom and when they were received and so on. He'll also be able to delete recorded calls he doesn't need any more.

Another script will check special queue directories for fax send jobs regularly. To put jobs in this directory, the commandline tool capisuitefax is provided. See the section called “Using CapiSuite together with the default scripts” for further details on this.

Script configuration

There are some important options which the scripts need to know before you can use them - things like the users' numbers and some details of how to handle the calls.

These options are read from two configuration files. All options for the two files are described in short below. For all details, please see the comments in the sample configuration files installed with CapiSuite.

Deleting old files

As written above, all incoming and outgoing calls will be saved on the local file system to assure nothing gets lost. There's no cleaning up done by CapiSuite, so these files will stay forever on your system if you don't clean them up from time to time.

As it's not very convenient to do this manually, I would advise to automate this process. cron is predestinated for such a task. On most modern GNU/Linux distributions, you can simply place scripts in /etc/cron.daily and they will be called automatically once a day.

An example for a bash script you can use is included in the CapiSuite distribution. Just copy capisuite.cron to /etc/cron.daily/capisuite and assure it has correct permissions (owner root, executable bit set).

Now edit the file cronjob.conf and copy it to your CapiSuite configuration directory (usually /etc/capisuite or /usr/local/etc/capisuite). It tells the cron job how long the files should be stored in the different dirs.

The following options are available:

MAX_DAYS_RCVD="<value>"

Files stored in the user receive directories which weren't accessed in the last <value> days are deleted. Set to 0 to disable this automatic deletion.

MAX_DAYS_DONE="<value>"

Files stored in the global done directory which weren't accessed in the last <value> days are deleted. Set to 0 to disable this automatic deletion.

MAX_DAYS_FAILED="<value>"

Files stored in the global failed directory which weren't accessed in the last <value> days are deleted. Set to 0 to disable this automatic deletion.