[AsteriskBrasil] Limitar chamadas saintes da pasta /var/spool/aterisk/outgoing/

tel medola tel.medola em gmail.com
Quinta Junho 5 19:14:13 BRT 2014


Show de bola!!!!

Em quinta-feira, 5 de junho de 2014, Rafael dos Santos Saraiva <
rafaelsnsa em gmail.com> escreveu:

> Fiz um esboço de um script:
>
>
> ######## INICIO #################
> #!/bin/bash
> # create table numeros( id int auto_increment primary key, numero
> varchar(50), usado varchar(50)) engine=innodb;
>
> DBUSER=''
> DBPASS=''
> DBNAME=''
> DBTABLE=''
> CHANNLIMIT='30'
>
> while :
> do
>         mysql -u${DBUSER} -p${DBPASS} --skip-column-names ${DBNAME} -B -e
> "SELECT numero FROM ${DBTABLE} WHERE usado != '1'" | while read NUMBER; do
>         NCALLS=`/usr/sbin/asterisk -rx "core show channels" | grep "DAHDI"
> | wc -l`
>                 if [ "${NCALLS}" -lt "${CHANNLIMIT}" ]; then
>
>
>                         #editar aqui com os comandos para criar o arquivo
> .call
>
>
>                         mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "UPDATE
> ${DBTABLE} SET usado='1' WHERE numero='${NUMBER}'"
>                 fi
>         done
> done
> ########  FIM #################
>
>
> Preencha as variáveis e crie a tabela conforme o exemplo do inicio do
> script. Falta só os comandos para a criação do arquivo em si(indiquei onde
> colocar ali em cima).
>
> Ahh, o script faz o seguinte:
> -Lê os numeros da tabela,  se o campo "usado" for diferente de "1" , cria
> o arquivo .call e muda o registro do campo "usado" daquele numero para '1'.
> Tudo isso, desde que a quantidade de canais DAHDI em uso no momento seja
> menor que 30(CHANNLIMIT).
>
> Ele fica rodando em loop, ou seja, sempre que você adicionar um registro
> novo, ele já vai ler e realizar o processo.
>
> Espero ter ajudado.
>
>
>
>
> Att,
> *Rafael dos Santos Saraiva*
> <http://br.linkedin.com/pub/rafael-saraiva/52/aab/230>
>
>
> Em 5 de junho de 2014 16:10, Bernini Asterisk <asterisk_ti em yahoo.com.br
> <javascript:_e(%7B%7D,'cvml','asterisk_ti em yahoo.com.br');>> escreveu:
>
>> boa tarde
>>
>> Cara não manjo muito de my sql
>> achei legal sua ideia , realmente seria melhor adicionar todos os números
>> em um banco de dados
>> porém como eu faço para adicionar-los e depois para colsutar
>> por exemplo
>> vou jogar um arquivo .txt dentro da pasta ai ele vai ler linha por linha
>> oque ele faz hj é ler linha por linha e criar um .call
>> no caso teria quer ler linha por linha e adicionar no banco
>>
>> se tiver alguma dica aceito rsrsrs
>>
>> valeuuu
>>
>>
>>
>>   Em Quinta-feira, 5 de Junho de 2014 15:05, Rafael dos Santos Saraiva <
>> rafaelsnsa em gmail.com> escreveu:
>>
>>
>> Boa Tarde Breno
>>
>> Eu faria assim:
>> Pegaria a quantidade de chamadas ativas, levando em conta que cada
>> chamada ativa esteja utilizando um canal do E1 e que não existam chamadas
>> entre ramais internos:
>> CALLS=`/usr/sbin/asterisk -rx "core show channels" | grep "active calls"
>> | cut -d' ' -f1`
>>
>> Assim, coloque o seu script em loop:
>> Enquanto CALLS < 30 { criar .call e joga em val/lib/as*/outgoing}
>>
>> Lembre-se que neste caso, você precisa 'setar' se o asterisk já ligou
>> para o número, se não a cada loop o script vai começar do inicio da lista.
>> Minha recomendação seria colocar esses numeros em um BD e a cada arquivo
>> .call criado marcar na tabela para ser ignorado na próxima leitura.
>>
>>
>>
>>
>> Att,
>> *Rafael dos Santos Saraiva*
>> <http://br.linkedin.com/pub/rafael-saraiva/52/aab/230>
>>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20140605/c309586d/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil