挂断Asterisk频道的脚本

挂断Asterisk频道的脚本

我正在尝试为 Asterisk 创建一个脚本。我们使用很多channspy。有时,即使软件电话挂断,channspy 也会保持打开状态并且不会挂断(我不明白为什么)。所以我想创建一个脚本来获取以 开头打开的通道数,SIP/[extension]-channel并将其导出到一个TXT文件,该文件将有 3 列,并仅提取第一列

awk ' {print $1} '

但这就是我陷入困境的地方,因为每一行都有 1 个频道,如果我想挂断这个频道,我必须这样做

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

有人可以帮助我将每一行作为变量并循环脚本直到最后一行。所以命令会是这样的

asterisk -rx 'soft hangup $variable'

答案1

您也可以system与 awk 一起使用:

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

如果您在使用字符串时遇到问题,请使用 \' 附近的斜杠数量,并随时提出问题!

相关内容