Skip to content

Opensips blog

Заметки voip инженера

  • Готовые сервисы
    • PUSH NOTIFICATIONS API
  • Kamailio
  • Opensips
  • О себе и реквизиты

Аналитика занятости линий для БД

2012-09-11 yooxyman

Скриптик для анализа одновременного занятия линий.

Суть простая выбираем промежуток когда считаываем кол-во звонков, например каждые 5 минут начиная с 2012-09-01. И смотрим какие звонки к какому промежутку относятся. на выходе пара: время — кол-во линий.

Играя SQL запросами можно получить статистику по каналу или по префиксу, вообщем инструмент нужный, но данная реализация крайне медленная. Времени на разработку совсем нет, а решение принимать хочется на основании конкретных данных.

#!/usr/bin/perl

use strict;
use DBI;
use Time::Local;
use Date::Parse;

my $dbh = DBI->connect(‘dbi:Pg:database=yooxy’, ‘pavel’,») or die $DBI::errstr;

#get all calls
my $date_start = ‘2012-09-09 00:00:00’;

my $leg = 300; #in seconds
my $calls_query = ‘select time,duration from acc where time > \».$date_start.’\’;’;
my $sth = $dbh->prepare($calls_query);
$sth->execute;
my $ary_ref = $sth->fetchall_arrayref;

my $start_time = str2time($date_start);
my $a;
my $i,my $i2;
my %values;
$dbh->disconnect;
foreach ($a=$start_time;$a = $a + $leg;) {
$i2++;
foreach (@$ary_ref) {
$i++;
my $date1 = $_->[0];
my $duration = 60;# $_->[1];
my $line = $a;

my $start = str2time($date1);
my $end = str2time($date1) + $duration;

if (($line > $start) and ($line < $end)) { print «o$start < $line < $end\n»; $values{$a}++};

}

if ($values{$a} > 0) {print scalar(localtime($a)),»;»,$values{$a},»\n»;} else {print scalar(localtime($a)),»;»,0,»\n»;

};

last if $a > time();
}
print «\ncalls $i2; iter $i;»;

 

Posted in SQL запросы, Готовые решения

Навигация по записям

Новичкам в камалио
Userblacklist / GlobalBlack list

Добавить комментарий Отменить ответ

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

My Profile

Eremin Pavel

Voip developer

P: 79227502213

E: eremina.net@gmail.com

Hire me on Freelancer.com

Облако

AMI (4) asterisk (18) centos (4) centos 7 (3) certbot (2) certificate (2) debian (2) duplicate (2) elastix (3) error (3) events (2) fail (3) freepbx (8) g729 (2) google (2) ios (2) issabel (4) issue (2) Kamailio (8) limit (2) Load (3) local (2) Mysql (8) nat (2) opensips (11) PAMI (2) performance (2) pjsip (2) provisioning (2) push (2) re-invite (2) rtpengine (2) SBC (2) server (2) ssh (2) ssl (2) tcp (2) timeout (2) tls (3) vmware (2) voip (2) wav (2) webrtc (2) windows (3) zoiper (2)

Свежие записи

  • asterisk 16. webrtc. sipml5
  • esxi useful command. vmware.
  • opensips as SBC
  • sipdump per day. compressed. heplify.
  • kamailio. siremis. xmlrpc. jsonrpc.

Управление

  • Войти
  • Лента записей
  • Лента комментариев
  • WordPress.org

© 2021 Opensips blog

Proudly powered by WordPress | Theme: x-blog by wpthemespace.com