====== Настройка Asterisk для скачивания файла записи пользователем из панели телефонии ====== ===== Диалплан для запроса и перемещения файла записи в папку выгрузки ===== [miko_ajam] exten => 0000666,1,NoCDR() exten => 0000666,n,Set(chan=${v1}) exten => 0000666,n,Set(uniqueid1c=${v2}) exten => 0000666,n,Set(monitor_path=${ASTSPOOLDIR}/monitor) exten => 0000666,n,Set(fax_path=${ASTSPOOLDIR}/fax) exten => 0000666,n,Set(recuploadfldr=/var/www/html/1c/rec) exten => 0000666,n,Set(faxuploadfldr=/var/www/html/1c/fax) exten => 0000666,n,Set(RecFax=${v6}) exten => 0000666,n,Set(dbname=${AST_CONFIG(cdr_mysql.conf,global,dbname)}) exten => 0000666,n,Set(user=${AST_CONFIG(cdr_mysql.conf,global,user)}) exten => 0000666,n,Set(password=${AST_CONFIG(cdr_mysql.conf,global,password)}) exten => 0000666,n,Gotoif($[${RecFax} = FAX]?FAX) exten => 0000666,n,Gotoif($[${RecFax} = Records]?Records) exten => 0000666,n,Answer() exten => 0000666,n,Hangup() exten => 0000666,n(Records),NoOp() exten => 0000666,n,Set(recordingfile=${SHELL(mysql -sse 'SELECT recordingfile FROM cdr WHERE uniqueid Like ${QUOTE(${uniqueid1c}%)} LIMIT 1' -u${user} -p${password} ${dbname})}) exten => 0000666,n,Gotoif($[${LEN(${recordingfile})} > 4]?FindInFileSystem:FindInUserfield) exten => 0000666,n(FindInUserfield),Set(recordingfile=${SHELL(mysql -sse 'SELECT userfield FROM cdr WHERE uniqueid Like ${QUOTE(${uniqueid1c}%)} LIMIT 1' -u${user} -p${password} ${dbname})}) exten => 0000666,n,Gotoif($[${LEN(${recordingfile})} > 4]?FindInFileSystem:FailDownload) exten => 0000666,n(FindInFileSystem),Set(namedorashiren=$[${LEN(${recordingfile})}-4]) exten => 0000666,n,Set(result=${SHELL(find ${monitor_path} -name ${recordingfile:0:${namedorashiren}}* -exec cp {} ${recuploadfldr} \;)}) exten => 0000666,n,NoOp(find ${monitor_path} -name ${recordingfile:0:${namedorashiren}}* -exec cp {} ${recuploadfldr} \;) exten => 0000666,n,Wait(1) exten => 0000666,n,Set(recfile=${SHELL(cd ${recuploadfldr} && find *${recordingfile:0:${namedorashiren}}*|head -n 1)}) exten => 0000666,n,NoOp(cd ${recuploadfldr} && find *${recordingfile:0:${namedorashiren}}*|head -n 1) exten => 0000666,n,ExecIf($[${LEN(${recfile})} > 4 ]?UserEvent(StartDownloadRecord,Channel: ${chan},FileName: 80/1c/rec/${recfile})) exten => 0000666,n(FailDownload),ExecIf($[${LEN(${recfile})} < 4 ]?UserEvent(FailDownloadRecord,Channel: ${chan})) exten => 0000666,n,Wait(30) exten => 0000666,n,System(rm ${recuploadfldr}/${recfile}) exten => 0000666,n,Answer() exten => 0000666,n,Hangup() Этот диалплан позволяет по запросу из панели найти по уникальному идентификатору файл записи, учитывая то, что он может быть переконвертирован в файл с другим расширением, скопировать этот файл в папку выгрузки и сообщить в 1С через UserEvent результат этой операции. После чего панель телефонии инициирует скачивание файла или сообщает о том что файл записи не найден. ===== Скрипт скачивания файла записи ===== Если на сервере Asterisk установлен FreePBX то в папке /var/www/html нужно создать дополнительно папку "1с". Также для файлов подготовленных к выгрузке создаем папку "rec" внутри "1с". Именно эта папка указана в диалплане в переменной recuploadfldr. Готовые файлы скриптов лежат в дистрибутиве поставки панели Asterisk для 1C Если для вас данная инструкция оказалась сложной, не стесняйтесь,[[http://www.miko.ru/contacts/|пишите, звоните]], мы поможем или предложим настроенные решения от партнеров. ==== Полезные ссылки ==== * [[doc:1cajam:astcastomize|Общая предварительная настройка AJAM интерфейса Asterisk.]] * [[astpanel:ats:asterisk:downrec:environments|Настройка передачи общих параметров системы из Asterisk]] * [[astpanel:ats:asterisk:downrec:callhistory|Настройка получения истории звонков в панели 1С]] * [[astpanel:ats:asterisk:downrec:playrecords|Настройка проигрывания записи разговора по запросу панели 1С]] * [[astpanel:ats:asterisk:downrec:downrec|Настройка скачивания файла записи пользователем из панели телефонии]] * [[astpanel:ats:asterisk:downrec:faxhistory|Настройка отображения истории факсимильных сообщений в панели 1С]] * [[astpanel:ats:asterisk:downrec:faxsend|Настройка отправки факсимильного сообщения из 1С]] * [[astpanel:ats:asterisk:downrec:downfax|Настройка скачивания файла факса пользователем из панели телефонии]] ==== Комментарии ==== ~~DISQUS~~