====== Настройка 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~~