Внимание! Документация к новой MikoPBX доступна по ссылке

Инструменты пользователя

Инструменты сайта


handbook:miko_edition:0000777

Приложение 0000777 (Askozia)

Воспроизведение записи разговора по запросу панели 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();
?>​

Обратно к описанию...

Прочее

handbook/miko_edition/0000777.txt · Последние изменения: 2013/08/18 15:42 — apor