Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

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

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


doc:panel1ccrm:asterisk_config:faxhistory

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:panel1ccrm:asterisk_config:faxhistory [2012/02/28 15:14]
nb
doc:panel1ccrm:asterisk_config:faxhistory [2014/11/14 22:32] (текущий)
Строка 1: Строка 1:
-====== Настройка Asterisk для отображения истории факсимильных сообщений в панели 1С ====== +{{page>astpanel:ats:asterisk:faxhistory}}
- +
-===== Запрос к CDR базе Asterisk используя диалплан и userevent ===== +
-<file - extensions_miko.conf>​ +
-[mikoajamdll] +
- +
-exten => 999,​1,​NoCDR() +
-exten => 999,​n,​Answer() +
-exten => 999,​n,​Wait(60) +
-exten => 999,​n,​Hangup() +
- +
-exten => 444,​1,​NoCDR() +
-exten => 444,​2,​Set(num=0) +
-exten => 444,​3,​Set(chan=${v1}) +
-exten => 444,​4,​Set(date1=${v2}) +
-exten =444,​5,​Set(date2=${v3}) +
-exten => 444,​6,​Set(dbname=${v4}) +
-exten => 444,​7,​Set(user=${v5}) +
-exten => 444,​8,​Set(password=${v6}) +
-exten => 444,​9,​Set(packet=20) +
-exten => 444,​10,​Answer() +
-exten => 444,​11,​System( mysql -sse '​SELECT calldate,​src,​dst,​lastdata,​uniqueid,​lastapp FROM cdr WHERE  (lastapp="​SendFAX"​ OR lastapp="​ReceiveFAX"​) AND calldate >= ${QUOTE(${date1}%)} AND calldate <= ${QUOTE(${date2}%)} ' -u${user} -p${password} ${dbname}>​ /​var/​log/​asterisk/​cdr-csv/​${UNIQUEID}) +
-exten => 444,​12,​Set(kls=${SHELL(cat /​var/​log/​asterisk/​cdr-csv/​${UNIQUEID} |wc -l)}) +
-exten => 444,​13,​Gotoif($[ ${kls} = 0 ]?20:14) +
-exten => 444,​14,​Set(ostatok=${kls}) +
-exten => 444,​15,​Set(packet=${IF($[ ${ostatok} < ${packet}]?​${ostatok}:${packet})}) +
-exten => 444,​16,​Set(num=$[${num} + ${packet}]) +
-exten => 444,​17,​UserEvent(FaxFromCDR,​Channel:​ ${chan},​Lines:​ ${QUOTE(${SHELL(cat /var/log/asterisk/​cdr-csv/​${UNIQUEID} |head -n '​${num}'​| tail -n '​${packet}'​| sed '​s/​[\t]/'​\',​\''/​g'​|sed '​s/​$/​...../​g'​|tr "​\n"​ " "​)})}) +
-exten => 444,​18,​Set(ostatok=$[${ostatok}-${packet}]) +
-exten => 444,​19,​Gotoif($[ ${ostatok} > 0 ]?15:20) +
-exten => 444,​20,​System(rm /​var/​log/​asterisk/​cdr-csv/​${UNIQUEID}+
-exten => 444,​21,​Gotoif($[${kls}>​0]?​22:​23) +
-exten => 444,​22,​UserEvent(Refresh1CFAXES,​Channel:​ ${chan}) +
-exten => 444,​23,​Hangup() +
-</​file>​ +
- +
-===== Запрос к CDR базе Asterisk используя ODBC и механизм внешних источников данных в 1С ===== +
-<code 1c> +
- +
-//​Функция генерирует строку соединения с сервером через 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 УБЫВ +
-                ​|АВТОУПОРЯДОЧИВАНИЕ";​ +
-  +
- Запрос.УстановитьПараметр("​НачалоДня",​ДатаНачало);​ +
- Запрос.УстановитьПараметр("​КонецДня",​ДатаОкончания);​ +
-  +
- Результат = Запрос.Выполнить();​ +
-  +
- ТЗ=Результат.Выгрузить();​ +
- Возврат ТЗ; +
-  +
-КонецФункции +
-</​code>​ +
- +
-<note tip>​Готовые файлы скриптов лежат в дистрибутиве поставки панели Asterisk для 1C</​note>​ +
- +
-<note important>​Если для вас данная инструкция оказалась сложной,​ не стесняйтесь,​[[http://​www.miko.ru/​contacts/​|пишите,​ звоните]],​ мы поможем или предложим настроенные решения от партнеров.</​note>​ +
- +
- +
-==== Полезные ссылки ==== +
-  * [[doc:​panel1ccrm:​asterisk_config|Настройка сервера Asterisk для работы с панелью]] +
-   +
- +
-==== Комментарии ==== +
- +
-~~DISQUS~~+
doc/panel1ccrm/asterisk_config/faxhistory.1330442071.txt.gz · Последние изменения: 2014/11/14 22:32 (внешнее изменение)