The first section kick tells Asterisk to play a message saying the dialed destination is invalid and then to hang up. The next section from-internal-custom defines what extension can connect/dial to this particular extension (in this example ext 7572 is the one needing incoming restrictions). The Local channel rather than using technology channels directly can help with several things again for example restrictions that may apply (context) for a particular user. Using channels like SIP/1000 and IAX/1000 will literally bypass all the good stuff that may have been setup. In conjunction with asterisk call files e.g.call.

Skip to end of metadataGo to start of metadata

Asterisk has the ability to initiate a call from outside of the normal methods such as the dialplan, manager interface, or spooling interface.

Using the call file method, you must give Asterisk the following information:

  • How to perform the call, similar to the Dial() application
  • What to do when the call is answered

With call files you submit this information simply by creating a file with the required syntax and placing it in the outgoing spooling directory, located by default in /var/spool/asterisk/outgoing/ (this is configurable in asterisk.conf).

The pbx_spool.so module watches the spooling directly, either using an event notification system supplied by the operating system such as inotify or kqueue, or by polling the directory each second when one of those notification systems is unavailable. When a new file appears, Asterisk initiates a new call based on the file's contents.

Creating Files in the Spool Directory

Icon

Do not write or create the call file directly in the outgoing directory, but always create the file in another directory of the same filesystem and then move the file to the outgoing directory, or Asterisk may read a partial file.

NFS Considerations

Icon

By default, Asterisk will prefer to use inotify or kqueue where available. When the spooling directory is on a remote server and is mounted via NFS, the inotifyEileen fisher repositioning the brand pdf viewer download. method will fail to work. You can force Asterisk to use the older polling method by passing the --without-inotify flag to configure during compilation (e.g. ./configure --without-inotify).

The call file consists of <Key>: <value> pairs; one per line.

Comments are indicated by a '#' character that begins a line, or follows a space or tab character. To be consistent with the configuration files in Asterisk, comments can also be indicated by a semicolon. However, the multiline comments (;----;) used in Asterisk configuration files are not supported. Semicolons can be escaped by a backslash.

The following keys-value pairs are used to specify how setup a call:

  • Channel: <channel> - The channel to use for the new call, in the form technology/resource as in the Dial application. This value is required.
  • Callerid: <callerid> - The caller id to use.
  • WaitTime: <number> - How many seconds to wait for an answer before the call fails (ring cycle). Defaults to 45 seconds.
  • MaxRetries: <number> - Number of retries before failing, not including the initial attempt. Default = 0 e.g. don't retry if fails.
  • RetryTime: <number> - How many seconds to wait before retry. The default is 300 (5 minutes).
  • Account: <account> - The account code for the call. This value will be assigned to CDR(accountcode)

When the call answers there are two choices:

  1. Execute a single application, or
  2. Execute the dialplan at the specified context/extension/priority.

To execute an application:

  • Application: <appname> - The application to execute
  • Data: <args> - The application arguments

To start executing applications in the dialplan:

  • Context: <context> - The context in the dialplan
  • Extension: <exten> - The extension in the specified context
  • Priority: <priority> - The priority of the specified extension; (numeric or label)
  • Setvar: <var=value> - You may also assign values to variables that will be available to the channel, as if you had performed a Set(var=value) in the dialplan. More than one Setvar: may be specified.

The processing of the call file ends when the call is answered and terminated; when the call was not answered in the initial attempt and subsequent retries; or if the call file can't be successfully read and parsed.

To specify what to do with the call file at the end of processing:

  • Archive: <yes no> - If 'no' the call file is deleted. If set to 'yes' the call file is moved to the 'outgoing_done' subdirectory of the Asterisk spool directory. The default is to delete the call file.

If the call file is archived, Asterisk will append to the call file:

  • Status: <exitstatus> - Can be 'Expired', 'Completed' or 'Failed'

Other lines generated by Asterisk:

Asterisk keep track of how many retries the call has already attempted, appending to the call file the following key-pairs in the form:

Dungeon tiles iv ruins of the wild pdf files. With the main process ID (pid) of the Asterisk process, the retry number, and the attempts start and end times in time_t format.

  • <astspooldir>/outgoing - The outgoing dir, where call files are put for processing
  • <astspooldir>/outgoing_done - The archive dir
  • <astspooldir> - Is specified in asterisk.conf, usually /var/spool/asterisk

Call files that have the time of the last modification in the future are ignored by Asterisk. This makes it possible to modify the time of a call file to the wanted time, move to the outgoing directory, and Asterisk will attempt to create the call at that time.

How to create Asterisk .call file ( how to automatically generate calls in asterisk)
Asterisk call files are structured files which, when moved to the appropriate directory, are able to automatically place calls using Asterisk. Call files are a great way place calls automatically without using more complex Asterisk features like the AGI, AMI, and dialplan, and require very little technical knowledge to use.
Call files are like a shell script for Asterisk. A user or application writes a call file into /var/spool/asterisk/outgoing/ where Asterisk processes it immediately
Asterisk .call demonstration
Let’s demonstrate the .call file principle with an example. Assume that we have a SIP phone registered with the number 1000 in Asterisk. In addition, we have the following dialplan in extensions.conf :
for more information about dialplan click this Link
We create a call file called broadcast.call in /tmp/ with the following content: vi /tmp/broadcast.call
Now we move this file with mv /tmp/broadcast.call /var/spool/asterisk/outgoing/
  • Asterisk polls the /var/spool/asterisk/outgoing/ for new call files and processes any it finds.
  • Asterisk opens a connection to device SIP/1000. If the device is in use or not answered, Asterisk tries two more times (seeMaxRetries).
  • If someone answers SIP/1000, Asterisk begins processing extension 777 in the context [voicebroadcast]. In this case, Asterisk plays hello-world to the answering party.
NameExplanation/Notes
Channel: <channel>The channel upon which to initiate the call
Callerid: <id>The caller ID to be used for the call.
WaitTime: <seconds>Number of seconds the system waits for the call to be answered. If not specified, defaults to 45 seconds.
MaxRetries: <integer>Maximum number of dial retries (if an attempt fails because the device is busy or not reachable). If not specified, defaults to 0 (only one attempt is made).
RetryTime: <seconds>Number of seconds to wait until the next dial attempt. If not specified, defaults to 300 seconds.
Account: <account>The account code for the CDR.
Context: <context>The destination context.
Extension: <exten>The destination extension, in which dialplan execution begins if the device is answered.
Priority: <priority>The destination priority. If not specified, defaults to 1.
Setvar: <var=value>lets you set one or more channel variables
Archive: <yes no>By default, call files are deleted immediately upon execution. If Archive: yes is set, they are copied into /var/spool/asterisk/outgoing_done/ instead. Asterisk adds a line to the call file which describes the result:Status: <Expired Completed Failed>
If the call is not processed follow the below steps
chmod 777 /var/spool/asterisk/outgoing
chown asterisk:asterisk /var/spool/asterisk/outgoing/broadcast.call
  • четверг 02 апреля
  • 21