我正试图创建一个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}nn"
}
问题是,如果我使用完全相同的用户名和密码手动登录到该主机和端口,效果会很好。
如果有帮助的话,这里是manager.conf 的相关代码
[general]
enabled = yes
bindaddr = 127.0.0.1
port = 5038
[username]
secret=secret
read=call
write=all
CLI的输出确认它正在尝试从127.0.0.1 连接
我觉得我一定错过了一些显而易见的东西,但却弄不清是什么。
谢谢!
盯着代码看足够长的时间就得出了答案。在发送/n
之前,我在Action: Login
之后留出了一个额外的空间,系统开始进攻。我删除了空间,程序完美登录。