К списку статей

Распределение ответственных по пропущенным звонкам

Ответственного за пропущенные звонки часто назначить сложно конкретного сотрудника, так как звонок мог прийти на группу номеров, или по очереди на разные номера и группы. По этой причине модуль указывает ответственным сотрудника, который указан в его настройках.

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

Открываем на редактирование файл /opt/bx24asterisk/custom/process_final_params.php. Если папки /opt/bx24asterisk/custom нет, редактируем файла /opt/bx24asterisk/customizer.php, после строки case 'process_final_params'.

Подробное описание входящих\выходящих параметров описано в статье

Можно назначать ответственного случайно из списка id пользователей Битрикса в примере, в этом случае звонки будут распределены примерно поровну:

$action = 'register';
$assigned = array(1, 243, 57); //id ответственных сотрудников из Битрикса
$randomKey = rand(0, count($assigned) -1);

$params['USER_ID'] = $assigned[$randomKey];

return array(
    'state' => 'success',
    'data' => $params,
    'action' => $action
);

Если необходимо использовать более точное распределение, то нужно сохранять значение последнего ответственного, например в файле:

$action = 'register';
$assigned = array(1, 243, 57); .id ответственных сотрудников из Битрикса
$fileAssigned = '/opt/bx24asterisk/lastAssigned.lock'; //файл для хранения последнего назначенного
$key = file_exists($fileAssigned) ? file_get_contents($fileAssigned) : 0;

if (!array_key_exists($key, $assigned)) {
    $key = 0;
}

$params['USER_ID'] = $assigned[$key];

$key++;
file_put_contents($fileAssigned, count($assigned) >= $key ? 0 : $key);

return array(
    'state' => 'success',
    'data' => $params,
    'action' => $action
);