Oi Ciro, tudo bem?

Não to falando que não é confiável o queue_log.
Já pedi ajuda para um pessoal que programa em bash script e teoricamente o script está correto... ele funciona por alguns instantes, mas ele se perde depois de um tempo em funcionamento...

Em anexo está meu programa. IMPORTANTE: Tem que rodar como daemon.
comando para execução do script: ./asterqueue &

Você teria como me enviar o seu script para eu ver?

Ciro escreveu:
Uso o queue_log como fonte de informação desde o * 1.0 e em produção.
Nunca tive problema, e digo mais, é completamente confiável.

Ciro

-----Mensagem original-----
De: asteriskbrasil-boun...@listas.asteriskbrasil.org
[mailto:asteriskbrasil-boun...@listas.asteriskbrasil.org] Em nome de
Leonardo Gomes Figueira
Enviada em: quarta-feira, 4 de março de 2009 13:01
Para: asteriskbrasil@listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil] QUEUE - Enviar dados


Rodrigo Vian escreveu:
É exatamente o que fiz, ler os eventos do queue_log... mas não sei porque, está gerando-se processos filhos, ou seja, mais de um processo

para o mesmo script e é ai que para de puxar as variáveis do queue_log

corretamente...

Provavelmente há algum erro de lógica na criação das threads ou
processos do seu script.

Você teria algum exemplo em manager e/ou agi???

Não.

  Leonardo
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil
rodando o Android da Google. http://www.neodroid.com

Compre uma camiseta da AsteriskBrasil.org! http://www.voipmania.com.br

Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro
na rede Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil 
rodando o Android da Google.
http://www.neodroid.com

Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br

Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede 
Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil



Rodrigo S. Vian
Analista/Programador
Porttal Tecnologia
Soluções em Telefonia & PBX-IP
http://www.porttaltecnologia.com.br
fone/fax: (19) 3542-9667

|-- Antes de imprimir, pense em sua responsabilidade com o Meio Ambiente --|
#!/bin/sh

#Source Library functions
. /etc/rc.d/init.d/functions

#Checa se o processo ja esta em execucao
if [ -f /var/run/asterqueue.pid ]; then 
        OLDPID=`head -n 1 /var/run/asterqueue.pid` 
        if [ -f /proc/${OLDPID}/cmdline ] && ps -p ${OLDPID} >/dev/null 2>&1; 
then
                echo "Asterqueue ja esta sendo executado..."
                exit 1
        else 
                rm -f /var/run/asterqueue.pid 
        fi
fi 

#Pega o PID do Processo
echo "$$" > /var/run/asterqueue.pid

#Define Local de LOG
LOGDIR="/var/log/asterisk"
#Define Local do Arquivo de Log da Fila do Asterisk
QUEUE_LOG="/var/log/asterisk/queue_log"
#Define Filas a serem monitoradas
QUEUEMON="9667"

CHECK_LAST_LINE=""
NCALL=0

[ -f $LOGDIR/asterqueue.log ] || touch $LOGDIR/asterkria.log
#DEBUG DAS VARIAVEIS - FASE DE TESTE
[ -f $LOGDIR/debugasterqueue.log ] || touch $LOGDIR/debugasterkria.log

while [ true ]
do
CHECK_QLOG=`tail -n 1 $QUEUE_LOG`
CHECK_EVENT=`tail -n 1 $QUEUE_LOG | cut -d \| -f 5`
CHECK_UNIQUEID=`tail -n 1 $QUEUE_LOG | cut -d \| -f 2`
CHECK_QCID=`tail -n 1 $QUEUE_LOG | cut -d \| -f 7`
CHECK_TIME=`tail -n 1 $QUEUE_LOG | cut -d \| -f 1`

if [ "$CHECK_TIME" != "$CHECK_LAST_LINE" ] 
then
        DATE=`date +%Y%m%d-%H%M%S`
        echo $DATE-$CHECK_QLOG >> $LOGDIR/asterqueue.log
        CHECK_LAST_LINE="$CHECK_TIME"
        if [ "$CHECK_EVENT" = "ENTERQUEUE" ]
           then
                QUEUES[$NCALL]="$CHECK_UNIQUEID-$CHECK_QCID"
                #DEBUG
                echo ENTERQUEUE - Variavel QUEUES ${QUEUES[$NCALL]} >> 
$LOGDIR/debugasterqueue.log
                tQL=$[${#QUEUES[*]} - 1]
                #DEBUG
                echo ENTERQUEUE - Variavel tQL $tQL >> 
$LOGDIR/debugasterqueue.log
                if [ $NCALL = $tQL ]
                then
                   ((NCALL++))
                   #DEBUG
                   echo ENTERQUEUE   Variavel NCALL++ $NCALL >> 
$LOGDIR/debugasterqueue.log
                else
                   NCALL=${#QUEUES[*]}
                   #DEBUG
                   echo ENTERQUEUE - Variavel NCALLQUEUES $NCALL >> 
$LOGDIR/debugasterqueue.log
                fi
        fi

        if [ "$CHECK_EVENT" = "CONNECT" ]
           then
                tQL=${#QUEUES[*]}
                #DEBUG
                echo CONNECT - Variavel tQL $tQL >> $LOGDIR/debugasterqueue.log
                for (( i=0; i<${tQL}; i++ ));
                  do
                        CHECK_QUEUES=`echo ${QUEUES[$i]} | cut -d - -f 1`
                        #DEBUG
                        echo CONNECT - Variavel CHECK_QUEUES $CHECK_QUEUES >> 
$LOGDIR/debugasterqueue.log

                        if [ "$CHECK_QUEUES" = "$CHECK_UNIQUEID" ]
                           then
                                SRC=`echo ${QUEUES[$i]} | cut -d - -f 2`
                                #DEBUG
                                echo CONNECT - Variavel SRC $SRC >> 
$LOGDIR/debugasterqueue.log
                                GET_CHANNEL=`rasterisk -rx "core show channels 
concise" | grep $QUEUE | grep "Bridged Call" | grep $SRC | cut -d ! -f 1`
                                #DEBUG
                                echo CONNECT - Variavel GET_CHANNEL 
$GET_CHANNEL >> $LOGDIR/debugasterqueue.log
                                echo CONNECT - Variavel CHECKQCID $CHECK_QCID 
>> $LOGDIR/debugasterqueue.log
                                DST=`rasterisk -rx "core show channel 
$GET_CHANNEL" | grep dst | cut -d = -f 2`
                                echo CONNECT $QUEUE:$SRC-$DST >> 
$LOGDIR/debugasterqueue.log
                                NCALL=$i
                                #DEBUG
                                echo CONNECT - Variavel NCALL $NCALL  >> 
$LOGDIR/debugasterqueue.log
                                break
                        fi      
                  done
        fi
fi
sleep 1
done
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil 
rodando o Android da Google.
http://www.neodroid.com

Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br

Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede 
Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Responder a