Asterisk hez kimenő call center

Fórumok

Üdv mindenkinek!

Közel 600 ügyfelünk felé kellene körkérdést intéznünk.
Az elképzelés az volt hogy a meglevő trixbox központot felhasználva telepítünk egy automata
kimenő hívások lekezelésére képes call centert és egy rögzített üzenettel végig csengetjük ügyfeleinket.

Erre a célra megtaláltam az astercrm - astercc párost, nem kellet volna.
2 napja küzdök vele de nem sikerül értelmes működésre bírnom.
Időnként nem akar kifelé telefonálni
ha telefonál akkor időnként nem ismeri fel hogy sikeres volt e a hívás vagy sem.
call result "MOVEDBYASTERCC" (e szerint sikertelen) de az astersik logban látom hogy az ügyfélnek lejátszotta az üzenetet.
ha nem volt sikeres a hívás nem akarja újra hívni stb.

Kérdés sikerült e valakinek használni az asterCRM /astercc programot.

Mit ajánlotok esetleg helyette.

Köszönettel
Robit

Hozzászólások

csinálsz asterisk-ben egy context-et, ami az egészet bejövő hívásként kezeli:
[kerdoiv]
exten => _X.,1,NoOp(read manual if not understand what's going on)
exten => _X.,n,Background(kerdoiv) ; ez lejatsza a szoveget
exten => 1,1,NoOp(ez tortenik ha 1-es gombot nyomott)
exten => 1,n,Playback(valaszat rogzitettuk, a viszonhallasra)
exten => 2,1,NoOp(ez tortenik ha 2-es gombot nyomott)
exten => 2,n,Playback(valaszat rogzitettuk, a viszonhallasra)

majd megcsinalod egyesevel v scriptbol a callfile-okat (es vigyazol ra, h ugy told bele az outgoing queue-ba, hogy ne teljen meg a kimeno kapacitasod).

Channel: Local/$telefonszam@from-internal
CallerID: <3676485745>
MaxRetries: 2
RetryTime: 60
WaitTime: 60
Background(pls-wait-connect-call)
Context: kerdoiv
Extension: $telefonszam
Priority: 1

Üdv!

A vége az lett hogy nem tetszett egy se, így bütyköltem egy scriptet ami használható eredményt adott.

fontos volt hogy csak egy hívás menjen egy időben ezért csináltam egy külön spool-t ahonnét és ahova mozgatom a hívó fájlokat
hívó fájlokat egy script generálja csv ből
a spoolmanager meg cronból hívódik minden percben és pakolgatja a hívó fájlokat

a extension_custm.conf ba
[autodial]
exten => _X.,1,NoOp(read manual if not understand what's going on)
exten => _X.,n,Background(custom/telefonkonyv_uzenet) ; ez lejatsza a szoveget
exten => _X.,n,Wait(10)
exten => 1,1,NoOp(ez tortenik ha 1-es gombot nyomott)
exten =>,n,Set(__NODEST=)
exten => 1,n,Goto(from-did-direct,1000,1)

így a lekérhetők az automatikus cdr ek


OLD_IFS=$IFS
IFS=$'\n'
nFile=telefonkönyv_hivaslista_20111205.csv
for nums in $(cat $nFile)
do
num=`echo $nums | awk -F"," {'print $1'}`
echo "Channel: Local/$num@from-autodial" >> $num.autodial
echo "CallerID: ">> $num.autodial
echo "RetryTime:$retry" >> $num.autodial
echo "MaxRetries:$maxretry" >> $num.autodial
echo "WaitTime:60" >> $num.autodial
echo "Background(pls-wait-connect-call)" >> $num.autodial
echo "Context: autodial" >> $num.autodial
echo "Extension:$num" >> $num.autodial
echo "Priority: 1 " >> $num.autodial
chown asterisk.asterisk $num.autodial
mv $num.autodial /etc/asterisk/autodial/spool/
done

a spoolmanager :

#!/bin/bash

RetryTime=3600
#RetryTime=5400
LogDate=` date `
# Ha van sikretelen hívás akkor félrerakjuk
if [ "$(ls -A /var/spool/asterisk/outgoing/*.autodial)" ]; then
for calls in /var/spool/asterisk/outgoing/*.autodial
do
InOutgoing=`tail -n1 $calls | grep 'EndRetry' | awk -F" " {'print $4'} | sed 's/^(*//g' | sed 's/)*$//g'`
if [ "$InOutgoing" > "0" ]; then
echo $LogDate ": Sikertelen hívás " $calls "mozgatás a spoolba" >>/etc/asterisk/autodial/spool.log
mv $calls /etc/asterisk/autodial/spool/
else
exit
fi
done
else
echo $LogDate ": /var/spool/asterisk/outgoing/ üres" >>/etc/asterisk/autodial/spool.log
fi

# Első próbálkozás

if [ "$(ls -A /etc/asterisk/autodial/spool/*.autodial)" ]; then
for calls in /etc/asterisk/autodial/spool/*.autodial
do
if [ `grep -L 'EndRetry' $calls` ]; then
echo $LogDate ": Első próbálkozás" $calls >>/etc/asterisk/autodial/spool.log
#$NextRetr
mv $calls /var/spool/asterisk/outgoing/
exit
fi
done
fi

# Keresünk a spoolban ismétlendő hívást
if [ "$(ls -A /etc/asterisk/autodial/spool/*.autodial)" ]; then
for calls in /etc/asterisk/autodial/spool/*.autodial
do
if [ `grep -l 'EndRetry' $calls` ]; then
EndRetry=`tail -n1 $calls | grep 'EndRetry' | awk -F" " {'print $4'} | sed 's/^(*//g' | sed 's/)*$//g'`
NextRetry=$(($EndRetry+$RetryTime)) # 60 perc múlva
CurTime=` date +%s`
if [ "$CurTime" -gt "$NextRetry" ]; then
echo $LogDate :" Ismételt próbálkozás" $calls >>/etc/asterisk/autodial/spool.log
#$NextRetry
mv $calls /var/spool/asterisk/outgoing/
exit
fi
fi
done
fi

olló + bütykölés, biztos lehet szebben és jobban, de 600 hívást végigvitt

Üdv Robit