Asterisk — Автообзвон на Asterisk (FreePBX)

Syntax of call files
Specify where and how to call

Channel: : Channel to use for the call.
CallerID: «name» Caller ID, Please note: It may not work if you do not respect the format: CallerID: «Some Name» <1234>
MaxRetries: Number of retries before failing (not including the initial attempt, e.g. 0 = total of 1 attempt to make the call). Default is 0.
RetryTime: Seconds between retries, Don’t hammer an unavailable phone. Default is 300 (5 min).
WaitTime: Seconds to wait for an answer. Default is 45.
Account: Set the account code to use.
If the call answers, connect it here:

Context: Context in extensions.conf
Extension: Extension definition in extensions.conf
Priority: Priority of extension to start with
Set: Set a variable for use in the extension logic (example: file1=/tmp/to ); in Asterisk 1.0.x use ‘SetVar’ instead of ‘Set’
Application: Asterisk Application to run (use instead of specifiying context, extension and priority)
Data: The options to be passed to application
Set: Can now also write to dialplan functions like CDR()
AlwaysDelete: Yes/No — If the file’s modification time is in the future, the call file will not be deleted
Archive: Yes/No — Move to subdir «outgoing_done» with «Status: value», where value can be Completed, Expired or Failed.

Создаем контекст

[outboundmsg]
exten => s,1,Wait(2)
exten => s,n,Background(/var/lib/asterisk/sounds/custom/zapis)
exten => s,n,Hangup

Далее создаем скрипт который будет создать .call файл

#!/bin/sh
 
while read number; do
 
cat <<EOF  >  /var/spool/asterisk/$number
 
Channel: SIP/addpac/$number
Callerid: $number
MaxRetries: 200
RetryTime: 20
WaitTime: 30
Context: outboundmsg
Extension: s
Priority: 1
 
EOF
 
 
 
    chown asterisk:asterisk /var/spool/asterisk/$number
    mv /var/spool/asterisk/$number  /var/spool/asterisk/outgoing
 
 
 
    echo "$number"
 
    number=`expr $number + 1`
 
 
 
    while [ "$?" -eq "0" ]
 
    do
count_files ()
 
{
 
    count_f=`ls /var/spool/asterisk/outgoing | wc -l`
 
        if [ "$count_f" -eq "30" ]; then
 
            sleep 10
 
            return 0
 
        else
 
            return 1
 
        fi
 
}
 
 
 
    count_files
 
    done
 
 
 
done < /var/spool/asterisk/list.txt
 
exit 0
cat /var/spool/asterisk/list.txt
84951234567
84951234568
84951234569

Скрипт будет по порядку обзванивать весь список с промежутком 10 секунд.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *