【问题标题】:Creating an outgoing call using Asterisk Manager and "pyst"使用 Asterisk Manager 和“pyst”创建拨出电话
【发布时间】:2021-01-13 15:46:32
【问题描述】:

我正在尝试编写一些自动化测试,向我的本地 Asterisk 实例拨打电话,然后检查接收方 SIP 客户端是否已收到呼叫。

据我了解,我可以使用 Asterisk Manager 创建拨出呼叫事件。为此,我一直在尝试使用 Python 'pyst' 库。

我无法找到任何有关如何实现此场景的工作示例。根据我收集到的信息,我想出了这个脚本:

from asterisk import manager

HOST = 'localhost'
PORT = 5068

m = manager.Manager()

m.connect( HOST )

m.login( 'admin', 'temp123' )
targetURL = '441610000001'

response = m.originate(
    targetURL ,
    's',
    context='outgoing',
    priority='1'
    )

print m.status()

m.logoff()

m.close()

此脚本报告来自 Asterisk Manager 的“成功”响应,但实际上并未创建拨出呼叫。

有没有人用python写过一个脚本来做到这一点?

我只熟悉 Python 语言,所以其他语言的解决方案对我没有太大帮助!

【问题讨论】:

    标签: python asterisk


    【解决方案1】:

    请再次阅读文档

    你的程序中的“Targeturl”实际上是频道,所以在你的代码中它没有频道类型和主机(如果那个sip)。

    有效的例子是:

     targetURL = 'SIP/441610000001@myprovider_name'
     targetURL = 'Local/441610000001@outbound_context'
    

    上下文“出站”有效且已发送调用。

    PYST 是开源框架。如果您真的“熟悉”python,我建议您阅读起源方法的来源并使用星号文档检查它发送的内容

    http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Originate

    注意:如果您对星号本身没有一般知识,那么使用 PYST 等框架的星号程序是非常糟糕的主意。首先你需要阅读星号书。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多