1

私はpyst libを使用した基本的なpython agiコードを次のように持っています:

拡張機能.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)

そして、pyst libから取得した1つのファイルagi.pyがあります。

この 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 パーミッションです。

この基本的なスクリプトが機能するように提案してください。

事前に感謝します

4

1 に答える 1

3

このようなエラーには 2 つの理由が考えられます。

  1. その場所にファイル /var/lib/asterisk/agi-bin/test.py がないか、何らかの理由でアスタリスクでアクセスできない - Linux の一般的な権限の問題。
  2. ファイル /var/lib/asterisk/agi-bin/test.py ですが、一部のライブラリはありません(pythonは同じエラーを出します)。これはより可能性が高いです。アスタリスクユーザーからスクリプトマニュアルを実行して、その内容を確認してください。

推奨事項: AGI の代わりに FastAGI を使用します。

于 2013-03-14T03:40:16.930 に答える