Advertisement
Guest User

Untitled

a guest
Feb 25th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.61 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Encode;
  4. use utf8;
  5. use DBI;
  6. use Asterisk::AGI;
  7.  
  8. my $db_user = 'defparser';
  9. my $db_password = 'rjkJyjxrf';
  10. my $db_database = 'defcodes1';
  11. my $db_host = 'localhost';
  12.  
  13. my $AGI = new Asterisk::AGI;
  14. my %input_var = $AGI->ReadParse();
  15.  
  16. my ($base, $stament);
  17.  
  18. my $my_number = $input_var{"arg_1"};
  19. my @splitted_number = split_number($my_number);
  20.  
  21.  
  22. $base = DBI->connect( "DBI:mysql:database=$db_database;host=$db_host", $db_user, $db_password ) or die "Не могу подключиться к базе: ".$base->errstr."\n";
  23. $stament = $base->prepare('SELECT `def_operator`, `def_region` FROM `def_codes` WHERE `def_code` = '.$splitted_number[1].' AND ( '.$splitted_number[2].' BETWEEN `def_start` AND `def_stop`) LIMIT 1');
  24.  
  25. if (!$stament) {
  26. print "Не могу подготовить запрос к выполнению:". $base->errstr."\n";
  27. next;
  28. }
  29.  
  30. if ( !$stament->execute() ){
  31. print "Не могу выполнить запрос к базе: ".$stament->errstr."\n";
  32. next;
  33. }
  34.  
  35. my $fields_ref = $stament->fetchrow_arrayref;
  36. my ( $t_def_operator, $t_def_region ) = @{ $fields_ref };
  37.  
  38. if (defined $t_def_operator) {
  39. $AGI->set_variable("mobile_way", decode("utf8", $t_def_operator)." ".decode("utf8", $t_def_region)) ;
  40. }
  41.  
  42. exit 0;
  43.  
  44. sub split_number {
  45. my $number = shift;
  46. my @split_number;
  47. $split_number[0] = substr $number, 0, 1;
  48. $split_number[1] = substr $number, 1, 3;
  49. $split_number[2] = substr $number, 4, 7;
  50. return @split_number;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement