RedialというAGIのサイトをしてたところでちょっとハマってしまったので共有します。
2018/1/14 Asteriskを入れ直したら権限などが少し変わってたのでここに書き直しました。
AGIとは?
Asterisk Gateway Interfaceのこと
WEBサーバーのCGIみたいな感じで
Asteriskでダイアルしたらスクリプトを走らせたりするらしい。
スクリプトはこんな感じ
test.py
f = open("test.txt","w")
f.write("This is Test")
f.close()
extensions.conf
exten => 5,1,Answer()
exten => 5,n,AGI(test.py)
クライアントから『5』をダイアルするとスクリプト(test.py)を走らせる感じ。
ハマった所①
改行コード
改行コードはLFでないといけなかった。
atomで直した。
ハマった所②
Pythonの実行パス
asteriskの実行パスを確認してtest.pyの1行目に記述する。
それぞれ違ってた
まずはsudo su asterisk
でユーザーasteriskになってから
Pythonのインタプリタに入って
import sys
sys.executable
で確認する。
ユーザーが自分の時はanaconda使ってたのにasteriskになるとpython2.7になってた。
なんでや・・
ハマった所③
実行権限
AGIを実行するのはAsteriskでrootではない
てことでちゃんと変更しておく
sudo chmod 755 test.py
sudo chown asterisk:asterisk test.py
最後に
簡単に書いたけどメチャクチャハマってた。。