我有一个星号服务器,端口8088上启用AMI web,前缀asterisk
。 所以我的rawmanurl是http://myserver:8088/asterisk/rawman
我只是试着login和2个url平
http://myserver:8088/asterisk/rawman?action=login&username=admin&secret=admin
http://myserver:8088/asterisk/rawman?action=ping
当我在网页浏览器上面input2个以上的URL时,它就起作用了,但是当我从terminal上使用cURL的时候,它不会工作。
docker结果:
curl 'http://myserver:8088/asterisk/rawman?action=login&username=admin&secret=admin'
Response: Success
Message: Authentication accepted
curl 'http://myserver:8088/asterisk/rawman?action=ping'
Response: Error
Message: Permission denied
来自Asterisk CLI的错误:(XXXX是我的LAN IP地址)
HTTP Connect attempt from 'XXXX' unable to authenticate
所以我不能像处理AJAM时那样执行任何进一步的命令。
如果有人有一个想法,请帮助我,谢谢。
最好的祝福
Loi当
随着你在浏览器中的第一个请求,你通过身份验证过程和星号响应一个cookie,你的浏览器保持和使用进一步的请求。 您应该在AMI响应Set-Cookie标题中看到它。
但是,使用cURL时不会发生这种情况,它不会为您保存cookie。 您应该明确告诉cURL在请求中使用cookie。 请参阅cURL手册以查找详细信息http://curl.haxx.se/docs/http-cookies.html
要么
您可以为每个请求提供摘要式身份验证。 例如你的ping动作看起来像这样:
curl -v --digest -u admin:admin http://myserver:8088/asterisk/rawman?action=ping
讨厌回答我自己的问题,但是我把这个帖子发给了那些会陷入这个麻烦的人
参考http://curl.haxx.se/docs/http-cookies.html总之:
登录时保存cookiejar:
curl -c ./cookie-file -v http:// myserver:8088 / asterisk / rawman?action = login&username = admin&secret = admin
用ping或其他命令使用cookiejar:
curl -b ./cookie-file -v http:// myserver:8088 / asterisk / rawman?action = ping
它应该工作。
Loi当