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