# Изменения черных/белых списков в версии до 2.15.0

Ранее черные/белые списки по транкам реализовывались через кастомизацию **process\_search\_params.php**, а по внутренним номерам через **process\_final\_params.php**.

Теперь все черные/белые списки реализуются в кастомизации **need\_registration.php**.

## Перенос черных/белых списков по внутренним номерам

Например, если у вас в файле **process\_final\_params.php** был такой код черного списка по внутренним номерам:

```
$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 // эта строка должна присутствовать
);
```

то теперь в файл **need\_registration.php** нужно написать такой код для черного списка:

```
$black_list = array('101', '102');

$key = $params['conversation']['type'] == 2 ? 'to' : 'from'; // 2 = incoming

if (in_array($params['conversation'][$key], $black_list)) {
    $result = false;
}

return array(
    'state' => 'success',
    'data' => array(
        'result' => $result
    ),
);
```

или такой код для белого списка:

```
$white_list = array('201', '202');

$key = $params['conversation']['type'] == 2 ? 'to' : 'from'; // 2 = incoming

if (!in_array($params['conversation'][$key], $white_list)) {
    $result = false;
}

return array(
    'state' => 'success',
    'data' => array(
        'result' => $result
    ),
);
```

## Перенос черных/белых списков по транкам

Например, если у вас в файле process\_search\_params.php был такой код черного списка по внутренним номерам:

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

то теперь в файл **need\_registration.php** нужно написать такой код:

```
if ($params['TYPE'] === 2) {    // входящий
    $trunks = array('123456', '555666');

    // Белый список
    if (!in_array($params['conversation'] ['trunk'], $trunks)) {
        $result = false
    }
    // Черный список
    //if (in_array($params['conversation'] ['trunk'], $trunks)) {
    //    $result = false
    //}
 }

return array(
    'state' => 'success',
    'data' => array(
        'result' => $result
    )
);
```
