列出用户Asterisk的用户名和SIP号码

时间:2014-11-27 12:11:16

标签: linux shell sh asterisk

我安装了Asterisk并且我有文件users.conf
我想创建一个可以list the usernames and their SIP number

的shell脚本

用户列在文件中,如下所示:

[6001]              
type=friend          
host=dynamic            
dtmfmode=rfc2833        
disallow=all            
allow=ulaw          
fullname = John DOE      
username = jdoe         
secret=secret           
context = work  

3 个答案:

答案 0 :(得分:0)

你可以使用一些简单的正则表达式:

grep -E '\[[0-9]+\]|username' users.conf

这个输出好吗?您也可以在没有括号或username = part的情况下列出这些。如果您需要更多帮助,请添加评论

答案 1 :(得分:0)

使用

 asterisk -rx "sip show users"

之后如果需要使用sed命令重写输出。

答案 2 :(得分:0)

sed '/^\[/h;/^username/!d;G;s/.*= *\(.*\)\n.\(.*\)\]/\1: \2/' users.conf
  • /^\[/h - 以[(SIP号码)开头的复制行以保留空格。
  • /^username/!d - 如果行不以username开头,请将其删除并转到下一行。 否则(用户名行):
  • G - 将保留空间(保留SIP号码)附加到用户名行。
  • s/.*= *\(.*\)\n.\(.*\)\]/\1: \2/ - 从组合行中提取用户名和编号,并以所需的输出格式重新组合。