Asterisk Manager Interface和Asterisk Gateway Interface的协议实现
项目描述
Obelus是一个MIT许可的Python库,提供与Asterisk电话服务器的通信支持。它支持Asterisk Manager Interface (AMI)和Asterisk Gateway Interface (AGI)。
快速链接
源代码,问题跟踪器: https://bitbucket.org/optiflowsrd/obelus
文档(不完整):https://obelus.readthedocs.org
特性
支持Python 2和Python 3。
支持AMI、FastAGI和Async AGI。
事件驱动的API,对非阻塞(“async”)网络编程风格友好。
遵循PEP 3156风格的协议实现。
框架无关。
适用于Tornado、Twisted、Tulip等网络编程框架的适配器。
单元测试。
限制
API目前是低级的:它抽象掉了协议语法和通信序列,但并不尝试以特定方式暴露Asterisk的概念。
要求
Python 2.7、3.2或更高版本。
可选要求
示例
AMI客户端
为不同的框架提供了几个AMI客户端示例
$ python -m obelus.ami.tornadoadapter -h $ python -m obelus.ami.tulipadapter -h $ python -m obelus.ami.twistedadapter -h
FastAGI服务器
为不同的框架提供了几个FastAGI服务器示例
$ python -m obelus.agi.tornadofastagi -h $ python -m obelus.agi.tulipfastagi -h
通过研究这些模块的源代码,了解更多关于如何在您的应用程序中重用Obelus协议类。
开发
运行测试套件
要使用单个Python版本运行测试套件,请运行
$ pythonX.Y -m obelus.test
在3.3之前的Python版本上,您需要安装mock库。
要运行所有支持的解释器的测试套件,安装tox并运行
$ tox
常见问题解答
为什么叫“Obelus”?
Obelus是一种排版字符,有点像星号。