我正在尝试创建一个shell脚本来监听来自Asterisk AMI的事件,但当我尝试连接时,我得到:
Response: Error
Message: Permission denied
以下是我脚本中的相关代码:
set username "username"
set secret "secret"
set host "127.0.0.1"
set port "5038"
spawn telnet $host $port
expect "Manager/1.3" {
send_user "Connected.\n"
send "Action: Login \nUsername: ${username}\nSecret: ${secret}\n\n"
}
问题是,如果我使用完全相同的用户名和密码手动登录到该主机和端口,它就可以正常工作。
如果有帮助,请查看来自manager.conf的相关代码
[general]
enabled = yes
bindaddr = 127.0.0.1
port = 5038
[username]
secret=secret
read=call
write=all
CLI的输出确认它正在尝试从127.0.0.1连接
我觉得我必须遗漏一些明显但却无法弄清楚它是什么的东西。
谢谢!
答案 0 :(得分:0)
长时间盯着代码已经产生了答案。在发送Action: Login
系统冒犯之前,我在/n
之后留下了一个额外的空格。我删除了空间,程序完美登录。