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