2012-05-31 3 views
0

Я хочу сделать простой IVR, используя php в Asterisk. когда я запускаю программу php индивидуально, она работает без каких-либо проблем. но когда я вызываю его командой AGI в Asterisk, это не работает. это мой PHP-файл:Команда AGI и php-файл в Asterisk

#!/usr/bin/php -q 
<? 
set_time_limit(30); 
require('phpagi.php'); 
$agi = new AGI(); 
$agi->answer(); 
$file = '/var/www/html/test.txt'; 
$current = file_get_contents($file); 
$current .= "Test\n"; 
file_put_contents($file, $current); 
$agi->say_digits(1234); 
$agi->hangup(); 
?> 

и это Диалплан:

[testphp] 
exten => 6565,1,Answer 
exten => 6565 2,Playback(Hello-World) 
exten => 6565,3,AGI(testphp.php) 
exten => 6565 4,Playback(Hello-World) 
exten => 6565,5,Hangup 

, когда я называю 6565 мой телефон, он играет только дважды "Hello World" сообщение! Разрешение на использование php-файла является неочевидным.

Я установил Elastix (Asterisk) в VirtualBox.

Что я делаю неправильно?

помогите пожалуйста.

+0

сделал ли вы видеть на CLI, если он порождает какую-либо ошибку? Лучший способ отладки AGI для поэтапного добавления функций. скажите, что вы первый тест, если он выполняет «say_digit» ... !! – Arfeen

+0

также проверьте расположение созданного вами PHP-скрипта. – Arfeen

+0

Расположение скрипта php: '/ var/lib/asterisk/agi-bin /'. но как отлаживать или тестировать AGI и say_digit? –

ответ

0

ли follwoing:

1) остановить Звездочка

asterisk -rx "core stop now" 

2) запустить его в SSH консоли

asterisk -vvvgc 

3) позволяют Звездочка AGI отлаживать

agi set debug on 

вам увидит ошибку в вашем скрипте т. также проверьте, что selinux выключен