====== Настройка Asterisk для отображения истории факсимильных сообщений в панели 1С ====== ===== Запрос к CDR базе Asterisk используя диалплан и userevent ===== [miko_ajam] exten => 0000444,1,NoCDR() exten => 0000444,n,Set(num=0) exten => 0000444,n,Set(chan=${v1}) exten => 0000444,n,Set(date1=${v2}) exten => 0000444,n,Set(date2=${v3}) exten => 0000444,n,Set(dbname=${AST_CONFIG(cdr_mysql.conf,global,dbname)}) exten => 0000444,n,Set(user=${AST_CONFIG(cdr_mysql.conf,global,user)}) exten => 0000444,n,Set(password=${AST_CONFIG(cdr_mysql.conf,global,password)}) exten => 0000444,n,Set(packet=20) exten => 0000444,n,Set(tmp_dir=${ASTLOGDIR}) exten => 0000444,n,System( mysql -sse 'SELECT a.calldate,a.src,a.dst,a.lastdata,a.uniqueid,a.lastapp from (SELECT * from cdr where calldate BETWEEN ${QUOTE(${date1})} AND ${QUOTE(${date2})}) AS a WHERE a.lastapp="SendFAX" OR a.lastapp="ReceiveFAX" ' -u${user} -p${password} ${dbname}> ${tmp_dir}/${UNIQUEID}) exten => 0000444,n,Set(kls=${SHELL(cat ${tmp_dir}/${UNIQUEID} |wc -l)}) exten => 0000444,n,Gotoif($[ ${kls} = 0 ]?DelTmpFile:SendFaxHistory) exten => 0000444,n(SendFaxHistory),Set(ostatok=${kls}) exten => 0000444,n(SendNextPacket),Set(packet=${IF($[ ${ostatok} < ${packet}]?${ostatok}:${packet})}) exten => 0000444,n,Set(num=$[${num} + ${packet}]) exten => 0000444,n,UserEvent(FaxFromCDR,Channel: ${chan},Lines: ${QUOTE(${SHELL(cat ${tmp_dir}/${UNIQUEID} |head -n '${num}'| tail -n '${packet}'| sed 's/[\t]/'@.@'/g'|sed 's/$/...../g'|tr "\n" " ")})}) exten => 0000444,n,Set(ostatok=$[${ostatok}-${packet}]) exten => 0000444,n,Gotoif($[ ${ostatok} > 0 ]?SendNextPacket:DelTmpFile) exten => 0000444,n(DelTmpFile),System(rm ${tmp_dir}/${UNIQUEID}) exten => 0000444,n,ExecIf($[${kls}>0]?UserEvent(Refresh1CFAXES,Channel: ${chan},Date: ${date1})) exten => 0000444,n,Answer() exten => 0000444,n,Hangup() ===== Запрос к CDR базе Asterisk используя ODBC и механизм внешних источников данных в 1С ===== //Функция генерирует строку соединения с сервером через ODBC драйвер Функция СформироватьСтрокуСоединенияСАстерискСервером(host,database,user,pass) СтрокаСоединения = "DRIVER={MySQL ODBC 5.1 Driver}; SERVER="+host+"; DATABASE="+database+"; UID="+user+"; PWD="+pass; Возврат СтрокаСоединения; КонецФункции //Функция возвращает информацию о факсах с сервера телефонии Функция ВернутьЗаписиCDRПоФаксимильнымСообщениям(ДатаНачало, ДатаОкончания) Экспорт СтрокаСоединенияСАстерискСервером = СформироватьСтрокуСоединенияСАстерискСервером("ASTERISK_HOST","ASTERISK_cdrdb","ASTERISK_cdrdb_login","ASTERISK_cdrdb_password"); ПараметрыСоединенияСАстерискомМИКО = Новый ПараметрыСоединенияВнешнегоИсточникаДанных; ПараметрыСоединенияСАстерискомМИКО.СтрокаСоединения = СтрокаСоединенияСАстерискСервером; ВнешниеИсточникиДанных.Asterisk.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединенияСАстерискомМИКО); ВнешниеИсточникиДанных.Asterisk.УстановитьСоединение(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВЫРАЗИТЬ(cdr.calldate КАК ДАТА) КАК calldate, | cdr.clid, | cdr.src, | cdr.dst, | cdr.dcontext, | cdr.channel, | cdr.dstchannel, | cdr.lastapp, | cdr.lastdata, | cdr.duration, | cdr.billsec, | cdr.disposition, | cdr.amaflags, | cdr.accountcode, | cdr.uniqueid, | cdr.userfield, | cdr.recordingfile |ИЗ | ВнешнийИсточникДанных.Asterisk.Таблица.cdr КАК cdr |ГДЕ | ВЫРАЗИТЬ(cdr.calldate КАК ДАТА) МЕЖДУ &НачалоДня И &КонецДня | И (cdr.lastapp = ""SendFAX"" | ИЛИ cdr.lastapp = ""ReceiveFAX"") | |УПОРЯДОЧИТЬ ПО | calldate УБЫВ |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("НачалоДня",ДатаНачало); Запрос.УстановитьПараметр("КонецДня",ДатаОкончания); Результат = Запрос.Выполнить(); ТЗ=Результат.Выгрузить(); Возврат ТЗ; КонецФункции Готовые файлы скриптов лежат в дистрибутиве поставки панели Asterisk для 1C Если для вас данная инструкция оказалась сложной, не стесняйтесь,[[http://www.miko.ru/contacts/|пишите, звоните]], мы поможем или предложим настроенные решения от партнеров. ==== Полезные ссылки ==== * [[doc:1cajam:astcastomize|Общая предварительная настройка AJAM интерфейса Asterisk.]] * [[astpanel:ats:asterisk:environments|Настройка передачи общих параметров системы из Asterisk]] * [[astpanel:ats:asterisk:callhistory|Настройка получения истории звонков в панели 1С]] * [[astpanel:ats:asterisk:playrecords|Настройка проигрывания записи разговора по запросу панели 1С]] * [[astpanel:ats:asterisk:downrec|Настройка скачивания файла записи пользователем из панели телефонии]] * [[astpanel:ats:asterisk:faxhistory|Настройка отображения истории факсимильных сообщений в панели 1С]] * [[astpanel:ats:asterisk:faxsend|Настройка отправки факсимильного сообщения из 1С]] * [[astpanel:ats:asterisk:downfax|Настройка скачивания файла факса пользователем из панели телефонии]] ==== Комментарии ==== ~~DISQUS~~