Сообщения
1 - 15 из 27
Начало | Пред. |
12
|
След. |
Конец
Получение истори напрямую из БД
Сергей Кухарчук
Гость
0
16.08.2012 14:09:35
Здесь описан способ чтения CDR напрямую
попробовали переменить это для Askozia, сходу разобраться не получилось, может есть какая-то информация как это сделать для Askozia.
Администратор
Сообщений: Авторитет:
750 Регистрация: 21.10.2007
0
16.08.2012 14:33:52
Если вы используете Askozia нашей последней редакции, 2.1.6v4, то там есть такая возможность.
Добавлен скрипт по адресу для передачи пакетами истории звонков в 1С, где ХХХ - количество пакетов (должно быть меньше 500), а YYY смещение выборки
А в 1С запускаем регламентное задание с следующим кодом и инетрвалом 5 минут.
Код
Процедура ЗагрузитьПоследнииЗаписиИсторииЗвонковСАстериск() Экспорт
ВремФайл=ПолучитьИмяВременногоФайла("txt");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| МИКО_ИсторияЗвонков.AcctId КАК AcctId
|ИЗ
| РегистрСведений.МИКО_ИсторияЗвонков КАК МИКО_ИсторияЗвонков
|ГДЕ
| МИКО_ИсторияЗвонков.AcctId > 0
|
|УПОРЯДОЧИТЬ ПО
| AcctId УБЫВ";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
ПоследнийПолученныйПакет = Выборка.AcctId;
Иначе
ПоследнийПолученныйПакет = 1;
КонецЕсли;
АдресСервера="/1c/cdr.php?limit=50&offset="+Формат(ПоследнийПолученныйПакет,"ЧГ=");
Попытка
HTTP = Новый HTTPСоединение("192.168.0.100",56080,,,);
HTTP.Получить(АдресСервера,ВремФайл);
ТекстИстории = Новый ТекстовыйДокумент;
ТекстИстории.Прочитать(ВремФайл);
СтрокаРегистраИсторииЗвонков = Неопределено;
Для к=0 по ТекстИстории.КоличествоСтрок() Цикл
СтрокаДляРазбора=СокрЛП(ТекстИстории.ПолучитьСтроку(к));
ПозицияРазделителя = Найти(СтрокаДляРазбора,"=");
ДлинаСтроки = СтрДлина(СтрокаДляРазбора);
Если ПозицияРазделителя<>0 Тогда
Параметр=СокрЛП(Лев(СтрокаДляРазбора,ПозицияРазделителя-1));
Значение=СокрЛП(Прав(СтрокаДляРазбора,ДлинаСтроки-ПозицияРазделителя-1));
Если Параметр="AcctId" Тогда
Если СтрокаРегистраИсторииЗвонков<>Неопределено Тогда
СтрокаРегистраИсторииЗвонков.Записать();
КонецЕсли;
СтрокаРегистраИсторииЗвонков=РегистрыСведений.МИКО_ИсторияЗвонков.СоздатьМенеджерЗаписи()
ИначеЕсли Параметр="calldate" ИЛИ Параметр="end" Тогда
Значение=СтрЗаменить(СтрЗаменить(СтрЗаменить(Значение,"-",""),":","")," ","");
КонецЕсли;
СтрокаРегистраИсторииЗвонков[Параметр]=Значение;
КонецЕсли;
КонецЦикла;
Исключение
ЗаписьЖурналаРегистрации("МИКО.ЗагрузкаИсторииЗвонков", УровеньЖурналаРегистрации.Ошибка, , , ИнформацияОбОшибке());
КонецПопытки;
КонецПроцедуры // ЗагрузитьПоследнииЗаписиИсторииЗвонковСАстериск()
Сергей Кухарчук
Гость
0
17.08.2012 14:00:37
Спасибо!
Правильно ли я понял, что так сделано потому, что к sqlite, способом аналогичным описанному в вики подключится нельзя? Нет ли с точки зрения безопасности "дыры" в этом скрипте и не стоит ли хотя бы добавить авторизацию в него?
Администратор
Сообщений: Авторитет:
750 Регистрация: 21.10.2007
0
17.08.2012 15:51:01
Да, к sqlite нельзя нормально из 1С подключиться.
По поводу того дыра это или нет, можно по разному думать. Например, если не выставлять Askozia без прикрытия firewall в интернет, то проблемы с используемым портом внутри сети быть не должно.
Сначала надо понять какой угрозы мы боимся :)
Полученные данные мы используем для двух новых фич которые еще не доступны пользователям.
1. Отображение истории звонков в карточке контрагента с возможностью прослушать, скачать. 2. Использование модуля на Системе Компоновки Данных.
Сергей Кухарчук
Гость
0
18.08.2012 15:49:29
Хочется подключаться по SIP из вне и при этом иметь доступ и к истории но при этом не хочется, что бы любой зная ip и какая АТС стоит мог получить доступ к истории, да можно поставить VPN-сервер и подключатся через него(наверно так и сделаю), но почему не сделать простую авторизацию в этом и других скриптах?
Администратор
Сообщений: Авторитет:
750 Регистрация: 21.10.2007
0
19.08.2012 10:43:42
Если хочется подключаться к SIP из вне, то лучше всего использовать VPN. Все другие способы несут достаточно большие риски. Все мои попытки выставления Asterisk в сеть, всегда заканчивались тем, что через некоторое время начинаются атаки с подбором паролей из пакистана, ирана, китая...
VPN есть во всех ноутах, смартфонах, потому настроить и работать через него не проблема.
С другой стороны, для работы SIP клиента, нужны порты UDP 5060-5069 для команд и UDP 10000-20000 для передачи голоса. Порт 56080 и 80 не нужно публиковать в INET. А если ты хочешь и 1С использовать удаленно то возникает столько проблем, что проще VPN.
Askozia - закрытый продукт и сделать там что-то дополнительное не так просто. Можно перенести скрипты в папку доступную под админским паролем, но тогда внтури 1С он будет светиться, и любой сотрудник сможет его достать, это тоже не гуд.
Правильнее всего идти от задачи. Если понятно какую задачу собираемся решать, можно в итоге понять что и где надо защищать и от кого.
Вообще по правам доступа в панели не раскрыта тема, т.к. она очень индивидуальна, хотя конечно и важная.
Сергей Кухарчук
Гость
0
19.08.2012 14:14:38
Частично убедили VPN буду ставить, кстати поделитесь что у вас используется? Я вот склоняюсь к вот этому
Внутри сети, если компания небольшая, историю звонков можно сильно не закрывать, хотя если это несложно я бы закрыл :)
Цитата
Николай Бекетов пишет: Askozia - закрытый продукт и сделать там что-то дополнительное не так просто. Можно перенести скрипты в папку доступную под админским паролем, но тогда внтури 1С он будет светиться, и любой сотрудник сможет его достать, это тоже не гуд.
Если есть желание попробовать добавить свои скрипты, как это можно сделать, через WinSCP у меня не получилось?
Администратор
Сообщений: Авторитет:
750 Регистрация: 21.10.2007
2
20.08.2012 12:47:40
1. У меня VPN сделан на базе "Microsoft Forefront Threat Management Gateway", а чуть ранее я вполне использовал прородителя Askozia - проект . Там похожий интерфейс и неплохо работает с микро-потреблением ресурсов.
2.
Если есть желание попробовать добавить свои скрипты....
Нужно еще приложение putty, чтобы попасть в шел Askozia.
Разрешаем запись в раздел с скриптами www:
Код
mount -o remount,rw /offload
Запрещаем запись в раздел с скриптами www:
Код
mount -o remount,ro /offload
Соответственно разрешаем, городим огород, копируем меняем удаляем, и потом запрещаем запись. После того как запись разрешиили из pytty можно пользоваться winscp для редактирования файлов.
p.s. Если сделаете что-то полезное, дайте нам :)
Пользователь
Сообщений: Авторитет:
100 Регистрация: 29.11.2012
0
24.05.2013 12:49:01
Цитата
Николай Бекетов пишет: Если вы используете Askozia нашей последней редакции, 2.1.6v4, то там есть такая возможность.
Добавлен скрипт по адресу для передачи пакетами истории звонков в 1С, где ХХХ - количество пакетов (должно быть меньше 500), а YYY смещение выборки
Подскажите Не понял что значит " Добавлен скрипт по адресу для передачи пакетами..." и что с ним сделать. Также не могу понять какой тип данных имеют пареметры из Регистров Сведений МИКО_ИсторияЗвонков а именно Измерения acctld- тип ??? и остальные Ресурсы. Регламентное добавил все отрабатывает
Администратор
Сообщений: Авторитет:
750 Регистрация: 18.11.2011
0
24.05.2013 13:04:58
Цитата
DaNcEr пишет:
Это HTTP запрос. Точнее его шаблон. Его следует использовать для получения записей CDR с АТС.
Цитата
DaNcEr пишет: какой тип данных имеют пареметры из Регистров Сведений МИКО_ИсторияЗвонков
Выбор типа зависит от решаемой задачи. acctld - скорее всего верно выбрать числовой тип. Ресурсы - следует выбрать тип либо строка, либо дата. Опять же - все зависит от задачи.
Пользователь
Сообщений: Авторитет:
100 Регистрация: 29.11.2012
0
27.05.2013 08:54:12
Алексей Простите за тупизм Куда именно его засунуть я про http запрос или вот он в коде " АдресСервера="/1c/cdr.php?limit=50&offset="+Формат(ПоследнийПолученныйПакет,"ЧГ="); "
Изменено: - 27.05.2013 08:55:55
Администратор
Сообщений: Авторитет:
750 Регистрация: 18.11.2011
0
27.05.2013 10:49:30
Начните с изучения того, что такое . Без понимания базовых принципов Вы не сможете реализовать данную доработку. После этого используйте стандартные объекты 1С для работы с HTTP соединением.
Пошаговой инструкции нет и не ожидается. Скорее всего выпустим как дополнительный платный модуль по работе с отчетами. Модуль естественно будет идти вместе с пакетом документации.
Администратор
Сообщений: Авторитет:
750 Регистрация: 18.11.2011
0
27.05.2013 15:53:30
Теперь понял что имеете в виду:
Код
АдресСервера="/1c/cdr.php?limit=50&offset="+Формат(ПоследнийПолученныйПакет,"ЧГ=");
HTTPСоединение("HOST",56080,,,); // вместо HOST укажите адрес сервера АТС
Пользователь
Сообщений: Авторитет:
100 Регистрация: 29.11.2012
0
28.05.2013 00:43:34
Так и сделано, но при открытии регистра МИКО_ИсторияЗвонков выскакивает сообщение "Синтаксическая Ошибка" с текстом "Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Ошибка генерации макета по причине: Ошибка при получении информации о поле "end" по причине: Ошибка в выражении "end" по причине: Синтаксическая ошибка" Может я не туда ломлюсь вообще ? вообщем я тупца ))))
P.S Регламентное отрабатывает
Изменено: - 28.05.2013 00:44:07
Администратор
Сообщений: Авторитет:
750 Регистрация: 18.11.2011
0
28.05.2013 09:10:41
Не похожи эти сообщения на открытие формы регистра сведений. Судя по всему это СКД отчета формирует эти сообщения об ошибке.
Сообщения
1 - 15 из 27
Начало | Пред. |
12
|
След. |
Конец