Форумы  ·  Войти  · 

Тема: LDK 300 + MySQL

20.09.05 16:57   Born  (9/30.08.05)  

Есть необходимость организации прямой записи лога звонков в таблицу MySQL для последующей обработки... т.е. не просто брать логер, записывать в файл, файл экспортить в MySQL и работать, а именно организовать работу в реальном времени.

Стоит Unix-сервер, на нем запущено что-то наподобие “логера”, это что-то как только получает новую строчку с данными о звонке - записывает это в MySQL.

Если кто пробовал написать такое “что-то” - поделитесь опытом, если никто еще не пробовал - буду писать сам. Нодля этого хочу понять каким образом логер забирает данные с атс..

АТС завязана на локальную сеть, с постоянным IP. Т.е. подключаться надо к нему, вот только как и что ?


Хелп...

[ #1 ]  20.09.05 17:10   dig  EXPERT  

можно написать через perl и shell оболочку(например cmd в windows),через cmd получаешь файл с логом, далее его преобразуешь и кидаешь файл на mysql и sql200 от MS, там это уже без разницы. Perl запускается как на NIX так на win.

[ #2 ]  20.09.05 17:17   Born  (9/30.08.05)  

Создано dig
можно написать через perl и shell оболочку(например cmd в windows),через cmd получаешь файл с логом, далее его преобразуешь и кидаешь файл на mysql и sql200 от MS, там это уже без разницы. Perl запускается как на NIX так на win.


опять же.. ручная работа... идет разговор о полной автоматизации...

конкретнее, возьмем для примера:
каждый номер завязан на человека, человек работает во внутренней системе. он разговаривает по телефону. кладет трубку и спустя X<10 секунд у него на экране появляется окно с данными о номере телефона, времени разговора и полем для ввода информации, например о теме разговора...

т.е. нужно чтобы в MySQL строки логов писались автоматом. Соответственно логи должен забирать и записывать сам сервер.

[ #3 ]  20.09.05 17:21   dig  EXPERT  

в виндах есть планировщик задач, можешь казать сколько раз в час запускать скрипт perl, можно через минут 15, можно через 5, в общем как нужно, но нужно учесть время обработки скрипта.

[ #4 ]  20.09.05 17:24   Born  (9/30.08.05)  

Создано dig
в виндах есть планировщик задач, можешь казать сколько раз в час запускать скрипт perl, можно через минут 15, можно через 5, в общем как нужно, но нужно учесть время обработки скрипта.


не, это конечно как вариант, но это не выход...  криво это все... к тому же где я тебе винды возьму ? нету у меня их 😊))

[ #5 ]  20.09.05 17:27   dig  EXPERT  

к более дорогим атс с возможностью online обработкт звонков и покупке call-центра, но как я понимаю ваша экономия на межгороде не покроит стоимости внедрения этого решения.

[ #6 ]  20.09.05 17:32   Born  (9/30.08.05)  

причем тут межгород ? 😊

[ #7 ]  20.09.05 17:40   dig  EXPERT  

обычно такие задачи стоят, когда руководство пытается понять кто-куда звонит в рабочее время и пытается это автоматизировать, если у вас вы это хотите привязать к crm-системе то тогда лучше поискать готовые решения.
Но всё это имхо.  😉

[ #8 ]  20.09.05 17:42   Born  (9/30.08.05)  

говорые решения из пяти строчек программного кода ? 😊 шутите ? ... нонсенс...

[ #9 ]  20.09.05 17:44   dig  EXPERT  

сомневаюсь  что там 5 строчек кода, по моему с нормальным функционалом и обработкой ошибок, довольно много.

[ #10 ]  20.09.05 17:51   Born  (9/30.08.05)  

ну не больше десяти...
скрипт, висящий на серваке и  перегоняющий полученную строчку с базу... хм...

неужели такая непосильная задача, что нужно приобретать “готовые решения”, которые по затратам “не окупят экономии” ? ...

[ #11 ]  20.09.05 17:55   dig  EXPERT  

у меня скрипт, который забирал лог с cisco по 16 ip и его очищал от ненужного хлама и преобразовывал к нужному формату, занимал строк под 100. В базе sql лог не хранил, т.к. база росла довально быстро, в txt было намного меньше, но за год порядка 20 gb насобиралось.

[ #12 ]  20.09.05 17:56   Born  (9/30.08.05)  

скрипт можно посмотреть ?

[ #13 ]  21.09.05 14:23   dig  EXPERT  

#!/usr/bin/perl -w

  @AD = localtime;
  $time=sprintf(“d-d-%4d d:d:d”, $AD[3], $AD[4]
  + 1, $AD[5]+1900, $AD[2], $AD[1], $AD[0]);
  $Name_file_mou = sprintf(“d_%4d”, $AD[4]
  + 1, $AD[5]+1900);
  $Name_file_mou.=”.txt”;
  $Name_file_day = sprintf(“d_d_%4d”, $AD[3], $AD[4]
  + 1, $AD[5]+1900);
  $Name_file_day.=”.txt”;

system〈“rsh 217.69.210.121 -l xwhite clear ip accounting”〉;
system〈“rsh 217.69.210.121 -l xwhite show ip accounting check>tempstat.txt”〉;
system〈“rsh 217.69.210.121 -l xwhite clear ip accounting check”〉;

#проверка на наличие файла $Name_file_day
if(open (NFD, $Name_file_day)) {}
else {open (NFD, ">>".$Name_file_day)}
close(NFD);
#конец проверки на наличие файла $Name_file_day

#проверка на наличие файла $Name_file_mou
if(open (NFM, $Name_file_mou)) {
@MASS=<NFM>;
}
else
{ #20
open (NFM, ">>".$Name_file_mou);
@MASS=("217.69.210.122 0"."\n","217.69.210.123 0"."\n","217.69.210.124 0"."\n",
"217.69.210.125 0"."\n","217.69.210.126 0"."\n");
print NFM @MASS;
}
close(NFM);

#Добавление файла tempstat.txt в файл $Name_file_day


if(open (PS, “tempstat.txt”))
{
@tempstat=;
close(PS);
open (NFD, ">>".$Name_file_day);
print NFD " ",$time,"\n\n",@tempstat,"\n\n"; #40
close (NFD);
}

foreach $s (@tempstat)
                  {
if ($s !~ /^\s\d{1,3}\./) { next; } # Игнорируем заголовок и Summary #50
      $s =~ s/^\s+//;
      $s =~ s/\s+/ /g;
      @R = split(/ /,$s);
      $dest_ip = $R[1];
      @ip = split(/\./,$dest_ip);
      $nam = $ip[3]-122;
      $l = $MASS[$nam];
      @check = split(/ /,$l);
      $check[1] = $check[1]+$R[3];
      $MASS[$nam]=($check[0].” “.$check[1].”\n”)
                  }
open (PD, “>”.$Name_file_mou);
print PD @MASS;
close (PD);

open (PD, “>c:/Stat.txt”);
print PD $time,”\n\n”;
foreach $s (@MASS)
{
chomp($s);
@mb = split (/ /,$s);
$size=$mb[1]/1024/1024;
print PD $s," ","(",$size," ","Mb",")","\n";
}
close (PD);

unlink ‘tempstat.txt’;

Komendant.pro
 ©1999-2025  Инженерная лаборатория "Комендантъ"