我正在尝试编写一些自动化测试,这些测试会拨打我本地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语言,所以其他语言的解决方案对我来说不是很有帮助!
答案 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这样的框架的星号计划是非常糟糕的。首先你需要阅读星号书。