find all Parameters supported by CPE
[perl-cwmp.git] / lib / CWMP / Vendor.pm
index f09f120..071d7cb 100644 (file)
@@ -39,20 +39,34 @@ sub new {
        return $self;
 }
 
-my $cpe_faulty;
+our $cpe_faulty;
 
 my $serial2ip = {
-       'CP0636JT3SH' => '192.168.1.242',
-       'CP0644JTHJ4' => '192.168.1.253',
+       'CP0636JT3SH' => '10.0.0.1',
+       'CP0644JTHJ4' => '10.0.0.2',
+       'CP0624BH55U' => '10.0.0.3',
 };
 
 my ( $last_ip, $last_serial );
 
+=head2 state2serial
+
+  my $serial = state2serial( $state );
+
+=cut
+
 sub state2serial {
        my $state = shift;
 
-       my $serial = $state->{DeviceID}->{SerialNumber} || die "no serial?";
-       my $ip = $state->{Parameter}->{'.ExternalIPAddress'} || die "no ip?";
+       my $serial = $state->{DeviceId}->{SerialNumber} || die "no DeviceId.SerialNumber in ",dump($state);
+       chomp($serial);
+       my $ip =
+               $state->{Parameter}->{'.ExternalIPAddress'} ||
+               $state->{Parameter}->{
+                       # fix for firmware 5.3.3.4 which returns full path
+                       ( grep { m/\.ExternalIPAddress/ } keys %{ $state->{Parameter} } )[0]
+               } ||
+               die "no .ExternalIPAddress in ",dump($state);
 
        warn "## state2serial $serial $ip\n" if $debug;
 
@@ -61,7 +75,20 @@ sub state2serial {
        return ( $serial, $ip );
 }
 
+=head2 add_triggers
+
+Install all custom triggers
+
+  CWMP::Vendor->add_triggers;
+
+=cut
+
 sub add_triggers {
+}
+
+1;
+
+__END__
 
        warn __PACKAGE__, "->add_triggers\n" if $debug;