2024-04-26 04:34:27 发布
网友
我想用Python编写fastAGI脚本。我查遍了整个网络,发现关于这个的文档非常少。到目前为止,我发现有pyst,pyst2,starpy是非常流行的。但问题是,他们甚至缺乏基本的文档(或者至少我没有找到任何)。我想知道是否有好的资源可以开始使用python中的fastAGI编程,使用任何现有的库,而不是从头重写所有内容。
我还想知道是否还有其他像我提到的那样好的库。
如果什么都没有,我有什么选择?
你可以在这里读普通的医生
http://www.voip-info.org/wiki/view/Asterisk+FastAGI
http://www.voip-info.org/wiki/view/Asterisk+AGI
很简单,我相信您可以理解基于此的lib调用。第二页还有python的lib列表。
从星号开始:星号电话簿的未来http://shop.oreilly.com/product/9780596009625.do
python中有许多星号库,可以用来开发FastAGI。一个是尼尔·塔利姆的《皮斯特里克斯》(http://code.google.com/p/pystrix/)。下面是关于如何开发FastAgi服务器的示例。
在dialplan中,您将呼叫发送到FastAGI服务器:
[some-context] exten => 567567,1,NoOp() exten => s,n,AGI(agi://host:port/testcall) exten => s,n,Hangup()
创建要侦听的FastAgi服务器/testcall url:
import pystrix class FastAGIServer(threading.Thread): _fagi_server = None def __init__(self): threading.Thread.__init__(self) self.daemon = True self._fagi_server = pystrix.agi.FastAGIServer() self._fagi_server.register_script_handler(re.compile('testcall'), self._testcall_handler) self._fagi_server.register_script_handler(None, self._fallback_handler) def _testcall_handler(self, agi, args, kwargs, match, path): agi.execute(pystrix.agi.core.Answer()) response = agi.execute(pystrix.agi.core.StreamFile('demo-thanks', escape_digits=('1', '2'))) agi.execute(pystrix.agi.core.Hangup()) def _fallback_handler(self, agi, args, kwargs, match, path): # Do something here def kill(self): self._fagi_server.shutdown() def run(self): self._fagi_server.serve_forever() if __name__ == '__main__': fastagi_core = FastAGIServer() fastagi_core.start() while fastagi_core.is_alive(): time.sleep(1) fastagi_core.kill()
如果你知道的话,它就像CGI。以上代码是从Pystrix fastagi示例页复制的。请参阅此处阅读内联注释。另外,文档还不是很好,但是代码是干净的、简洁的、易于理解的。跳进去做实验。
如果您使用的是FreePBX/Elastix发行版,则可以为[来自pstn]编写拨号计划,然后在7777上测试呼叫以执行该计划。 对于大型应用程序,您可以从Django的URL映射中获得一些灵感,并在这里实现它。
你可以在这里读普通的医生
http://www.voip-info.org/wiki/view/Asterisk+FastAGI
http://www.voip-info.org/wiki/view/Asterisk+AGI
很简单,我相信您可以理解基于此的lib调用。第二页还有python的lib列表。
从星号开始:星号电话簿的未来http://shop.oreilly.com/product/9780596009625.do
python中有许多星号库,可以用来开发FastAGI。一个是尼尔·塔利姆的《皮斯特里克斯》(http://code.google.com/p/pystrix/)。下面是关于如何开发FastAgi服务器的示例。
在dialplan中,您将呼叫发送到FastAGI服务器:
创建要侦听的FastAgi服务器/testcall url:
如果你知道的话,它就像CGI。以上代码是从Pystrix fastagi示例页复制的。请参阅此处阅读内联注释。另外,文档还不是很好,但是代码是干净的、简洁的、易于理解的。跳进去做实验。
如果您使用的是FreePBX/Elastix发行版,则可以为[来自pstn]编写拨号计划,然后在7777上测试呼叫以执行该计划。 对于大型应用程序,您可以从Django的URL映射中获得一些灵感,并在这里实现它。
相关问题 更多 >
编程相关推荐