당신이 FastAGI을 개발하는 데 사용할 수있는 파이썬에서 많은 별표 해방이 있습니다 전화 번호부의 미래를 아스 테 리스크. 하나는 Neil Tallim이 작성한 Pystrix (http://code.google.com/p/pystrix/)입니다. 다음은 FastAgi 서버를 개발하는 방법에 대한 예제입니다.
이
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를 알고있는 경우 :
[some-context]
exten => 567567,1,NoOp()
exten => s,n,AGI(agi://host:port/testcall)
exten => s,n,Hangup()
가 듣고/testcall URL을 FastAgi 서버를 만듭니다
는 dialplan을, 당신은 FastAGI 서버로 호출을 전송 그것. 위의 코드는 Pystrix fastagi 예제 페이지에서 복사됩니다. 인라인 코멘트를 읽으려면 여기를 참조하십시오. 또한 설명서는 아직 훌륭하지 않지만 코드는 깨끗하고 간결하며 이해하기 쉽습니다. 그냥 뛰어 들어가서 실험 해보세요.
당신이 FreePBX/Elastix 배포판을 사용하는 경우, 당신은 그것을 실행 얻을 7777에 [에서-PSTN] 다음 테스트 전화의 dialplan을 쓸 수 있습니다. 대규모 앱의 경우 Django의 URL 매핑에서 영감을 얻어 여기에 구현할 수 있습니다.
이것은 내가 괜찮은 것을 찾지 못해서 사용하고있는 것입니다. 네 말이 맞습니다. 코드는 깨끗하고 잘 문서화되어 있습니다. 나는이 라이브러리를 확장하려고 생각하고있다. :) –