К основному контенту

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

Syntax of call files
Specify where and how to call
  • Channel: <channel>: Channel to use for the call.
  • CallerID: «name» <number> Caller ID, Please note: It may not work if you do not respect the format: CallerID: «Some Name» <1234>
  • MaxRetries: <number> 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: <number> Seconds between retries, Don't hammer an unavailable phone. Default is 300 (5 min).
  • WaitTime: <number> 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-name> Context in extensions.conf
  • Extension: <ext> Extension definition in extensions.conf
  • Priority: <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
/var/spool/asterisk/list.txt

84951234567
84951234568
84951234569

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

Комментарии

Популярные сообщения из этого блога

Настройка записи разговоров freepbx

1. Заходим на Web-интерфейс  2. Выбираем   « Панель пользователя» и вводим логин и пароль для входа(логин и пароль — это внутренний номер абонента). 3. Если правильный логин и пароль, то попадаем в интерфейс пользователя: Дата  — дата звонка; Время  — время звонка; Номер  — отображается телефонный номер   ( а под ним — внутренний номер   ), с которого был произведен звонок; Источник  — указывается внутренний номер; Назначение  — указывается внутренний номер, куда был послан звонок; Длительность  — указывается время в секундах, телефонного разговора; Монитор  — имеет две иконки:  — открывает флеш плеер для проигрывания записи разговора;  — предлагает сохранить запись разговора на жесткий диск. 3. Прослушивание записи разговоров может происходить в двух вариантах: Вариант 1 Выбираете интересующий Вас звонок и нажимаете на иконку  , после чего под строчкой звонка откроется полоска флеш-плеера, где можно будет управлять ходом прослушивания звукового файла: Ва

Запись и обслуживание разговоров в Asterisk FreePBX

Как и многие другие компании мы используем  FreePBX —  графический интерфейс для Астериск. Служба безопасности требует записывать все входящие и исходящие звонки , не проблема все делается просто: Заходим в админку http://sip.domain.local/admin/config.php , далее General Settings и делаем как у казанно у меня на скрине: Вот вроде и все , но если не следить за записями  они забьют все место на масиве. На помощь нам приходит bash =) , пишем скрипт который будет удалять записи старше 14 дней ( для службы безопасности такой срок устраивает) #!/bin/bash # Указываем директорию где расположены файлы RECORDINGS=/var/spool/asterisk/monitor # Указываем период за какой срок удалять файлы записи  RECORDINGEXPIRY=14 # Указываем за какой срок хранить логи LOGEXPIRY=365 # Дата DATE=`date` # Удаляем записи старше $RECORDINGEXPIRY дней find $RECORDINGS -mtime +$RECORDINGEXPIRY -exec rm -rfv > removal-$DATE.log # Удаляем логи старше $LOGEXPRY find . -mtime +$LO