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

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

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
voice_skt
Сообщения: 9
Зарегистрирован: 30 июн 2021, 14:41

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

Сообщение voice_skt »

Добрый день , есть 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;
ded
Сообщения: 15623
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Может просто указать в параметрах очереди? Без всяких внешних скриптов?
strategy=leastrecent
voice_skt
Сообщения: 9
Зарегистрирован: 30 июн 2021, 14:41

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

Сообщение voice_skt »

Это работает если все операторы общаются одинаковое кол-во минут. А если один разговаривает с клиентом 30, а другой за это время может обслужить 3 клиентов. Кол-во минут одинаковое , а кол-во минут разное. Задача равное кол-во минут проведенное на линии с клиентом.
ded
Сообщения: 15623
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

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

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

Сообщение voice_skt »

проблема решилась тривиально в cron добавил задание и проблема решилась
asterisk -rx 'core restart gracefully'
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH