summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-02-27 01:50:24 -0800
committerIvan Kohler <ivan@freeside.biz>2013-02-27 01:50:24 -0800
commit1d0f88642d94e7bbc4861c7c08290967794883b3 (patch)
treeec21c669f73704af02fb0e6c6fb386a74437abde
parentefa799391aeba085b65145428cab1cf1074d3f6d (diff)
parent0babd0e62f87f5c36535b30c40002c5c1abff7ea (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
-rw-r--r--FS/FS/cdr/u4.pm104
-rwxr-xr-xFS/FS/svc_broadband.pm4
-rw-r--r--FS/FS/svc_hardware.pm2
-rw-r--r--FS/MANIFEST1
4 files changed, 107 insertions, 4 deletions
diff --git a/FS/FS/cdr/u4.pm b/FS/FS/cdr/u4.pm
new file mode 100644
index 000000000..1b7a660e7
--- /dev/null
+++ b/FS/FS/cdr/u4.pm
@@ -0,0 +1,104 @@
+package FS::cdr::u4;
+
+use strict;
+use vars qw(@ISA %info);
+use FS::cdr qw(_cdr_date_parser_maker);
+
+@ISA = qw(FS::cdr);
+
+%info = (
+ 'name' => 'U4',
+ 'weight' => 490,
+ 'type' => 'fixedlength',
+ 'fixedlength_format' => [qw(
+ CDRType:3:1:3
+ MasterAccountID:12:4:15
+ SubAccountID:12:16:27
+ BillToNumber:18:28:45
+ AccountCode:12:46:57
+ CallDateStartTime:14:58:71
+ TimeOfDay:1:72:72
+ CalculatedSeconds:12:73:84
+ City:30:85:114
+ State:2:115:116
+ Country:40:117:156
+ Charges:21:157:177
+ CallDirection:1:178:178
+ CallIndicator:1:179:179
+ ReportIndicator:1:180:180
+ ANI:10:181:190
+ DNIS:10:191:200
+ PIN:16:201:216
+ OrigNumber:10:217:226
+ TermNumber:10:227:236
+ DialedNumber:18:237:254
+ DisplayNumber:18:255:272
+ RecordSource:1:273:273
+ LECInfoDigits:2:274:275
+ OrigNPA:4:276:279
+ OrigNXX:5:280:284
+ OrigLATA:3:285:287
+ OrigZone:1:288:288
+ OrigCircuit:12:289:300
+ OrigTrunkGroupCLLI:12:301:312
+ TermNPA:4:313:316
+ TermNXX:5:317:321
+ TermLATA:3:322:324
+ TermZone:1:325:325
+ TermCircuit:12:326:337
+ TermTrunkGroupCLLI:12:338:349
+ TermOCN:5:350:354
+ )],
+ # at least that's how they're defined in the spec we have.
+ # the real CDRs have several differences.
+ 'import_fields' => [
+ '', #CDRType (for now always 'V')
+ '', #MasterAccountID
+ '', #SubAccountID
+ 'charged_party', #BillToNumber
+ 'accountcode', #AccountCode
+ _cdr_date_parser_maker('startdate'),
+ #CallDateTime
+ '', #TimeOfDay (always 'S')
+ sub { #CalculatedSeconds
+ my($cdr, $sec) = @_;
+ $cdr->duration($sec);
+ $cdr->billsec($sec);
+ },
+ '', #City
+ '', #State
+ '', #Country
+ 'upstream_price', #Charges
+ sub { #CallDirection
+ my ($cdr, $dir) = @_;
+ $cdr->set('direction', $dir);
+ if ( $dir eq 'O' ) {
+ $cdr->set('src', $cdr->charged_party);
+ } elsif ( $dir eq 'I' ) {
+ $cdr->set('dst', $cdr->charged_party);
+ }
+ },
+ '', #CallIndicator #calltype?
+ '', #ReportIndicator
+ sub { #ANI
+ # it appears that it's the "other" number, not necessarily ANI.
+ my ($cdr, $number) = @_;
+ if ( $cdr->direction eq 'O' ) {
+ $cdr->set('dst', $number);
+ } elsif ( $cdr->direction eq 'I' ) {
+ $cdr->set('src', $number);
+ }
+ },
+ '', #DNIS
+ '', #PIN
+ '', #OrigNumber
+ '', #TermNumber
+ '', #DialedNumber
+ '', #DisplayNumber
+ '', #RecordSource
+ '', #LECInfoDigits
+ ('') x 13,
+ ],
+);
+
+1;
diff --git a/FS/FS/svc_broadband.pm b/FS/FS/svc_broadband.pm
index 87c73f2f0..01495ca39 100755
--- a/FS/FS/svc_broadband.pm
+++ b/FS/FS/svc_broadband.pm
@@ -243,7 +243,7 @@ Returns the IP address.
sub label {
my $self = shift;
my $label = 'IP:'. ($self->ip_addr || 'Unknown');
- $label .= '", MAC:'. $self->mac_addr
+ $label .= ', MAC:'. $self->mac_addr
if $self->mac_addr;
$label .= ' ('. $self->description. ')'
if $self->description;
@@ -311,7 +311,7 @@ sub check {
# remove delimiters
my $mac_addr = uc($self->get('mac_addr'));
- $mac_addr =~ s/[-: ]//g;
+ $mac_addr =~ s/[\W_]//g;
$self->set('mac_addr', $mac_addr);
my $error =
diff --git a/FS/FS/svc_hardware.pm b/FS/FS/svc_hardware.pm
index af6865f12..96502e41e 100644
--- a/FS/FS/svc_hardware.pm
+++ b/FS/FS/svc_hardware.pm
@@ -164,7 +164,7 @@ sub check {
return $x unless ref $x;
my $hw_addr = $self->getfield('hw_addr');
- $hw_addr = join('', split(/\W/, $hw_addr));
+ $hw_addr = join('', split(/[_\W]/, $hw_addr));
if ( $conf->exists('svc_hardware-check_mac_addr') ) {
$hw_addr = uc($hw_addr);
$hw_addr =~ /^[0-9A-F]{12}$/
diff --git a/FS/MANIFEST b/FS/MANIFEST
index 4d6bb120d..0214fe7bc 100644
--- a/FS/MANIFEST
+++ b/FS/MANIFEST
@@ -149,7 +149,6 @@ FS/part_pkg/sqlradacct_hour.pm
FS/part_pkg/subscription.pm
FS/part_pkg/voip_sqlradacct.pm
FS/part_pkg/voip_cdr.pm
-FS/part_pkg/base_delayed.pm
FS/part_pop_local.pm
FS/part_referral.pm
FS/part_svc.pm