我有基本的python agi代码与pyst库:
extensions.conf
[from-internal]
exten => _.,1,answer()
exten => _.,2,AGI(test.py)
我在/var/lib/asterisk/agi-bin中设置test.py为
#!/usr/bin/python
import sys
import os
from agi import AGI
def test_call(agi = None,text = ""):
agi.say_alpha(text, "#")
agi.hangup()
if __name__ == "__main__":
text = 'abcdefr'
agi = AGI()
test_call(agi,text)
,我有一个文件agi.py,它是从pyst库中获取的。
当我尝试调用这个agi时,我得到了这个问题
Executing [123@from-internal:1] Answer("SIP/12345-00000016", "") in new stack
[Mar 14 00:01:29] NOTICE[2790]: res_rtp_asterisk.c:2358 ast_rtp_read: Unknown RTP codec 126 received from '169.254.38.82:20338'
-- Executing [123@from-internal:2] AGI("SIP/12345-00000016", "test.py") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/test.py
test.py: Failed to execute '/var/lib/asterisk/agi-bin/test.py': No such file or directory
-- Auto fallthrough, channel 'SIP/12345-00000016' status is 'UNKNOWN'
-- Executing [h@from-internal:1] Hangup("SIP/12345-00000016", "") in new stack
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/12345-00000016'
我看到我在/var/lib/asterisk/agi-bin中有这个文件,权限为777。
请建议得到这个基本的脚本工作。
提前感谢大家
出现这种错误可能有两个原因:
- 没有/var/lib/asterisk/agi-bin/test.py文件在该位置或由于某些原因无法通过星号访问- linux一般权限问题。
- 文件/var/lib/asterisk/agi-bin/test.py,但没有一些库(python给出相同的错误)。这个更有可能。尝试从星号用户执行脚本手册,看看它说什么。
建议:使用FastAGI代替AGI