Asteriskチャンネルを壊すスクリプト

Asteriskチャンネルを壊すスクリプト

Asterisk用のスクリプトを作成しようとしています。私たちはchannspyをたくさん使います。時にはソフトフォンが途切れても、channspyは開いたままで電話を切らない(理由はわからない)。だから私は開いているチャンネルの数を取得し、3つの列を持つファイルにSIP/[extension]-channelエクスポートし、最初の列だけを抽出するスクリプトを作成したいと思います。TXT

awk ' {print $1} '

しかし、各行に1つのチャンネルがあり、このチャンネルを切断したい場合は、これを行う必要があるため、ここでブロックされます。

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

誰かが各行を変数にし、最後の行までスクリプトを繰り返すのに役立ちますか?だからコマンドは次のようになります

asterisk -rx 'soft hangup $variable'

答え1

systemawkで使用することもできます。

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

テスト用:

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

答え2

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

文字列操作に問題がある場合は、\ '近くのスラッシュ数を使用して自由に質問してください!

関連情報