BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 июн 2025, 18:31

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: API для работы с логами телефонии
СообщениеДобавлено: 06 ноя 2012, 18:15 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Добрый день.
Есть в API что-нибудь такое, что позволит вывести все звонки за определенный период не извращаясь с договорами и прочим?
Все что я нашел в ReportManager'е работает либо с ID договора, либо с ID из data_log_{mid}_{yyyyMMdd} где получается надо сначала перебирать все дни в пределах месяца, а потом перебирать ID в таблицах
я уж промолчу для чего использовать подневные таблицы если те же логи сессий - уже помесячные

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 ноя 2012, 18:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
ап
Stark писал(а):
нужно что-то уже вчера (директор там что-то намылил уже, маркетолог над вами стоит и т.п)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 ноя 2012, 23:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Ввысь

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 01:26 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
а что значит "все звонки"?
в АРМе такое где нибудь выводится?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 02:18 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
В клиенте биллинга не видел. Хотя не исключено что не так смотрел :)
Объясню для чего. В конце месяца получить отчет об общем кол-ве трафика прошедшем через станцию / получить все звонки за период для какой-то своей цели / ну и т.п.
Все звонки это все "сырые" логи и все уже тарифицированные.
Например сравнить кол-во "сырого" трафика и уже протарифицированного, чтобы посмотреть куда что ушло может что упустил.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 03:54 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
см. в сторону sql запросов


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 04:27 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Вам че всем не спится то )))))

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 11:11 
Не в сети

Зарегистрирован: 20 апр 2011, 09:56
Сообщения: 346
Карма: 19
Phricker писал(а):
Ввысь

В конфе читал что нужно в csv самым простым способом вывести. Я писал такую, имхо, очень удобную штуку

Код:
package ru.rta.bgbilling.otherglobal;

import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import bitel.billing.server.util.MailMsg;

import java.text.SimpleDateFormat;
import java.sql.*;
import java.io.*;
import java.util.zip.*;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class ReportsForUsersBG
   extends GlobalScriptBase
{
   @Override
   public void execute( Setup setup, ConnectionSet connectionSet )
      throws Exception
   {

Connection con = connectionSet.getConnection();
//Получаем текущую дату и форматируем её вид для имени файла
long curTime = System.currentTimeMillis();
String curStringDate = new SimpleDateFormat("dd.MM.yy").format(curTime); //Обычная дата стринг

String folder = "/home/reports_for_usersBG/";  //папка для сохранения
String FileName = "Необработанные задачи СКПТ:ППО(" + curStringDate + ").csv"; //имя файла в котором сохранять
String folderAndFileName = folder + FileName;
//String FileNameZipped = "TC" + curStringDateFilename + ".105"; //имя файла в котором зиповать
//String folderAndFileNameZipped = folder + FileNameZipped;

String sql = "SELECT c.title, rtt.title, rt.open_dt, rt.comment FROM contract as c LEFT JOIN register_task as rt ON c.id=rt.cid  LEFT JOIN register_task_type as rtt ON rt.type=rtt.id WHERE rt.type = 18 AND rt.lm_dt is null AND rt.status = 0";
PreparedStatement ps = con.prepareStatement( sql );
ResultSet rs = ps.executeQuery();

int count = 0;
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(folderAndFileName), "CP1251")); //классы "вкладываются" друг в друга
String header = "№Договора;Тип задачи;Дата создания;Коментарий";
pw.println(header);
      while(rs.next())
        {

         String stroka = rs.getString( 1 ) + ";" + rs.getString( 2 ) + ";" + rs.getString( 3 ) + ";" + rs.getString( 4 );
         pw.println(stroka); // записываем строку задачи в файл

         count = count + 1; //считаем общее кол-во задач
      
        }

String itog = "Итого: " + count + "(задач)"; //готовим строку с итогами для записи в файл

pw.println(itog); // записываем строку c итогами в файл
pw.close(); // закрываем
print ("Отчет по необработанным задачам сформирован и сохранен по адресу " +  folderAndFileName);

//Отправляем на почту------------------------------------------------------------------------------------
Vector<String> Emails = new Vector<String>();
//Emails.add("mail1@m.com");
//Emails.add("mail2@m.com");
//Emails.add("mail3@m.com");
Emails.add("mail4@m.com");
Emails.add("mail5@m.com");


MailMsg mm = new MailMsg(setup);
String subject = "Необработанные задачи СКПТ:ППО(" + curStringDate + ")";
String MailText = "На " + curStringDate + " существует " + count + " необработанных задач. ... тратата...";

Multipart multipart = new MimeMultipart();
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource(folderAndFileName); //путь до отправляемого файла
        attachmentBodyPart.setDataHandler(new DataHandler(source));
        attachmentBodyPart.setFileName(MimeUtility.encodeText(source.getName()));
        multipart.addBodyPart(attachmentBodyPart);

mm.sendMessage(Emails, subject, MailText, multipart);
print (FileName + " отправлен на " + Emails);

   }

}



Из запроса пишет нужную инфу через разделитель в файл, считает кол-во, сохраняет, отправляет на мыло. Все очень гибко :)


Последний раз редактировалось aiwbend 07 ноя 2012, 11:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 ноя 2012, 11:13 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
skn писал(а):
см. в сторону sql запросов

Это было бы гораздо проще если бы логи телефонии не хранились в таблицах по дням. Как по мне :)

2 aiwbend, тут не совсем про то, чтобы в csv сохранить. а именно само получение данных.
Так я мог бы и табличный отчет написать не проблема :)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.040s | 34 Queries | GZIP : On ]