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