Инициализация звонка из CRM может не сработать по следующим причинам:
Телефонный номер в CRM начинается с символа "+";
На Asterisk настроен особый набор номера – например, звонить можно только через 9.
Логика такой доработки будет следующая: будем получать последние 10 символов (для России) и прибавлять к полученному результату нужный префикс. В примере префиксом будет цифра 8.
Кастомизация настраивается в файле process_originate_params.php, он находится в каталоге:
Параметр request_data содержит все данные запроса от CRM. Он будет удалён перед выполнением Originate.
Пример содержимого request_data при запросе от Bitrix24:
К возвращаемому массиву данных "data" можно добавить переменные "codecs" и "variables":
"codecs": “<codecs>”,
"variable": “<variable>”,
Добавлем префикс
//имена параметров как в конфиге
$phone = &$params['extension'];
//Получаем в $match последние 10 цифр номера
if(preg_match('~(\d{10})$~', $phone, $match)){
//Добавляем к найденому префикс
$phone = '8' . $match[1];
}
return array(
'state' => 'success',
'data' => $params
);
Разные контексты
Бывает, появляется необходимость звонить через разные контексты. В примере звонки с номеров 161, 162, 163 пойдут через контекст custom-context-1; а с номеров 141, 140 через контекст custom-context-2; остальные звонки пойдут через стандартный контекст, указанный в настройках.