Итак, я реализовал fastagi, однако у меня возникла проблема с функцией get_data для воспроизведения аудиофайла, получения DTMF от конечного пользователя и его возврата. У меня проблема в том, что все вроде нормально запускается, но аудиофайл не воспроизводится (этот же файл работает с agi, и fastagi может получить к нему доступ), и функция мгновенно возвращает 1. Пожалуйста, смотрите ниже выдержки из журнала, я использую Ubuntu 16.04 и звездочку 13.1.0:
Журнал:
<SIP/208_fleek-00000008>AGI Rx << VERBOSE "IVRs found = 1" 1
agi://192.168.20.144/agi-bin/ivr.php,fleek,5,1,,23: IVRs found = 1
<SIP/208_fleek-00000008>AGI Tx >> 200 result=1
<SIP/208_fleek-00000008>AGI Rx << GET DATA /usr/share/asterisk/sounds/fleek_ivr 2000 10
-- <SIP/208_fleek-00000008> Playing '/usr/share/asterisk/sounds/fleek_ivr.slin' (language 'en')
<SIP/208_fleek-00000008>AGI Rx << VERBOSE "Selection detected: 1" 1
agi://192.168.20.144/agi-bin/ivr.php,fleek,5,1,,23: Selection detected: 1
<SIP/208_fleek-00000008>AGI Tx >> 200 result=1
PHP-код:
$name = '/usr/share/asterisk/sounds/fleek_ivr';
$timeout = $row2['timeout'];
$ntimeout = 2000;
$expect = '10';
$ivr = $fastagi->get_data($name,$ntimeout,$expect);
$fastagi->verbose("Selection detected: ".$ivr['result']);
$dtmf = $ivr['result'];
Код диалплана:
[function_ivr]
exten => _X.,1,Answer()
same => n,Noop('type is ${dtype}..... type id is ${dtype_id} BLABLABLABLA)
same => n,AGI(ivr.php)
same => n,AGI(agi://X.X.X.X/agi-bin/ivr.php,fleek,5,1,,23
same => n,Hangup
Используйте следующее для отладки
asterisk -r
agi set debug on
После этого звонка
Отладка НЕ ПО ТЕМЕ на ТАК
Других решений пока нет …