Добавление кода города в зависимости от города оператора

Сценарий: филиалы в разных городах. Сотрудник из города А с номером 102 на стационарном телефоне набирает номер клиента без кода города (шестизначный 224466). Номер короткий, но в CRM хочется видеть с кодом города (1234 для А и 4321 для Б).

1. Включить кастомизатор.

2. Добавляем код в файл кастомизации.

Кастомизация настраивается в файле /opt/itgrix_bx/customizer/actions/process_registration_params.php.

Для версий от 2.15.0 и ДО 3.4.0 этот файл находится в каталоге /opt/itgrix_bx/custom/

$cityCodeToUserList = array(
'1234' => array('102', '103'), // Код города => список сотрудников для города A
'4321' => array('788', '789'), // Код города => список сотрудников для города B
);
// Считаем, что короткий номер - 6 цифр
if (strlen($params['PHONE_NUMBER']) == 6) {
// Получаем внутренний номер, исходя из направления звонка (входящий/исходящий)
$userNumber = $params['conversation'][ $params['TYPE'] == 2 ? 'from' : 'to' ];
// Перебираем города для поиска сотрудника, чтобы получить код
// Если сотрудник не будет найден, номер не изменится
foreach ($cityCodeToUserList as $code => $users) {
if (in_array($userNumber, $users)) {
$params['PHONE_NUMBER'] = $code . $params['PHONE_NUMBER'];
}
}
}
return array(
'state' => 'success',
'data' => $params,
);

Параметры описаны в статье.