我試圖使用python套接字來獲取Asterisk服務器的狀態,但沒有任何反應。如何使用套接字獲取Asterisk服務器的狀態 - Python
這裏是我的代碼:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = '192.168.1.105'
PORT = 5038
s.connect((HOST, PORT))
params = """Action: login
Events: off
Username: admin
Secret: mypass
Action: status
Action: Logoff
"""
s.send(params)
data = s.recv(1024)
print data + '\n'
s.close()
我剛剛得到一個消息,說Asterisk的版本,僅此而已。
我希望有人能幫助我。
在此先感謝。
謝謝您的回答。我想你的解決方案,但沒有任何反應,當我執行: PARAMS = '行動:狀態' s.send(PARAMS + '\ r \ n') 數據= s.recv(1024) Python的控制檯在那裏停留也沒有更多。 – Harph 2010-02-22 02:00:38
您是否擁有正在運行AMI程序的用戶帳戶的正確權限設置?查看voip-info上的這個頁面(它包含執行該命令所需的權限列表): http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Status 另外,不要在python控制檯中測試它。您輸入的延遲可能會導致超時。把你的代碼放入一個python程序並運行它以獲得可靠的結果。 – rdegges 2010-02-22 07:32:06