asterisk python agi问题

时间:2013-03-13 17:06:30

标签: python asterisk agi

我有pyst lib的基本python agi代码:

的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 lib。

当我试图打电话给这个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权限这个文件。

请建议让这个基本脚本工作。

提前感谢所有人

1 个答案:

答案 0 :(得分:3)

出现此类错误有两个原因:

  1. 该位置没有文件/var/lib/asterisk/agi-bin/test.py,或者因某些原因无法通过星号访问 - linux一般权限问题。
  2. 文件/var/lib/asterisk/agi-bin/test.py,但没有一些库(python给出相同的错误)。这个更有可能。尝试从asterisk用户执行脚本手册,看看它的内容。
  3. 推荐:使用FastAGI代替AGI。