forked from SimplesIP/pabx-app
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
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 |