Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать метод SDK telephony.externalcall.register в Битрикс24». Вы узнаете экспертные методики работы с telephony.externalcall.register и научитесь избегать типичных ошибок начинающих разработчиков.
Описание метода SDK telephony.externalcall.register
Метод telephony.externalcall.register является частью официального Bitrix24 PHP SDK и предназначен для выполнения REST-запросов к порталу. Method registers a call in Bitrix24. For this purpose, it searches an object that corresponds to the number in CRM.
Параметры и сигнатура метода
В рамках SDK метод объявлен в пространстве имен \Bitrix24\SDK\Services\Telephony\ExternalCall\Service\ExternalCall со следующей сигнатурой:
public function register(
string $userInnerPhoneNumber,
int $b24UserId,
string $phoneNumber,
CarbonImmutable $callStartDate,
CallType $callType,
bool $isShowCallCard = true,
?bool $isCreateCrmEntities = null,
?string $lineNumber = null,
?string $sourceId = null,
?CrmEntityType $crmEntityType = null,
?int $crmEntityId = null,
?int $callListId = null
): ResultПример использования на PHP
Ниже представлен готовый практический пример интеграции с использованием Bitrix24 PHP SDK. Этот пример показывает, как правильно инициализировать сервис-билдер и вызвать метод register:
<?php
declare(strict_types=1);
use Bitrix24\SDK\Services\ServiceBuilderFactory;
// Инициализация официального Bitrix24 PHP SDK через входящий вебхук
$webhookUrl = 'https://your-portal.bitrix24.ru/rest/1/your-webhook-code/';
$serviceBuilder = ServiceBuilderFactory::createServiceBuilderFromWebhook($webhookUrl);
try {
// Подготовка параметров для вызова метода telephony.externalcall.register
$userInnerPhoneNumber = "пример_значения";
$b24UserId = 123;
$phoneNumber = "пример_значения";
$callStartDate = new \Bitrix24\SDK\Services\Telephony\ExternalCall\Service\CarbonImmutable();
$callType = new \Bitrix24\SDK\Services\Telephony\ExternalCall\Service\CallType();
$isShowCallCard = true;
$isCreateCrmEntities = null;
$lineNumber = null;
$sourceId = null;
$crmEntityType = null;
$crmEntityId = null;
$callListId = null;
// Выполнение запроса через Scope getTelephonyScope и сервис externalcall
$result = $serviceBuilder->getTelephonyScope()->externalcall()->register(
$userInnerPhoneNumber,
$b24UserId,
$phoneNumber,
$callStartDate,
$callType,
$isShowCallCard,
$isCreateCrmEntities,
$lineNumber,
$sourceId,
$crmEntityType,
$crmEntityId,
$callListId
);
// Обработка полученных данных
print_r($result->getResponseData()->getResult());
} catch (\Throwable $exception) {
// Обработка исключений при интеграции
echo "Ошибка при выполнении метода telephony.externalcall.register: " . $exception->getMessage();
}
Полезные ссылки
- Официальная REST API документация: https://training.bitrix24.com/rest_help/scope_telephony/telephony/telephony_externalcall_register.php
- Репозиторий PHP SDK на GitHub: bitrix24-php-sdk
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Как использовать метод SDK telephony.externalcall.register в Битрикс24» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru