Простой пример работы AGI

Рассмотрим работу AGI на примере скрипта: #!/usr/bin/php7.3 -q <?php require('phpagi.php'); $AGI = new AGI(); $filepath = "/var/www/html/statistic.local/"; //Путь к файлу $filedb = $AGI->request['agi_arg_1']; //Имя файла с базой $ls = $AGI->request['agi_arg_2']; //Лицевой счет абонента $fullfile = $filepath . $filedb; $arr = file($fullfile); foreach($arr as $v){ if (strpos($v,$ls,0) !== false){ $string = $v; $ls_array = explode('|', $string); if ($ls == $ls_array[2]){ $dolg = $ls_array[6]; break; } } } $summa = explode('.',$dolg); $summa_rub = (int) $summa[0]; $summa_kop = (int) $summa[1]; if ($summa_rub % 10 == 1){ $sound_r = "rouble"; } elseif (in_array(($summa_rub % 10), [2, 3, 4])){ $sound_r = "roublya"; } elseif (in_array(($summa_rub % 10), [5,6,7,8,9,0])){ $sound_r = "roubley"; } if ($summa_kop % 10 == 1){ $sound_k = "copeck"; } elseif (in_array(($summa_kop % 10), [2, 3, 4])){ $sound_k = "copeck-i"; } elseif (in_array(($summa_kop % 10), [5,6,7,8,9,0])){ $sound_k = "copecks"; } $AGI->set_variable('DOLG',$dolg); $AGI->set_variable('DOLG_R',$summa[0]); $AGI->set_variable('DOLG_K',$summa[1]); $AGI->set_variable('sound_r',$sound_r); $AGI->set_variable('sound_k',$sound_k); ?...

25 November 2024 · 2 min · Dmitriy Q

Оценка качества обслуживания в Asterisk

Поступил заказ сделать модуль оценки работы оператора и качества оказания услуги. За основу взял статью merion networks. Всё делалось на FreePBX 15 и Asterisk 18. В файл /etc/asterisk/queues_post_custom.conf вносим редакцию для нужной очереди (например 500) чтобы получить номер ответившего агента (можно и проще, но не срабатывало с IAX): [500](+) setinterfacevar=yes Клепаем само меню в /etc/asterisk/extensions_custom.conf: [assessment] exten => _X.,1,Answer() same => n,Set(CHANNEL(language)=ru) same => n,Set(COUNT=1) same => n,Wait(1) same => n,Playback(custom/qam-intro) same => n,Set(TIMEOUT(digit)=1) same => n,NoOP(Count: ${COUNT}) same => n,GotoIf($["${COUNT}" = "1"]?...

22 November 2024 · 3 min · Dmitriy Q