ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Автообзвон+callback

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Автообзвон+callback

Сообщение El_Vago » 31 мар 2020, 09:22

Добрый день. Извиняюсь за корявое название темы, лучше ничего не придумал.
Имеем автообзвон через скрипт:
Код: выделить все
#!/bin/sh

while read number; do

cat <<EOF  >  /var/spool/asterisk/$number

Channel: SIP/ringing/$number
Callerid: $number
MaxRetries: 5
RetryTime: 20
WaitTime: 20
Context: new_dial
Extension: s
Priority: 1
Archive: Yes

EOF

    chown root:root /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 "1" ]; then
            sleep 30
            return 0
        else
            return 1
        fi
}
    count_files
    done
done < /var/spool/asterisk/new.txt

exit 0


Который прозванивает поочередно номера из списка и отлично работает. Так же имеем обратный звонок:
Код: выделить все
#!/bin/bash

number=$1
callfile=/tmp/$number.call

Channel="216"
MaxRetries=10
RetryTime=10
WaitTime=20
Context="out_callback"
Extension="s"
Priority=1
DATA=`date`

rm -Rf $callfile

sleep 120

touch $callfile
echo "Action: Originate" >> $callfile
echo "Channel: Local/216@callback_queue/n" >> $callfile
echo "MaxRetries: $MaxRetries" >> $callfile
echo "RetryTime: $RetryTime" >> $callfile
echo "WaitTime: $WaitTime" >> $callfile
echo "Context: $Context" >> $callfile
echo "Extension: $Extension" >> $callfile
echo "Priority: $Priority" >> $callfile
echo "Set: CB=$number" >> $callfile

mv $callfile /var/spool/asterisk/outgoing/
exit 0

Который тоже работает на 5+. Но если у нас запущен автообзвон и в это время в outgoing прилетает .call файл на обратный звонок, то вместо построчного создания .call файлов для автообзвона, в outgoing сразу формируются .call файлы всех телефонов из списка. Так и должно быть или я не вижу ошибку в скриптах?
Сейчас заметил, что проблема возникает, если в outgoing более одного .call файла.
El_Vago
 
Сообщений: 58
Зарегистрирован: 05 дек 2017, 13:46

Re: Автообзвон+callback

Сообщение El_Vago » 31 мар 2020, 15:19

Решить не удалось. Просто упростил скрипт. Без всяких хитрых проверок:
Код: выделить все
#!/bin/sh

pause=80
dialdir=/var/spool/asterisk # No trailing slash!
diallist=/var/spool/asterisk/new.txt

echo `date`": Пошла жара!"

while read number; do

echo "Channel: SIP/ringing/$number
Callerid: $number
MaxRetries: 1
RetryTime: 5
WaitTime: 20
Context: new_dial
Extension: s
Priority: 1
Archive: Yes"  > $dialdir/$number

chown root:root $dialdir/$number
mv $dialdir/$number $dialdir/outgoing

echo "$number"
sleep $pause

done < $diallist
echo "Всё!"
exit 0

Но буду рад если кто-то всё-таки поможет с прошлой реализацией.
El_Vago
 
Сообщений: 58
Зарегистрирован: 05 дек 2017, 13:46

Re: Автообзвон+callback

Сообщение ded » 03 апр 2020, 16:39

Вот такая реакция на автообзвон:
https://www.youtube.com/watch?v=SvHCqqarbAI

https://masterok.livejournal.com/6127366.html
ded
 
Сообщений: 15820
Зарегистрирован: 26 авг 2010, 19:00

Re: Автообзвон+callback

Сообщение El_Vago » 09 апр 2020, 06:57

Просто обзваниваем абонентов, у которых скоро заканчиваются средства. Никакого криминала... наверное.
El_Vago
 
Сообщений: 58
Зарегистрирован: 05 дек 2017, 13:46

Re: Автообзвон+callback

Сообщение BorisTheBlade » 11 апр 2020, 00:11

Код: выделить все
       if [ "$count_f" -eq "1" ]; then

должно быть
if [ "$count_f" -ge"1" ]; then
BorisTheBlade
 
Сообщений: 167
Зарегистрирован: 14 фев 2011, 15:24

Re: Автообзвон+callback

Сообщение El_Vago » 13 апр 2020, 09:42

Не помогло. Ну да ладно новая конструкция чем-то даже лучше.
El_Vago
 
Сообщений: 58
Зарегистрирован: 05 дек 2017, 13:46


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH