Черные и белые списки. Как настроить?

Начиная с версии itgrix_bx (на тот момент bx24asterisk) 2.15.0 и itgrix_amo 1.1.3 все черные/белые списки реализуются через кастомизацию need_registration.

Начиная с версий itgrix_bx 3.0.7 и itgrix_amo 2.2.0 настройка черного/белого списка для внутренних номеров доступна сразу из админки (интерфейса настройки) модуля.

Фильтрация по внутреннему номеру

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

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

Настройка через интерфейс модуля

Админка находится по адресу http://<ipasterisk>:8077/config/black_white_list где <ipasterisk> - IP-адрес вашего Asterisk. Раздел в админке Бизнес-логика - Черный/белый списки.

Настройка черных/белых списков

1. Нужно выбрать один из режимов. 2. Добавить внутренние номера Сохранить.

При работе модуль проверяет сначала этот список, затем выполняет кастомизацию need_registration.

Кастомизация need_registration

Кастомизация настраивается в файле need_registration.php, он находится в каталоге:

itgrix_bx (Битрикс24)

itgrix_amo (amoCRM)

/opt/itgrix_bx/custom/

/opt/itgrix_amo/custom/

Параметры

Вход:

{
"params": {<Набор данных о единичном разговоре в звонке.
См. раздел “Параметы разговора (conversation)>}
}

Набор данных о разговоре (conversation) описан в статье Параметры звонка (call) и разговора (conversation) в кастомизациях.

Вернуть:

{
"data": {
"result":<Булева переменная: true - регистрируем, false - игнорируем>
},
"state": "success"
}

Примеры для внутренних номеров

Начиная с версий itgrix_bx 3.0.7 и itgrix_amo 2.2.0 настройка черного/белого списка для внутренних номеров доступна сразу из админки (интерфейса настройки) модуля.

Пример: Для отмены регистрации звонков на определенные внутренние номера, например 101 и 102, настроим ЧЕРНЫЙ список:

$black_list = array('101', '102');
$key = $params['type'] == 2 ? 'to' : 'from'; // 2 = incoming
if (in_array($params[$key], $black_list)) {
$result = false; //все кто есть в списке не регистрируются
}
return array(
'state' => 'success',
'data' => array(
'result' => $result
),
);

Пример: БЕЛЫЙ список по внутренним номерам 201 и 202:

$white_list = array('201', '202');
$key = $params['type'] == 2 ? 'to' : 'from'; // 2 = incoming
if (!in_array($params[$key], $white_list)) {
$result = false; //все звонки кроме белого списка не будут регистрироваться
}
return array(
'state' => 'success',
'data' => array(
'result' => $result
),
);

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

Реализуется через кастомизацию need_registration (см. выше).

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

$result = true;
if ($params['type'] === 2) { // входящий
$trunks = array('123456', '555666');
// Белый список
if (!in_array($params['trunk'], $trunks)) {
$result = false;
}
// Черный список
//if (in_array($params['trunk'], $trunks)) {
// $result = false;
//}
}
return array(
'state' => 'success',
'data' => array(
'result' => $result
),
);