PABX da Simples IP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

107 lines
4.1 KiB

#!/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ão 1.0, Alan Pablo , 2008-10-04 , Porto Velho - RO
# Versão 1.1, Alan Pablo , 2010-04-19 , Cuiabá - MT
# - Adicionado tratamento para verificar se o script já está em execuçã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á rodando
if [ -e /tmp/queue_log.pid ] ; then
date +%d-%m-%Y-%H:%M:%S >> /var/log/queue_log.log
echo "Queue_log já está em execução" >> /var/log/queue_log.log
exit
fi
#Gera PID do scritp
echo $$ > /tmp/queue_log.pid
#Configuraçõ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