从Python脚本w/Starpy到Asterisk的AMI连接的基本示例

2024-10-01 02:28:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几年使用asterisk的丰富经验,但对python还是个新手。 我想从python脚本连接并接收一些事件。我用AMIUSERNAME和{}作为凭据创建了一个manager用户,并测试了其工作正常。我还安装了StarPy。 然后我用命令python ami.py USERNAME PASSWORD运行以下脚本:

import sys
from starpy import manager
f = manager.AMIFactory(sys.argv[1], sys.argv[2])
df = f.login('127.0.0.1',5038)

同时监视星号控制台,什么也没发生。 有人知道我错过了什么吗?在

我想发送一个乒乓操作,并等待一个乒乓响应。在


Tags: 用户pyimport命令脚本sys事件manager
2条回答

下面是从Asterisk Test Suite中的ami模块(以及其他一些地方)中提取的。我们在整个测试套件中广泛使用starpy,因此您可能需要查看一些示例。假设以下代码驻留在某个具有成员方法登录名的类中。在

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)

确保你的经理.conf配置正确。对于星号测试套件,我们使用以下内容:

^{pr2}$

我假设f.login()返回一个具有ping()方法的^{}实例。在

我对starpy一无所知,所以有些模糊的建议:

  • 将Python作为一个交互式shell启动。执行代码并当场检查结果。help函数是您的朋友;请在脚本的最后一行之后尝试{}。

  • 查看starpy发行版中的examples目录。也许你需要的代码有90%已经存在了。

相关问题 更多 >