2016-12-15 8 views
0

着信コールに応答スクリプトが送信されると、簡単なAGIスクリプトが作成されます。 しかし、動作しません。スクリプトを正しく実行するにはどうすればよいですか?アスタリスクが機能していない

ところで私の英語はすみません。

は、ここでは、コードです:

extensions_additional.conf

[macro-auto-blkvm] 

include => macro-auto-blkvm-custom 

exten => s,1,Set(__MACRO_RESULT=)  
exten => s,n,DBDel(${BLKVM_OVERRIDE}) 

exten => s,n,AGI(call-answered.agi,${CALLERID(ANI)},${CHANNEL}) 

コールanswered.php:

#!/usr/bin/php -q 
<?php 
include("phpagi.php"); 
$agi = new AGI(); 
$agi->verbose("------------------------------------------"); 
$ani = $agi->request['agi_callerid']; 
$agi->noop("My CalleID: <<<<<<<=".$ani); 

$user = 'root'; 
$pass = 'eLaStIx.2oo7'; 
$db = new PDO('mysql:host=localhost;dbname=call', $user, $pass); 

$query = $db->prepare("INSERT INTO deneme SET 
gsm = ?, 
agent = ?"); 
$insert = $query->execute(array("123123", "213123")); 

コンソール出力:

-- SIP/103-0000000e answered Local/[email protected],2 
-- Executing [[email protected]:1] Set("SIP/103-0000000e", "__MACRO_RESULT=") in new stack 
-- Executing [[email protected]:2] Set("SIP/103-0000000e", "CFIGNORE=") in new stack 
-- Executing [[email protected]:3] Set("SIP/103-0000000e", "MASTER_CHANNEL(CFIGNORE)=") in new stack 
-- Executing [[email protected]:4] Set("SIP/103-0000000e", "FORWARD_CONTEXT=from-internal") in new stack 
-- Executing [[email protected]:5] Set("SIP/103-0000000e", "MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal") in new stack 
-- Executing [[email protected]:6] Macro("SIP/103-0000000e", "blkvm-clr|") in new stack 
-- Executing [[email protected]:7] AGI("SIP/103-0000000e", "call-answered.agi|*******|SIP/103-0000000e") in new stack 
-- Launched AGI Script /var/lib/asterisk/agi-bin/call-answered.agi 
AGI Tx >> agi_request: call-answered.agi 
AGI Tx >> agi_channel: SIP/103-0000000e 
AGI Tx >> agi_language: en 
AGI Tx >> agi_type: SIP 
AGI Tx >> agi_uniqueid: 1481798039.22 
AGI Tx >> agi_callerid: 103 
AGI Tx >> agi_calleridname: unknown 
AGI Tx >> agi_callingpres: 0 
AGI Tx >> agi_callingani2: 0 
AGI Tx >> agi_callington: 0 
AGI Tx >> agi_callingtns: 0 
AGI Tx >> agi_dnid: unknown 
AGI Tx >> agi_rdnis: unknown 
AGI Tx >> agi_context: macro-auto-blkvm 
AGI Tx >> agi_extension: s 
AGI Tx >> agi_priority: 7 
AGI Tx >> agi_enhanced: 0.0 
AGI Tx >> agi_accountcode: 
AGI Tx >> 
-- AGI Script call-answered.agi completed, returning 0 
-- Executing [[email protected]:8] ExecIf("SIP/103-0000000e", "0?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=103)") in new stack 
== Spawn extension (macro-auto-blkvm, s, 8) exited non-zero on 'SIP/103-0000000e' in macro 'auto-blkvm' 
-- Local/[email protected],1 answered SIP/103-0000000d 
-- Stopped music on hold on SIP/**-0000000d 

ありがとう

+0

'extensions_additional.conf'の編集は悪い考えです。 PBXがリロードされるたびに上書きされます。このPHPファイルはどこに保存されていますか?どのようなアクセス権がありますか? – miken32

答えて

-1

これは、スクリプトに構文エラーまたは権限の問題があることを意味します。 パスにはスクリプトがないかもしれません。

つまり、全く応答しません。

1

ファイル名をcall-answered.phpにしてもよろしいですか? dialplanでcall-answered.agiと参照すると、一貫性がないように見えます。ダイヤルプランをcall-answered.phpに変更してみてください。

.phpファイルに読み取りおよび実行ファイルのアクセス許可があることを確認します。それを設定するにはchmod 755 /var/lib/asterisk/agi-bin/*.phpを実行してください。

また、正しいディレクトリ(デフォルトは/ var/lib/asterisk/agi-bin)にあることを確認するか、ダイヤルプランのフルパスを指定します。安全のために引用符でそれを投げる:

exten => s,n,AGI('/var/lib/asterisk/agi-bin/call-answered.php',${CALLERID(ANI)},${CHANNEL}) 

あなたはOfficial AGI Docsで、またはVoip Info (unofficial) pageでより多くのヘルプを見つけることができます。

編集: また、実行することにより、PHPのCLIから直接スクリプトを実行してみることができます。

php /var/lib/asterisk/agi-bin/call-answered.php 

を押して、アスタリスクとの通信をシミュレートするために繰り返し入力します。アクセス権またはスクリプトエラーがある場合は、通常、このcliセッションのエラーが表示されます。それでも動作しない場合は、PHPのerror_log()コマンドを使用して、スクリプトが実行中であるかどうかを判断できるように、有用な情報をログに書き込みます。

関連する問題