2013-03-07 140 views
2

我想用asterisk AGI運行一個shell腳本。我已經使用 http://www.shiffman.net/p5/asterisk/AGI腳本執行沒有錯誤,但沒有生成結果

我的extensions.conf如下

[default] 
include => clicall 

[clicall] 
exten => _X,1,Goto(s,1); 
exten => _X.,1,Goto(s,1); 
exten => s,1,Answer(); 
exten => s,n,EAGI(runEAGI.sh); 

我試圖運行(runEAGI.sh)腳本這裏提到的教程是如下

#!/bin/bash 
java /home/sphata001/Downloads/EAGI/JEAGIClient $$ 

的權限已被設置爲755,腳本被放置在/var/lib/asterisk/agi-bin/。 java文件(JEAGIClient)也被預先編譯好了。當手動執行腳本時,它運行良好並連接到服務器。 但是,當從SIP客戶端撥打電話時,腳本按照星號控制檯執行,但沒有看到任何結果。 我在控制檯中得到以下輸出

== Using SIP RTP CoS mark 5 
    -- Executing [[email protected]:1] Goto("SIP/1001-00000027", "s,1") in new stack 
    -- Goto (default,s,1) 
    -- Executing [[email protected]:1] Answer("SIP/1001-00000027", "") in new stack 
    -- Executing [[email protected]:2] EAGI("SIP/1001-00000027", "runEAGI.sh") in new stack 
    -- Launched AGI Script /var/lib/asterisk/agi-bin/runEAGI.sh 
    -- <SIP/1001-00000027>AGI Script runEAGI.sh completed, returning 0 
    -- Auto fallthrough, channel 'SIP/1001-00000027' status is 'UNKNOWN' 

任何解決方案?

謝謝。

回答

2

大多數likly - 你需要指定完整路徑的java。

提示:對於調試星號AGI簡單的解決方案是停止星號並啓動它連接到控制檯,這樣你會看到所有的腳本錯誤。

asterisk -rx "core stop now" 
asterisk -vvvvgc 

也可以是usfull使AGI調試Asterisk的控制檯:

agi set debug on 
+0

非常感謝。添加完整的java路徑確實有幫助。它現在像一種魅力。再次感謝。 – user2143272 2013-03-08 04:48:47

2

檢查腳本,它需要的任何資源由Asterisk的用戶所擁有,並且對SELinux沒有阻止腳本正確運行

相關問題