以下内容来自Asterisk Test Suite中的 ami 模块(以及其他一些地方)。我们在整个测试套件中广泛使用 starpy,因此您可能需要查看一些示例。假设以下代码驻留在具有成员方法 login 的某个类中。
def login(self):
def on_login_success(self, ami):
self.ami_factory.ping().addCallback(ping_response)
return ami
def on_login_error(self, reason):
print "Failed to log into AMI"
return reason
def ping_response(self, ami)
print "Got a ping response!"
return ami
self.ami_factory = manager.AMIFactory("user", "mysecret")
self.ami_factory.login("127.0.0.1", 5038).addCallbacks(on_login_success, on_login_error)
确保你的 manager.conf 配置正确。对于 Asterisk 测试套件,我们使用以下内容:
[general]
enabled = yes
webenabled = yes
port = 5038
bindaddr = 127.0.0.1
[user]
secret = mysecret
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan,test
write = system,call,agent,user,config,command,reporting,originate