Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Penalty обнуление результатов

Проблемы и их решения Asterisk как такового

Модератор: april22

Penalty обнуление результатов

Сообщение voice_skt » 21 июл 2021, 11:49

Добрый день , есть 30 операторов , задача распределение звонков по кол-ву минут разговора. Реализовал с помощью скрипта который отрабатывает каждые 5 минут . Скрипт свою работу выполняет, но на следующий день номер penalty сохраняется.
Как обнулять penalty в конце дня, чтобы у всех в начале дня у всех был penalty 0?
Код: выделить все
#!/usr/bin/perl

use strict;
use warnings;
use DBI;
use Time::Local;
use POSIX qw(strftime);
use Asterisk::AMI;

# коннектимся к серверу MySql
my $dbh = DBI->connect("DBI:mysql:hostname=hostname;database="dbname","login", 'password db') or die "Check connection settings\n";
my $sth = $dbh->prepare("SET NAMES 'utf8'");
my $res = $sth->execute;
    # Выполнить запрос
    $sth = $dbh->prepare("
SELECT agent, sum(data2) as sec   FROM dbname
where event in ('COMPLETEAGENT', 'COMPLETECALLER')
and created > CURRENT_DATE()
group by agent
order by sec
");
$sth->execute;
my $i=0;
while (my @row = $sth->fetchrow_array()){
    my $sip = $row[0];
    Penalty($sip,"queueNAME",$i);
    Penalty($sip,"queueNAME",$i);
    Penalty($sip,"queueNAME",$i);

$i++;

}

sub Penalty{
    my ($sip, $queue, $penalty) = @_;
    my $astman = Asterisk::AMI->new(PeerAddr => 'hostname',
                                        PeerPort => '5038',
                                        Username => 'loginAMI',
                                        Secret => 'passwordAMI',
                                        Events => 'on'
                                );
    die "Unable to connect to asterisk" unless ($astman);

    my $response = $astman->action({ Action => 'QueuePenalty',
    ActionID => 1234,
    Interface => $sip,
         Penalty => $penalty,
    Queue => $queue
    });
}

my $rc = $dbh->disconnect;

1;
voice_skt
 
Сообщений: 8
Зарегистрирован: 30 июн 2021, 15:41

Re: Penalty обнуление результатов

Сообщение ded » 21 июл 2021, 12:04

Может просто указать в параметрах очереди? Без всяких внешних скриптов?
strategy=leastrecent
ded
 
Сообщений: 14981
Зарегистрирован: 26 авг 2010, 19:00

Re: Penalty обнуление результатов

Сообщение voice_skt » 22 июл 2021, 11:10

Это работает если все операторы общаются одинаковое кол-во минут. А если один разговаривает с клиентом 30, а другой за это время может обслужить 3 клиентов. Кол-во минут одинаковое , а кол-во минут разное. Задача равное кол-во минут проведенное на линии с клиентом.
voice_skt
 
Сообщений: 8
Зарегистрирован: 30 июн 2021, 15:41

Re: Penalty обнуление результатов

Сообщение ded » 22 июл 2021, 13:57

Вы описали другую стратегию -
strategy=fewestcalls: ring the one with fewest completed calls from this queue.
То есть вызов распределяется тому, у кого меньше всего завершенных вызовов из этой очереди.
strategy=leastrecent: ring interface which was least recently called by this queue.
То есть вызов распределяется тому, у которого меньше всего минут отвеченных вызовов в этой очереди.
ded
 
Сообщений: 14981
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

© 2008 — 2021 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH