Script para desligar os canais do Asterisk

3

Estou tentando criar um script para o Asterisk. Nós usamos muito channspy. Às vezes o canal fica aberto e não se liga, mesmo que o softphone esteja desligado (não entendo por quê). Então eu pensei em criar um script para pegar o número de canais abertos iniciados com o SIP/[extension]-channel e este grep exportá-lo para um arquivo TXT este arquivo terá 3 colunas e extrairá apenas a primeira coluna com

awk ' {print $1} '

mas aqui é onde eu enfiei porque cada linha tem 1 canal e se eu quiser desligar esse canal eu tenho que fazer

asterisk -rx 'soft hangup SIP/[exntesion]-channel'

Alguém pode me ajudar com isso para obter cada linha como uma variável e loop o script até a última linha. então o comando será algo como

asterisk -rx 'soft hangup $variable'
    
por Argur Kasemi 31.03.2015 / 11:44

2 respostas

2

Você também pode usar system com o awk:

awk ' command = "asterisk -rx '\''soft hangup " $1 "'\''" { system(command); }' channels_file

apenas para testes:

awk ' command = "asterisk -rx '\''soft hangup " $1 "'\''" { print command; }' channels_file
    
por 31.03.2015 / 12:00
0

cat 3-column-file-of-yours.txt | awk '{ sprintf "asterisk -rx \'soft hangup SIP/%s-channel\'\n",$1; }' | /bin/bash

Jogue com o número de barras próximas a \ 'se você tiver problemas com a string e fique à vontade para fazer perguntas!

    
por 31.03.2015 / 11:53