使用Asterisk Manager和“pyst”创建拨出呼叫

时间:2014-11-19 11:34:39

标签: python asterisk

我正在尝试编写一些自动化测试,这些测试会拨打我本地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语言,所以其他语言的解决方案对我来说不是很有帮助!

1 个答案:

答案 0 :(得分:1)

请再次阅读文档

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

有效的例子是:

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

上下文“出站”已生效且已发出呼叫。

PYST是开源框架。如果你真的对python“熟悉”,我建议你阅读原始方法的来源,并用星号doc检查它发送的内容

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

注意:如果您对星号本身没有一般了解,那么使用像PYST这样的框架的星号计划是非常糟糕的。首先你需要阅读星号书。