Pessoal, este script que pega o status
Do asterisk (1.2.13) relacionado a filas, agentes e canais e joga em tabelas
em um banco postgre.
Pra quem quiser usar. Depois é só fazer uma tela "for Windows" dando refresh
nas tabelas para supervisão.
Att:
Jr.

#!/bin/sh

# Data: 22/05/2007
# Captura DADOS do asterisk e envia para DB # [EMAIL PROTECTED] #
[EMAIL PROTECTED]


#Inicializa LOOP infinito
ZZZ=XXX
AAA=UUU

while [ "$ZZZ" != "$AAA" ];
do


# Limpa Tabelas temporarias
psql -c "delete from motor_dac where dac <> 'X9X'" asterisk;
psql -c "delete from motor_agente_livrea where codigo <> 'X9X' " asterisk;
psql -c "delete from motor_agente_ocupa where codigo <> 'X9X' " asterisk;
psql -c "delete from motor_agente_pausa where codigo <> 'X9X' " asterisk;
#psql -c "delete from motor_agentes where codigo <> 'X9X' " asterisk;
psql -c "delete from motor_canais where canal <> 'X9X' " asterisk;


#Inicializa variaveis
DAC="nonono"
CODAGENTE="nonono"

 CADASTRA TODOS OS AGENTES
BUFFERA=`asterisk -rx "show agents" |grep '(' |awk '{ print $0}'`
CONTA=1
FIM=`echo "$BUFFERA" |awk '{ print $1}'|tail -n1` 
 while [ "$CODAGENTE" != "$FIM" ]; 
   do
    CODAGENTE=`echo "$BUFFERA" |awk '{ print $1}' |head -n$CONTA |tail -n1` 
    NOME=`echo "$BUFFERA" |awk '{ print $2}' |head -n$CONTA |tail -n1`
    CONTA=$(($CONTA+1));
    psql -c "insert into motor_agentes(CODIGO,NOME)
values('$CODAGENTE','$NOME')" asterisk;
    
  done


CANAL="XXXX"

                # CANAIS ATIVOS
                BUFFERF=`asterisk -rx "show channels verbose" `
                CONTF=1
                FIMF=`echo "$BUFFERF" | awk '{ print $1}'|tail -n1` 
                while [ "$CANAL" != "$FIMF" ]; 
                        do
                                CANAL=`echo "$BUFFERF" | awk '{ print $1}'
|head -n$CONTF |tail -n1` 
                                CONTEXTO=`echo "$BUFFERF" | awk '{ print
$2}' |head -n$CONTF |tail -n1`
                                APP=`echo "$BUFFERF" | awk '{ print $6}'
|head -n$CONTF |tail -n1`
                                DADO=`echo "$BUFFERF" | awk '{ print $7}'
|head -n$CONTF |tail -n1`
                                CALLERID=`echo "$BUFFERF" | awk '{ print
$8}' |head -n$CONTF |tail -n1`
                                DURACAO=`echo "$BUFFERF" | awk '{ print $9}'
|head -n$CONTF |tail -n1`
                                CONTF=$(($CONTF+1));
                                psql -c "insert into
motor_canais(CANAL,CONTEXTO,APP,DADO,CALLERID,DURACAO)
values('$CANAL','$CONTEXTO','$APP','$DADO','$CALLERID','$DURACAO')"
asterisk;
    
                        done


CODAGENTE="XXXX"


# Cadastro dos DACs
BUFFER=`asterisk -rx "show queues" |grep strategy |awk '{ print $0}'`
CONT=1
FIM=`echo "$BUFFER" | grep strategy |awk '{ print $1}' |tail -n1` 
 while [ "$DAC" != "$FIM" ]; 
   do
    DAC=`echo "$BUFFER" | grep strategy |awk '{ print $1}' |head -n$CONT
|tail -n1` 
    CHE=`echo "$BUFFER" | grep strategy |awk '{ print $3}' |head -n$CONT
|tail -n1`
    TME=`echo "$BUFFER" | grep strategy |awk '{ print $10}' |head -n$CONT
|tail -n1`
    CHR=`echo "$BUFFER" | grep strategy |awk '{ print $13}' |head -n$CONT
|tail -n1`
    CHA=`echo "$BUFFER" | grep strategy |awk '{ print $14}' |head -n$CONT
|tail -n1`
    SLV=`echo "$BUFFER" | grep strategy |awk '{ print $15}' |head -n$CONT
|tail -n1`
    NSR=`echo "$BUFFER" | grep strategy |awk '{ print $17}' |head -n$CONT
|tail -n1`
    CONT=$(($CONT+1));
    psql -c "insert into motor_dac(DAC,CHE,TME,CHR,CHA,SLV,NSR)
