Черно/белые списки для версии до 2.15.0

Черный/белый список (фильтрация по внутреннему номеру):

Черный список внутренних номеров - позволяет удалять в CRM дела и новых лидов по результату разговоров с выбранного набора внутренних номеров. Белый список внутренних номеров наоборот позволяет передавать в CRM дела по результату разговоров только с определенного набора внутренних номеров сотрудников.

Для отмены регистрации звонков, на определенные внутреннего номера, например 111, 112 и 113, редактируем файл /opt/bx24asterisk/custom/process_final_params.php.

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

$action = 'register';
//$white_list = array('111', '112', '113');
$black_list = array('111', '112', '113');
// узнаём тип звонка
// 2 = incoming
$key = $params['conversation']['type'] == 2 ? 'to' : 'from';
// Условие для белого списка
//if (!in_array($params['conversation'][$key], $white_list)) {
// Условие для черного списка
if (in_array($params['conversation'][$key], $black_list)) {
$action = 'delete';
}
return array(
'state' => 'success',
'data' => $params,
'action' => $action // эта строка должна присутствовать
);

При отмене регистрации звонка, будет удалено дело, и, если для этого звонка был создан лид, он также будет удален.

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

Черный и белый список (фильтрация по транку):

Работает только для входящих звонков.

Есть варианты настройки данной логики:

  • модуль полностью игнорирует звонки, нет отображения окон

  • сотруднику будет показано окно, и по окончании звонка, модуль удалит дело и лид, в случае когда последний был создан модулем

Для первого варианта (полностью игнорируем звонки), необходимо указать в файле конфигурации (/etc/bx24asterisk/config.json), параметру "customize_search_params" значение TRUE и написать код в файле /opt/bx24asterisk/custom/process_search_params.php.

Если папки /opt/bx24asterisk/custom нет, редактируем файла /opt/bx24asterisk/customizer.php, после строки case 'process_search_params'. Пример кода:

$action = 'register';
if ($params['TYPE'] === 2) {
$trunks = array('2723033');
$key = array_key_exists('conversation', $params)
? 'conversation'
: array_key_exists('call', $params)
? 'call'
: false;
// Условие для белого списка
if (!in_array($params[$key] ['trunk'], $trunks)) {
// Для черного списка условие будет таким:
// if (in_array($params[$key] ['trunk'], $trunks)) {
$action = 'ignore';
}
}
return array(
'state' => 'success',
'data' => $params,
'action' => $action
);

Для ситуации, когда нужно показать окно, по окончании звонка удаляем дело и лид, если он был создан для этого звонка. Необходимо:

  • указать в файле конфигурации (/etc/bx24asterisk/config.json), параметру "customize_final_params" значение TRUE

  • редактируем код файла кастомизатора (/opt/bx24asterisk/custom/process_final_params.php).

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

$action = 'register';
$black_list = array(111, 112, 113);
// Реализация черного списка
if(!empty($params['conversation']['trunk']) && in_array($params['conversation']['trunk'], $black_list)) {
// При реализация белого списка, условие будет такое
//if(empty($params['conversation']['trunk']) || !in_array($params['conversation']['trunk'], $black_list)) {
$action = 'delete';
}
return array(
'state' => 'success',
'data' => $params,
'action' => $action // эта строка должна присутствовать
);