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

Сценарий: филиалы в разных городах. Сотрудник из города А с номером 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,
);

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

Last updated