Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

ответил 2013-12-14 04:54:31 +0400

meral Gravatar meral flag of Ukraine

http://pro-sip.net/
wget -O /tmp/siptraffic/1.xls http://www.siptraffic.com/public/download/ratelist_gold.xls -c  -o /tmp/get.res

/var/www/parse.pl

файл /var/www/parse.pl выглядит както так(можно написать свой, минимальный навык програмирования приветсвуется)

Zimbabwe - Mobile Econet [[26377]]: 0.3047 Zimbabwe - Mobile Econet [[26378]]: 0.3047 Zimbabwe - Mobile Netone [[26371]]: 0.1252 Zimbabwe - Mobile Others [[26373]]: 0.2705 Viet Nam - Fixed [[84]]: 0.0498 $pathtooutput_file = "/tmp/siptraffic/1.csv";

#!/usr/bin/perl

#######################################################################
##
#######################################################################

##  Define Variables
#######################################################################

##  Path Preferences
$path_to_excel_file  = "/tmp/siptraffic/1.xls";

##  Begin Program
#######################################################################

use Spreadsheet::ParseExcel;

do_main();

##  Subroutines
#######################################################################

sub do_main
{
  my ($oBook, $iR, $iC, $oWkS, $oWkC);
  $oBook = Spreadsheet::ParseExcel::Workbook->Parse($path_to_excel_file);
  print "file parsed\n";
  open(FILE_OUT, "> $path_to_output_file");
  my $oWkS =@{$oBook->{Worksheet}}[1];
  my $first_cell=$oWkS->{Cells}[0][0]->Value ;
        $first_cell =~ s/^\s*//;  $first_cell =~ s/\s*$//;
  if( $first_cell eq 'Afghanistan - Fixed'){
    for (my $iR = $oWkS->{MinRow}; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++)
    {
      if($oWkS->{Cells}[$iR][2]->Value <0.5){
                print $oWkS->{Cells}[$iR][1]->Value ;
        }
      #print $oWkS->{Cells}[$iR][0]->Value." [[" . $oWkS->{Cells}[$iR][1]->Value . "]]: " . $oWkS->{Cells}[$iR][2]->Value . "\n";
    }
  }else{
  print "format changed\n;";
  print   $oWkS->{Cells}[0][0]->Value ;
  print "-";
  print   $oWkS->{Cells}[0][1]->Value ;
  }
  close(FILE_OUT);
}

соответвенно получаете список направлений которые НЕ являются платными или сильно дорогими.

дальше просто ложите их в базу и проверяете перед звонком.

можно повторить еще для пары-тройки агрегаторов.

wget -O /tmp/siptraffic/1.xls http://www.siptraffic.com/public/download/ratelist_gold.xls -c  -o /tmp/get.res

/var/www/parse.pl

файл /var/www/parse.pl выглядит както так(можно написать свой, минимальный навык програмирования приветсвуется)

Zimbabwe - Mobile Econet [[26377]]: 0.3047 Zimbabwe - Mobile Econet [[26378]]: 0.3047 Zimbabwe - Mobile Netone [[26371]]: 0.1252 Zimbabwe - Mobile Others [[26373]]: 0.2705 Viet Nam - Fixed [[84]]: 0.0498 $pathtooutput_file = "/tmp/siptraffic/1.csv";

#!/usr/bin/perl

#######################################################################
##
#######################################################################

##  Define Variables
#######################################################################

##  Path Preferences
$path_to_excel_file  = "/tmp/siptraffic/1.xls";
$max_cost = 0.5;

##  Begin Program
#######################################################################

use Spreadsheet::ParseExcel;

do_main();

##  Subroutines
#######################################################################

sub do_main
{
  my ($oBook, $iR, $iC, $oWkS, $oWkC);
  $oBook = Spreadsheet::ParseExcel::Workbook->Parse($path_to_excel_file);
  print "file parsed\n";
  open(FILE_OUT, "> $path_to_output_file");
  my $oWkS =@{$oBook->{Worksheet}}[1];
  my $first_cell=$oWkS->{Cells}[0][0]->Value ;
        $first_cell =~ s/^\s*//;  $first_cell =~ s/\s*$//;
  if( $first_cell eq 'Afghanistan - Fixed'){
    for (my $iR = $oWkS->{MinRow}; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++)
    {
      if($oWkS->{Cells}[$iR][2]->Value <0.5){
<$max_cost){
                print $oWkS->{Cells}[$iR][1]->Value ;
        }
      #print $oWkS->{Cells}[$iR][0]->Value." [[" . $oWkS->{Cells}[$iR][1]->Value . "]]: " . $oWkS->{Cells}[$iR][2]->Value . "\n";
    }
  }else{
  print "format changed\n;";
  print   $oWkS->{Cells}[0][0]->Value ;
  print "-";
  print   $oWkS->{Cells}[0][1]->Value ;
  }
  close(FILE_OUT);
}

соответвенно получаете список направлений которые НЕ являются платными или сильно дорогими.

дальше просто ложите их в базу и проверяете перед звонком.

можно повторить еще для пары-тройки агрегаторов.

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.