====== Приложение 0000777 (Askozia) ====== Воспроизведение записи разговора по запросу панели 1С. get_variable($_varName); if(!$v['result'] == 0){ $agi->verbose($_varName.' ---> '.$v['data'], 10); return $v['data']; } else{ $agi->verbose($_varName.' not set', 10); return ""; } } // GetVarChannnel($_agi, $_varName) $agi = new AGI(); $EXTEN = GetVarChannnel($agi, "EXTEN"); if($EXTEN == "h"){ // это особенность работы с Askozia, для избежания зацикливания // http://igorg.ru/2011/10/22/askozia-opyt-ispolzovaniya/ }else{ $chan = GetVarChannnel($agi, "chan"); $uniqueid1c = GetVarChannnel($agi, "uniqueid1c"); // получим путь к базе данных $diskLog = storage_service_is_active("astlogs"); $cdr_db = $diskLog['mountpoint']."/askoziapbx/astlogs/asterisk/master.db"; // получим путь к медиа файлам $diskmedia = storage_service_is_active("voicemailarchive"); $monitor_path = $diskmedia['mountpoint']."/askoziapbx/voicemailarchive/monitor"; // форируем и выполняем запрос $zapros = "SELECT userfield FROM cdr WHERE (userfield!=\"\" and uniqueid Like \"$uniqueid1c%\") LIMIT 1"; $recordingfile = "$monitor_path/".rtrim(exec("sqlite3 $cdr_db '$zapros'")); if(is_file($recordingfile)) { $response = "CallRecord,Channel:$chan,FileName:$recordingfile"; }else{ $response = "CallRecordFail,Channel:$chan,uniqueid1c:$uniqueid1c"; } // отсылаем сообщение в 1С $agi->exec("UserEvent", $response); } // отклюаем запись CDR для приложения $agi->exec("NoCDR", ""); // ответить должны лишь после выполнения всех действий // если не ответим, то оргининация вернет ошибку $agi->answer(); $agi->Hangup(); ?>​ [[handbook:miko_edition|Обратно к описанию...]] ===== Прочее ===== [[http://wiki.miko.ru/astpanel:ats:asterisk:playrecords|Пример приложения для прочих сборок Asterisk]]