【问题标题】:Basic example of AMI connection to Asterisk from Python script w/Starpy从带有 Starpy 的 Python 脚本到 Asterisk 的 AMI 连接的基本示例
【发布时间】:2012-04-19 13:07:17
【问题描述】:

我有多年使用 asterisk 的丰富经验,但我是 python 新手。 我想从 python 脚本连接并接收一些事件。我创建了一个使用AMIUSERNAMEAMIPASSWORD 作为凭据的经理用户,并且测试工作正常。我还安装了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)

在监视星号控制台时,没有任何反应。 有谁知道我错过了什么?

我想发送一个 Ping 动作并等待 Pong 响应。

【问题讨论】:

    标签: python asterisk


    【解决方案1】:

    我想f.login() 会返回一个AMIProtocol 实例,它有一个ping() 方法。

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

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

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

    【讨论】:

      【解决方案2】:

      以下内容来自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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-23
        • 1970-01-01
        • 2013-04-23
        相关资源
        最近更新 更多