|
|
|
|
#!/bin/bash
|
|
|
|
|
#
|
|
|
|
|
# queue_log.sh - Faz "upload" do arquivo /var/log/asterisk/queue_log
|
|
|
|
|
# para o banco de dados
|
|
|
|
|
#
|
|
|
|
|
# Autor : Alan Pablo <pablo@contacte.com.br>
|
|
|
|
|
# Autor : Contacte Gestao e Relacionamento <http://www.contacte.com.br>
|
|
|
|
|
# Local : Porto Velho - RO 04/10/2008
|
|
|
|
|
#
|
|
|
|
|
# --------------------------------------------------------------------
|
|
|
|
|
# Este programa busca por todas as informacoes armazenadas no arquivo
|
|
|
|
|
# /var/log/asterisk/queue_log formata e insere na tabela queue_log
|
|
|
|
|
# em um banco de dados Postgresql.
|
|
|
|
|
#
|
|
|
|
|
# --------------------------------------------------------------------
|
|
|
|
|
#
|
|
|
|
|
# Vers<EFBFBD>o 1.0, Alan Pablo , 2008-10-04 , Porto Velho - RO
|
|
|
|
|
# Vers<EFBFBD>o 1.1, Alan Pablo , 2010-04-19 , Cuiab<EFBFBD> - MT
|
|
|
|
|
# - Adicionado tratamento para verificar se o script j<EFBFBD> est<EFBFBD> em execu<EFBFBD><EFBFBD>o,para evitar que seja rodado 2 ao mesmo tempo
|
|
|
|
|
# - Adicionado o caminho para o arquivo bdcallcenter onde ficam as variaveis de acesso ao banco de dados
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Verifica se o script est<EFBFBD> rodando
|
|
|
|
|
if [ -e /tmp/queue_log.pid ] ; then
|
|
|
|
|
date +%d-%m-%Y-%H:%M:%S >> /var/log/queue_log.log
|
|
|
|
|
echo "Queue_log j<EFBFBD> est<EFBFBD> em execu<EFBFBD><EFBFBD>o" >> /var/log/queue_log.log
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
#Gera PID do scritp
|
|
|
|
|
echo $$ > /tmp/queue_log.pid
|
|
|
|
|
|
|
|
|
|
#Configura<EFBFBD><EFBFBD>es para acesso a base de dados
|
|
|
|
|
. /var/lib/asterisk/scripts/callcenter/bd
|
|
|
|
|
|
|
|
|
|
TABELA=ast_eventos_dacs
|
|
|
|
|
|
|
|
|
|
#Diretorio para logs
|
|
|
|
|
if ! [ -d /var/log/scripts ] ; then
|
|
|
|
|
echo "Criando ---> /var/log/scripts"
|
|
|
|
|
mkdir -p /var/log/scripts
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
#Apagando /var/log/asterisk/queue_log.old caso exista
|
|
|
|
|
if [ -e /var/log/asterisk/queue_log.old ] ; then
|
|
|
|
|
echo "Apagando /var/log/asterisk/queue_log.old"
|
|
|
|
|
rm /var/log/asterisk/queue_log.old
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Renomea o arquivo,gera um novo e renova os logs do asterisk
|
|
|
|
|
mv /var/log/asterisk/queue_log /var/log/asterisk/queue_log.old
|
|
|
|
|
touch /var/log/asterisk/queue_log
|
|
|
|
|
chown --recursive pbx:pbx /var/log/asterisk/queue_log
|
|
|
|
|
chmod --recursive u=rwX,g=rX,o= /var/log/asterisk/queue_log
|
|
|
|
|
asterisk -rx "logger reload"
|
|
|
|
|
|
|
|
|
|
#Cria uma copia de seguranca do arquivo,enquanto o programa passa
|
|
|
|
|
#por fase de avaliacao
|
|
|
|
|
cat /var/log/asterisk/queue_log.old >> /var/log/asterisk/queue_log.original
|
|
|
|
|
|
|
|
|
|
export PGPASSWORD=$SENHA
|
|
|
|
|
cat /var/log/asterisk/queue_log.old | while read LINHA; do
|
|
|
|
|
|
|
|
|
|
#Separando as informacoes em variaveis
|
|
|
|
|
UID1=$(echo "$LINHA" | cut -d "|" -f1)
|
|
|
|
|
UID2=$(echo "$LINHA" | cut -d "|" -f2)
|
|
|
|
|
FILA=$(echo "$LINHA" | cut -d "|" -f3)
|
|
|
|
|
AGENTE=$(echo "$LINHA" | cut -d "|" -f4)
|
|
|
|
|
EVENTO=$(echo "$LINHA" | cut -d "|" -f5)
|
|
|
|
|
PARAM1=$(echo "$LINHA" | cut -d "|" -f6)
|
|
|
|
|
PARAM2=$(echo "$LINHA" | cut -d "|" -f7)
|
|
|
|
|
PARAM3=$(echo "$LINHA" | cut -d "|" -f8)
|
|
|
|
|
PARAM4=$(echo "$LINHA" | cut -d "|" -f9)
|
|
|
|
|
|
|
|
|
|
#Inserindo na base dados
|
|
|
|
|
case $EVENTO in
|
|
|
|
|
"TRANSFER" )
|
|
|
|
|
|
|
|
|
|
psql -c "insert into $TABELA (uid1,uid2,fila,agente,evento,param1,param2,param3,param4) values ('$UID1','$UID2','$FILA','$AGENTE','$EVENTO','$PARAM3','$PARAM2','$PARAM3','$PARAM4') " -h $HOST_DB -d $BASE_DB -U $USUARIO
|
|
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
"CHAMANDO"|"COMPLETACALLER"|"COMPLETAAGENT"|"COMPLETEAGENTRAMAL"|"COMPLETECALLERRAMAL"|"BUSYS"|"NOANSWERS" )
|
|
|
|
|
|
|
|
|
|
PARAM1=$(echo "$LINHA" | cut -d "|" -f6 | cut -d "," -f1)
|
|
|
|
|
PARAM2=$(echo "$LINHA" | cut -d "|" -f6 | cut -d "," -f2)
|
|
|
|
|
PARAM3=$(echo "$LINHA" | cut -d "|" -f6 | cut -d "," -f3)
|
|
|
|
|
PARAM4=$(echo "$LINHA" | cut -d "|" -f6 | cut -d "," -f4)
|
|
|
|
|
|
|
|
|
|
psql -c "insert into $TABELA (uid1,uid2,fila,agente,evento,param1,param2,param3,param4) values ('$UID1','$UID2','$FILA','$AGENTE','$EVENTO','$PARAM1','$PARAM2','$PARAM3','$PARAM4') " -h $HOST_DB -d $BASE_DB -U $USUARIO
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
psql -c "insert into $TABELA (uid1,uid2,fila,agente,evento,param1,param2,param3,param4) values ('$UID1','$UID2','$FILA','$AGENTE','$EVENTO','$PARAM1','$PARAM2','$PARAM3','$PARAM4') " -h $HOST_DB -d $BASE_DB -U $USUARIO
|
|
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
#Removendo LIXO
|
|
|
|
|
psql -c " delete from $TABELA where evento not in ('COMPLETEAGENTRAMAL','COMPLETECALLERRAMAL','EXITWITHTIMEOUT','TIMEOUT','CHAMANDO','NOANSWER','COMPLETAAGENT','COMPLETACALLER','BUSY','ATENDIDA','TRANSBORDANDO','TRANSBORDADO','ABANDON','COMPLETEAGENT','COMPLETECALLER','CONNECT','ENTERQUEUE','TRANSFER','BUSYS','NOANSWERS') " -h $HOST_DB -d $BASE_DB -U $USUARIO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rm -rf /tmp/queue_log.pid
|
|
|
|
|
exit
|