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

문자열 작업에 어려움이 있는 경우 \' 근처의 슬래시 수를 사용하고 자유롭게 질문하세요!

관련 정보