values('$DAC','$CHE','$TME','$CHR','$CHA','$SLV','$NSR')" asterisk;
    
        # AGENTE LIVRE POR DAC
        BUFFERA=`asterisk -rx "show queue $DAC" |grep 'Not in use' |awk '{
print $0}'`
        CONTA=1
        FIMA=`echo "$BUFFERA" | grep 'Not in use' |awk '{ print $1}'|tail
-n1` 
        while [ "$CODAGENTE" != "$FIMA" ]; 
                do
                        CODAGENTE=`echo "$BUFFERA" | grep 'Not in use' |awk
'{ print $1}' |head -n$CONTA |tail -n1` 
                        NOME=`echo "$BUFFERA" | grep 'Not in use' |awk '{
print $2}' |head -n$CONTA |tail -n1`
                  QTD_CH=`echo "$BUFFERA" | grep 'Not in use' |awk '{ print
$7}' |head -n$CONTA |tail -n1`
                        TEMPO=`echo "$BUFFERA" | grep 'Not in use' |awk '{
print $11}' |head -n$CONTA |tail -n1`
                        CONTA=$(($CONTA+1));
                        psql -c "insert into
motor_agente_livrea(CODIGO,NOME,QTD_CH,TEMPO,DAC)
values('$CODAGENTE','$NOME','$QTD_CH','$TEMPO','$DAC')" asterisk;
    
                done
        
        CODAGENTE="nonononon"


        # AGENTE EM PAUSA POR DAC
        BUFFERE=`asterisk -rx "show queue $DAC" |grep 'paused' |awk '{ print
$0}'`
        CONTE=1
        FIME=`echo "$BUFFERE" | grep 'paused' |awk '{ print $1}'|tail -n1` 
        while [ "$CODAGENTE" != "$FIME" ]; 
                do
                        CODAGENTE=`echo "$BUFFERE" | grep 'paused' |awk '{
print $1}' |head -n$CONTE |tail -n1` 
                        NOME=`echo "$BUFFERE" | grep 'paused' |awk '{ print
$2}' |head -n$CONTE |tail -n1`
                  QTD_CH=`echo "$BUFFERE" | grep 'paused' |awk '{ print $8}'
|head -n$CONTE |tail -n1`
                        TEMPO=`echo "$BUFFERE" | grep 'paused' |awk '{ print
$12}' |head -n$CONTE |tail -n1`
                        CONTE=$(($CONTE+1));
                        psql -c "insert into
motor_agente_pausa(CODIGO,NOME,QTD_CH,TEMPO,DAC)
values('$CODAGENTE','$NOME','$QTD_CH','$TEMPO','$DAC')" asterisk;
    
                done



        CODAGENTE="nonononon"
     
                # AGENTE OCUPADO POR DAC
                BUFFERD=`asterisk -rx "show queue $DAC" |grep 'Busy' |awk '{
print $0}'`
                CONTD=1
                FIMD=`echo "$BUFFERD" | grep 'Busy' |awk '{ print $1}'|tail
-n1` 
                while [ "$CODAGENTE" != "$FIMD" ]; 
                        do
                                CODAGENTE=`echo "$BUFFERD" | grep 'Busy'
|awk '{ print $1}' |head -n$CONTA |tail -n1` 
                                NOME=`echo "$BUFFERD" | grep 'Busy' |awk '{
print $2}' |head -n$CONTA |tail -n1`
                                CONTD=$(($CONTD+1));
                                psql -c "insert into
motor_agente_ocupa(CODIGO,NOME,DAC) values('$CODAGENTE','$NOME','$DAC')"
asterisk;
    
                        done


  done

echo "Aguardando intervalo de 5s"
sleep 5
echo "OK!"

done
# Fim done loop

----------------------------------------
Estação VoIP 2006
5 e 6 Dezembro
Curitiba PR
http://www.estacaovoip.com.br

_______________________________________________
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

_______________________________________________
Acesse o  wiki AsteriskBrasil.org:
http://www.asteriskbrasil.org

Responder a