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

Начиная с версии 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. Нужно выбрать один из режимов.

  2. Добавить внутренние номера.

  3. Сохранить.

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

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

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

Для более ранних версий:

Параметры

Вход:

{
  <Набор данных о единичном разговоре в звонке>
}

Набор данных о разговоре (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
    ),
);

Last updated