Call Files

Call files allow you to create calls through the Linux shell. These powerful events are triggered by depositing a .call file in the directory /var/spool/asterisk/outgoing/. The actual name of the file does not matter, but it’s good form to give the file a meaningful name and to end the filename with .call.

When a call file appears in the outgoing folder, Asterisk will almost immediatelyact on the instructions contained therein.[148]

Call files are formatted in the following manner. First, we define where we want to call:

Channel: channel

We can control how long to wait for a call to be answered (the default is 45 seconds), how long to wait between call retries, and the maximum number of retries. If MaxRetries is omitted, the call will be attempted only once:

WaitTime: number
RetryTime: number
MaxRetries: number

If the call is answered, we specify where to connect it here:

Context: context-name
Extension: ext
Priority: priority

Alternatively, we can specify a single application and pass arguments to it:

Application: Playback()
Data: hello-world

Next, we set the Caller ID of the outgoing call:

CallerID: Asterisk 800-555-1212

Then we set channel variables, as follows:

SetVar: john=Zap/1/5551212
SetVar: sally=SIP/1000

and add a CDR account code:

Account: documentation

Warning

When you create a call file, do not do so from the spool directory. Asterisk monitors the spool aggressively and will try to grab your file before you’ve even finished writing it! Create call files in some other folder, make a copy in the same folder, and then mv the copy into the spool directory. Note that we said mv, not cp. This is important, because the way that Linux copies files means that the file appears in the destination folder before it is completely there. Contrast that with a mv operation, which will not allow the file to appear in the destination folder until the move operation is complete. If you copy, there is a very good chance that Asterisk will read the file before it is all there, which will cause unexpected results.



[148] We’re talking within milliseconds here. Don’t believe us? Try it for yourself!