Черные и белые списки. Как настроить?
Начиная с версии 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://<Asterisk IP>:8077/config/black_white_list ****(где <Asterisk IP> - IP-адрес вашего Asterisk). Раздел в админке Бизнес-логика > Черный/белый списки.
Настройка черных/белых списков
  1. 1.
    Нужно выбрать один из режимов.
  2. 2.
    Добавить внутренние номера.
  3. 3.
    Сохранить.
При работе модуль проверяет сначала этот список, затем выполняет кастомизацию need_registration.

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

Кастомизация настраивается в файле need_registration.php, он находится в каталоге:
itgrix_bx (Битрикс24)
itgrix_amo (amoCRM)
/opt/itgrix_bx/customizer/actions/
/opt/itgrix_amo/customizer/actions/
Для более ранних версий:
itgrix_bx (Битрикс24) ДО версии 3.4.0
itgrix_amo (amoCRM) ДО версии 2.6.0
/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
),
);