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

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

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

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

Подробно параметры описаны в статье.

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

$assigned = array(1, 243, 57); //id ответственных сотрудников из Битрикса
$randomKey = rand(0, count($assigned) -1);
$params['USER_ID'] = $assigned[$randomKey];
return array(
'state' => 'success',
'data' => $params
);

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

$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
);