use utf8;
use strict;
use warnings;
use Cf qw($WDESCR);

=pod

Accounting für E-Mail-E<gt>SMS-Gateway, s. RT#111657

Jeder Log-Eintrag wird als ein Paket gezählt, jede SM als ein Byte.  SMs an
deutsche Rufnummern werden auf Ziel C<d> gebucht, alle anderen auf Ziel C<w>.

=cut

sub acct_sms {
	ref(
		my $acct = do_start(
			want       => 'kunde,uucp',
			dienst     => 'sms',
			quelle     => $WDESCR,
			logdir     => 'sms',
			do_reverse => 0
		)
	  )
	  or return 'Kein Accounting';
	while ( defined( my $line = get_line($acct) ) ) {
		unless (
			(
				my ( $timestamp, $sms, $kunde, $from, $rufnummer ) = split /\t/,
				$line
			) == 5
		  )
		{
			warn "Unbekanntes Datenformat: $line";
		}
		elsif ( not my $knr = $acct->{hash_uucp}{$kunde} ) {
			warn qq(Unbekannter Kunde "$kunde": $line);
		}
		else {
			chomp $line;
			$acct->acct( $knr, undef, $rufnummer =~ /^\+49/ ? 'd' : 'w',
				undef, 1, $sms, $line );
		}
	}
	do_end($acct);
}

1;
