#!/usr/bin/perl sysopen(COM, "/dev/ttyS0", O_RDONLY | O_NDELAY | O_NOCTTY) or die "can +'t open /dev/ttyS0: $!"; while(defined ($line=)) { if (length $line > 1) { #print "read[$line]\n"; system("./parse_smdr", $line); #goto breakout; } } breakout: close COM || die "COM Reader Halted"; #### #!/usr/bin/perl sysopen(COM, "/dev/ttyS0", O_RDONLY | O_NDELAY | O_NOCTTY) or die "can +'t open /dev/ttyS0: $!"; while ($len = sysread(COM, $buf, 16384)) { print "READ[$buf]($len)\n"; if ($len > 10) { system("./parse_smdr", $buf); } } close COM || die "COM Reader Halted"; #### #!/usr/bin/perl use Fcntl; use strict; my $line; sysopen(COM, "/dev/ttyS0", O_RDONLY | O_NDELAY | O_NOCTTY) or die "can +'t open /dev/ttyS0: $!"; while($line=) { if (length $line > 1) { print "read[$line]\n"; system("./parse_smdr", $line); } } close COM || die "COM Reader Halted"; #### #!/usr/bin/perl use Fcntl; use strict; my $line; open(COM, "cat /dev/ttyS0 |") or die "can't open /dev/ttyS0: $!"; while($line=) { if (length $line > 1) { print "read[$line]\n"; system("./parse_smdr", $line); } } close COM || die "COM Reader Halted"; #### #!/usr/bin/perl #print "SMDR Parse Called\n"; foreach $line (@ARGV) { print "Parse[$line]\n"; ($Second, $Minute, $Hour, $Day, $Month, $Year) = localtime(time); #Parse the line by column $type = substr $line,0,4; $dest = substr $line,4,6; $trunk = substr $line,10,6; $src = substr $line,16,20; $dialed = substr $line,32,9; $time = substr $line,45,5; $duration = substr $line,51,8; #print "$Hour:$Minute:$Second,"; #print "$type,$dest,$trunk,$src,$dialed,$time,$duration\n"; open(OUT,">>/home/public/SMDR/smdr$Year$month$day.pbx"); print OUT "$Hour:$Minute:$Second,$type,$dest,$trunk,$src,$dialed,$time,$duration\n"; close(OUT); }