# ATSlog version 2.1.1 build 664 www.atslog.com # # VENDOR: LG # MODELS: GHX-46 # AUTHOR: Denis CyxoB # # TESTLOG: LG GHX-46 (variant 1).txt # TESTLOG: LG GHX-46 (variant 2).txt # # # Разбираем строки текстового-лог файла для АТС LG GHX-46 sub parsecurcalls() { while ($str=) { $stringnumber++; if ($str =~ /^(\d+)\s+(\d+)\s+(\d*\:*)\s*(\d+)\:(\d+)\s+(\d+)\:(\d+)\s+(\d+)\/(\d+)\/(\d+)\s+([\w|\d|\s]+).*$/){ unitecurcalls(); #print("$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11\n"); }else{ #print("$stringnumber\n"); if ($vars{debug} =~ /yes/i){ if ($str !~ /^\s*$/){ print $str; }; }; }; }; }; sub unitecurcalls() { $Month = $8; $Day=$9; $Year=$10+2000; $CallHour=$6; $CallMinute=$7; $co=$2; $duration = (($4*60)+$5); $forIncoming=$11; $internally = $1; $timeofcall = "$Year-$Month-$Day $CallHour\:$CallMinute\:00"; $durationHours=$3; $durationHours=~ s/\D+//; if ($durationHours ne ""){ $duration = (($durationHours*60*60)+$duration); } $forwarded =0; $number = '0'; # Not Specified $way='1'; if($forIncoming =~ /t\s*/i){ $forwarded = 1; $number = 0; }elsif($forIncoming =~ /O\s*(\d+)\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;