Изменения черных/белых списков в версии до 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
    )
);

Last updated