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
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.