Skip to content


Filtragem do log do Asterisk

Para facilitar a visualização do LOG do Asterisk e para gerar uma tabela, eu fiz o seguinte script, postado pra não perder.. hehe

Quem quiser, pode ficar a vontade para usar e comentar.

#!/bin/bash
# by jeiks

[ $# -lt 2 ] && { echo -e "\nERRO: Informe o arquivo e os ramais desejados.\nEx:\n\t$0 arquivo.csv 0004 0007 ... 0021\n";exit 1; }

ARQ=$1
RAMAL=""
for ((i=2;i<=$#;i++));do
eval "aux=\$$i"
RAMAL="$RAMAL\\\\\|SIP/$aux"
done

RAMAL=${RAMAL#\\\\\\\|}
#echo "$RAMAL"
#exit 0

echo '"Tipo de Ligação","De","Para","Ramal","Inicio","Fim","Duracao","Status"'
while read linha;do
case "$linha" in
*Full*|*Playback*)
continue
;;
*disc-ext*)
origem="Discagem recebida"
de=$( awk -F ',' '{print $2}' <<< "$linha")
ramal=$( awk -F ',' '{print $6}' <<< "$linha")
;;
#begin: disc-from-extension
*DDD*)
origem="Interno para DDD"
de=$( awk -F ',' '{print $5}' <<< "$linha")
de=${de#*/}
de=${de%-*}
ramal=$( awk -F ',' '{print $5}' <<< "$linha")
;;
*LocalFixo*)
origem="Interno para Local"
de=$( awk -F ',' '{print $5}' <<< "$linha")
de=${de#*/}
de=${de%-*}
ramal=$( awk -F ',' '{print $5}' <<< "$linha")
;;
*disc-from-extension*)
origem="Originada do Ramal"
de=$( awk -F ',' '{print $2}' <<< "$linha")
ramal=$( awk -F ',' '{print $5}' <<< "$linha")
;;
#end: disc-from-extension
*)
origem="Desconhecido"
esac
eval $(    awk -F ',' '{
print "para="$3;
print "inicio="$9;
print "fim="$11;
print "duracao="$12;
if ( "\"ANSWERED\"" == $14 )
print "status=ATENDIDA";
else
{
if ("\"BUSY\"" == $14)
print "status=OCUPADO";
else print "status=\"NAO ATENDIDO\""
}
print "\n";
}' <<< "$linha"  \
)

ramal=${ramal#*/}
ramal=${ramal%-*}
#DDD
if [ ${#para} -eq 13 ];then
para="(${para::1}${para:4:2}) ${para:5:4}-${para:9:4} op: ${para:1:2}"
#LOCAL
elif [ ${#para} -eq 8 ]; then
para="(033) ${para:0:4}-${para:4:4}"
fi

#DDD
if [ ${#de} -eq 13 ];then
de="(${para::1}${de:4:2}) ${de:5:4}-${de:9:4}"
#LOCAL
elif [ ${#de} -eq 8 ]; then
de="(033) ${de:0:4}-${de:4:4}"
fi

[ -z "$de" -a -z "$para" ] || echo "\"${origem//\"/}\",\"${de//\"/}\",\"${para//\"/}\",\"${ramal//\"/}\",\"${inicio//\"/}\",\"${fim//\"/}\",\"${duracao//\"/}\",\"${status//\"/}\""

done < <(grep 'DDD\|LocalFixo\|disc-ext\|disc-from-extension' $ARQ | grep "$RAMAL")

Postado em 🐧 GNU/Linux 🐧.


0 Respostas

Fique por dentro da conversa, assine o Feed deste post   em RSS.



Some HTML is OK

ou, responda este post através de um trackback.