AskoziaPBX
Безопасность
Редактор маршрутов (CFE)
Панель телефонии (CTI)
Интеграция с 1С
Прочее
AskoziaPBX
Безопасность
Редактор маршрутов (CFE)
Панель телефонии (CTI)
Интеграция с 1С
Прочее
Воспроизведение записи разговора по запросу панели 1С.
<?php /*----------------------------------------------------- // ООО "МИКО" // 2013-03-22 // v.2.4 // 1С_Playback // 0000777 // Поиск имени файла записи для воспроизведения в 1С ------------------------------------------------------- Скрипт протестирован на Askozia v2: Asterisk 1.8.4.4 PHP 4.4.9 sqlite3 -version 3.7.0 AGI phpagi.php,v 2.14 2005/05/25 20:30:46 -------------------------------------------------------*/ require("phpagi.php"); require("guiconfig.inc"); function GetVarChannnel($agi, $_varName){ $v = $agi->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(); ?>