# ATSlog version 2.1.1 build 664 www.atslog.com # # VENDOR: LG # MODELS: GDK-100,GDK-162 # AUTHOR: Denis CyxoB # # TESTLOG: LG GDK-100.txt # TESTLOG: LG GDK-162.txt # # Разбираем строки текстового-лог файла для АТС LG GDK-100 sub parsecurcalls() { while ($str=) { $stringnumber++; if ($str =~ /^\d+\s+(\d+|\w+)\s+(\d+)\s+(\d*\:*)\s*(\d+)\:(\d+)\s+(\d+)\/(\d+)\/(\d+)\s+(\d+)\:(\d+)\s+(.*?\s*)\s+.*$/){ unitecurcalls(); }else{ #print("$stringnumber\n"); if ($vars{debug} =~ /yes/i){ if ($str !~ /^\s*$/){ print $str; }; }; }; }; }; sub unitecurcalls() { $Month = $6; $Day=$7; $Year=$8+2000; $CallHour=$9; $CallMinute=$10; $co=$2; $duration = (($4*60)+$5); $forIncoming=$11; $forInternally=$1; $internally = $1; $timeofcall = "$Year-$Month-$Day $CallHour\:$CallMinute\:00"; $durationHours=$3; $durationHours=~ s/\D+//; if ($durationHours ne ""){ $duration = (($durationHours*60*60)+$duration); } if ($forInternally=~ /EXT/i){ $internally = 0; } $forwarded =0; $number = '0'; # Not Specified $way='1'; if($forIncoming =~ /t\s*/i){ $forwarded = 1; $number = 0; }elsif($forIncoming =~ /O(.*)\s*/i){ $way='2'; $forIncoming = $1; $forIncoming =~ s/\D+//; $number = substr($forIncoming,0,100); }; if ($timeofcall ne ""){ # Для проверки наличия хоть одной запись звонков подлежащей # записи в db. $callsCount++; } WriteRecord($timeofcall, $forwarded, $internally, $co, $way, $number, $duration); } 1;