Я смог повесить вызов звездочкой (если его можно назвать «вызов»), нажав любую кнопку клавиатуры.Поток выглядит следующим образом:
(файл вызова копируется в исходящий каталог) ->
Asterisk обнаруживает его и читает файл вызова ->
в файле вызова есть инструкция для запуска контекста "test "в плане набора ->
в контексте" test "есть инструкция для запуска сценария AGI (PHP) ->
в сценарии AGI есть команда" EXEC PLAYBACK test_music "
Dialplan:
exten => s,1, Answer()
exten => s,n, agi(test_agi.agi)
exten => s,n, Hangup
AGI (test_agi.agi):
#!/usr/bin/php -q
<?php
require'phpagi.php';
set_time_limit(60);
ob_implicit_flush(false);
# create file handles if needed
if (!defined('STDIN'))
{
define('STDIN', fopen('php://stdin', 'r'));
}
if (!defined('STDOUT'))
{
define('STDOUT', fopen('php://stdout', 'w'));
}
if (!defined('STDERR'))
{
define('STDERR', fopen('php://stderr', 'w'));
}
fwrite(STDOUT, "EXEC PLAYBACK test_music '79#'\n"); //79# interruption marks
Итак, как видно, план набора номеров и файл AGI настолько просты, насколько это возможно.Дело в том, что я знаю только способ, позволяющий прерывать воспроизведение цифрой DTMF (как в коде AGI выше), нажимая цифры на телефоне.Но это все.
Может быть, кто-то знает, как завершить вызов (и, конечно, остановить воспроизведение) при нажатии любой клавиши клавиатуры?
Возможно ли это?
Спасибоза помощь!