Asterisk-LCR

 view release on metacpan or  search on metacpan

lib/Asterisk/LCR/Importer.pm  view on Meta::CPAN

=head1 NAME

Asterisk::LCR::Importer - Provider's rates importer base class

=head1 SYNOPSIS

Asterisk::LCR::Importer is just a base class. To write your own importer:

  package MyOwnImporter;
  use base qw /Asterisk::LCR::Importer/;
  use warnings;
  use strict;
  
  sub new
  {
    my $class = shift;
    my $self  = $class->SUPER::new (@_);
    $self->{prefix_locale}            = 'us'
    $self->{prefix_position}          = '0'
    $self->{label_position}           = '1'
    $self->{rate_position}            = '4'
    $self->{first_increment_position} = '2'
    $self->{increment_position}       = '3'
    $self->{connection_fee}           = '0'
    $self->{currency}                 = 'USD'
    $self->{uri}                      = 'http://www.plainvoip.com/ratedump.php'
    $self->{separator}                = '(?:,|(?<=\d)\/(?=\d))'
    return $self;
  }
    
  1;
  
  __END__


In your config file:

  [import:myownprovider]
  package    = MyOwnProvider
  dialstring = IAX2/jhiver@plainvoip/REPLACEME

  
=head1 METHODS

=cut
package Asterisk::LCR::Importer;
use base qw /Asterisk::LCR::Object/;
use Asterisk::LCR::Locale;
use Asterisk::LCR::Route;
use LWP::Simple;
use warnings;
use strict;


=head2 $self->uri();

Returns the URI which $self should fetch.
If not overriden, returns $self->{uri}

=cut
sub uri { shift->{uri} || 'http://example.com/YOU_FORGOT_TO_SPECIFY_THE_RATES_URI' }



=head2 $self->target();

Returns a 'target', i.e. a name file to fill with
the current Importer's rates.

Returns $self->provider() + ".csv" by default.
If $self->{target} is defined, returns it instead.

=cut
sub target
{
    my $self = shift;
    return $self->{target} || do { $self->provider() . '.csv' }



( run in 2.801 seconds using v1.01-cache-2.11-cpan-364913b4093 )