7sites - внедрение Битрикс24
Услуги
  • Лицензии 1С-Битрикс
    • Облачный сервис Битрикс24
    • Коробочная версия Битрикс24
    • Подписка Битрикс24.Маркет Плюс
  • Внедрение CRM
  • Доработка корпоративных порталов Битрикс24
  • Техническое сопровождение
  • Перенос Битрикс24 из облака в коробку
  • Сайты на 1С-Битрикс24
Проекты
  • Государственные организации
  • Управление бизнесом
  • Спорт
  • Автомобильный бизнес
Акции
Новости
Компания
  • О компании
  • Сертификаты
  • Карьера
  • Разработка ПО
Контакты
Ещё
    Задать вопрос
    +7 (495) 118-30-89
    Заказать звонок
    info@7sites.ru
    г. Пермь, ш. Космонавтов 111, к. 10
    • Вконтакте
    • Facebook
    • Twitter
    • Telegram
    +7 (495) 118-30-89
    Заказать звонок
    7sites - внедрение Битрикс24
    Услуги
    • Лицензии 1С-Битрикс
      • Облачный сервис Битрикс24 —
      • Коробочная версия Битрикс24 —
      • Подписка Битрикс24.Маркет Плюс
    • Внедрение CRM
    • Доработка корпоративных порталов Битрикс24
    • Техническое сопровождение
    • Перенос Битрикс24 из облака в коробку
    • Сайты на 1С-Битрикс24
    Проекты
    • Государственные организации
    • Управление бизнесом
    • Спорт
    • Автомобильный бизнес
    Акции
    Новости
    Компания
    • О компании
    • Сертификаты
    • Карьера
    • Разработка ПО
    Контакты
      7sites - внедрение Битрикс24
      Услуги
      • Лицензии 1С-Битрикс
        • Облачный сервис Битрикс24 —
        • Коробочная версия Битрикс24 —
        • Подписка Битрикс24.Маркет Плюс
      • Внедрение CRM
      • Доработка корпоративных порталов Битрикс24
      • Техническое сопровождение
      • Перенос Битрикс24 из облака в коробку
      • Сайты на 1С-Битрикс24
      Проекты
      • Государственные организации
      • Управление бизнесом
      • Спорт
      • Автомобильный бизнес
      Акции
      Новости
      Компания
      • О компании
      • Сертификаты
      • Карьера
      • Разработка ПО
      Контакты
        7sites - внедрение Битрикс24
        7sites - внедрение Битрикс24
        • Услуги
          • Назад
          • Услуги
          • Лицензии 1С-Битрикс
            • Назад
            • Лицензии 1С-Битрикс
            • Облачный сервис Битрикс24
            • Коробочная версия Битрикс24
            • Подписка Битрикс24.Маркет Плюс
          • Внедрение CRM
          • Доработка корпоративных порталов Битрикс24
          • Техническое сопровождение
          • Перенос Битрикс24 из облака в коробку
          • Сайты на 1С-Битрикс24
        • Проекты
          • Назад
          • Проекты
          • Государственные организации
          • Управление бизнесом
          • Спорт
          • Автомобильный бизнес
        • Акции
        • Новости
        • Компания
          • Назад
          • Компания
          • О компании
          • Сертификаты
          • Карьера
          • Разработка ПО
        • Контакты
        • +7 (495) 118-30-89
        info@7sites.ru
        г. Пермь, ш. Космонавтов 111, к. 10
        • Вконтакте
        • Facebook
        • Twitter
        • Telegram
        • Главная
        • Пресс-центр
        • Полезное
        • Получение звонков и ссылок на аудиозаписи через API Voximplant в Битрикс24

        Получение звонков и ссылок на аудиозаписи через API Voximplant в Битрикс24

        17 июля 2026
        Полезное

        Введение

        При разработке на «коробочной» версии Битрикс24 часто возникает задача программного получения списка звонков из модуля Voximplant, а также получения ссылок на аудиозаписи разговоров. В этой статье мы разберём, как правильно работать с таблицей b_voximplant_statistic, фильтровать звонки по дате и получать локальные пути к файлам записей.

        Область применения и ключевые сущности

        Метод Bitrix\Voximplant\StatisticTable::getList() используется для получения статистики звонков в следующих контекстах:

        • Получение звонков за период — выборка всех звонков за день, неделю, месяц с фильтрацией по дате
        • Фильтрация по типу звонка — входящие, исходящие, пропущенные
        • Фильтрация по пользователю — звонки конкретного менеджера
        • Получение аудиозаписей — получение ссылок на файлы записей разговоров
        • Интеграция с CRM — получение связанных сущностей (компаний, контактов, лидов)
        • Аналитика — сбор статистики по длительности, количеству звонков и другим параметрам

        Основные поля таблицы b_voximplant_statistic


        Поле Описание
        ID Уникальный идентификатор звонка
        PORTAL_USER_ID ID пользователя, совершившего звонок
        PHONE_NUMBER Номер телефона
        INCOMING Направление: 1 — входящий, 2 — исходящий
        CALL_START_DATE Дата и время начала звонка
        CALL_DURATION Длительность звонка в секундах
        CALL_STATUS Статус: 0 — пропущенный, 1 — состоявшийся
        CALL_WEBDAV_ID ID файла в диске
        CALL_RECORD_ID ID файла записи в b_file
        CALL_RECORD_URL Прямая ссылка на файл (внешний ресурс)
        CRM_ENTITY_TYPE Тип сущности CRM (COMPANY, CONTACT, LEAD)
        CRM_ENTITY_ID ID сущности CRM
        CRM_ACTIVITY_ID ID активности в CRM

        ORM-метод StatisticTable::getList

        ORM-класс \Bitrix\Voximplant\StatisticTable предоставляет метод getList() для выборки звонков с гибкой фильтрацией и сортировкой.

        Сигнатура метода

        php

        public static function getList(array $parameters = array())

        Параметр $parameters

        Метод принимает ассоциативный массив со следующими ключами:

        filter — фильтрация записей

        Важно! Формат даты в фильтре: 'd.m.Y H:i:s' (например, '17.07.2026 00:00:00')

        Основные поддерживаемые ключи для фильтрации:

        • =ID — идентификатор звонка

        • =PORTAL_USER_ID — ID пользователя

        • =PHONE_NUMBER — номер телефона

        • =INCOMING — направление (1 — входящий, 2 — исходящий)

        • =CALL_STATUS — статус (0 — пропущенный, 1 — состоявшийся)

        • =CALL_WEBDAV_ID — ID файла в диске

        • =CALL_RECORD_ID — ID файла записи

        • =CRM_ACTIVITY_ID — ID активности в CRM

        • =CRM_ENTITY_TYPE — тип сущности (COMPANY, CONTACT, LEAD)

        • =CRM_ENTITY_ID — ID сущности

        • >=CALL_START_DATE — дата начала (от)

        • <=CALL_START_DATE — дата начала (до)

        • >=CALL_DURATION — длительность (от)

        • <=CALL_DURATION — длительность (до)

        order — сортировка

        php
        'order' => ['CALL_START_DATE' => 'DESC']  // сначала новые

        select — выбираемые поля

        По умолчанию возвращаются все поля. Для оптимизации можно указать конкретные:

        php
        'select' => ['ID', 'PHONE_NUMBER', 'CALL_START_DATE', 'CALL_DURATION', 'CALL_RECORD_ID']

        limit и offset — ограничения

        Для постраничной навигации:

        php
        'limit' => 50,
        'offset' => 0

        Практические примеры

        Пример 1. Получение звонков за сегодня

        php
        <?php
        require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
        
        use Bitrix\Main\Loader;
        use Bitrix\Voximplant\StatisticTable;
        
        Loader::includeModule('voximplant');
        
        $today = date('d.m.Y');
        
        $filter = [
            '>=CALL_START_DATE' => $today . ' 00:00:00',
            '<=CALL_START_DATE' => $today . ' 23:59:59',
        ];
        
        $params = [
            'order' => ['CALL_START_DATE' => 'DESC'],
            'filter' => $filter,
        ];
        
        $dbRes = StatisticTable::getList($params);
        
        $calls = [];
        while ($call = $dbRes->fetch()) {
            $calls[] = $call;
        }
        
        echo 'Найдено звонков: ' . count($calls);
        ?>

        Пример 2. Получение звонков за произвольную дату

        php
        <?php
        $date = '17.07.2026';
        
        $filter = [
            '>=CALL_START_DATE' => $date . ' 00:00:00',
            '<=CALL_START_DATE' => $date . ' 23:59:59',
        ];

        Пример 3. Получение звонков за период

        php
        <?php
        $dateFrom = '10.07.2026';
        $dateTo = '17.07.2026';
        
        $filter = [
            '>=CALL_START_DATE' => $dateFrom . ' 00:00:00',
            '<=CALL_START_DATE' => $dateTo . ' 23:59:59',
        ];

        Пример 4. Получение звонков конкретного пользователя

        php
        <?php
        $userId = 60;
        $today = date('d.m.Y');
        
        $filter = [
            '=PORTAL_USER_ID' => $userId,
            '>=CALL_START_DATE' => $today . ' 00:00:00',
            '<=CALL_START_DATE' => $today . ' 23:59:59',
        ];

        Пример 5. Получение только состоявшихся звонков

        php
        <?php
        $filter = [
            '=CALL_STATUS' => 1,
            '>=CALL_START_DATE' => $today . ' 00:00:00',
            '<=CALL_START_DATE' => $today . ' 23:59:59',
        ];

        Пример 6. Получение звонков с аудиозаписью

        php
        <?php
        $filter = [
            '!=CALL_RECORD_ID' => false,
            '>=CALL_START_DATE' => $today . ' 00:00:00',
            '<=CALL_START_DATE' => $today . ' 23:59:59',
        ];

        Пример 7. Получение звонков по номеру телефона

        php
        <?php
        $filter = [
            '=PHONE_NUMBER' => '79507883158',
            '>=CALL_START_DATE' => $today . ' 00:00:00',
            '<=CALL_START_DATE' => $today . ' 23:59:59',
        ];

        Пример 8. Получение звонков по ID файла

        php
        <?php
        $webdavId = 807003;
        
        $filter = [
            '=CALL_WEBDAV_ID' => $webdavId,
        ];
        
        $dbRes = StatisticTable::getList([
            'filter' => $filter,
            'limit' => 1
        ]);
        
        $call = $dbRes->fetch();

        Пример 9. Получение звонков по активности CRM

        php
        <?php
        $activityId = 1719881;
        
        $filter = [
            '=CRM_ACTIVITY_ID' => $activityId,
        ];
        
        $dbRes = StatisticTable::getList([
            'filter' => $filter,
            'limit' => 1
        ]);
        
        $call = $dbRes->fetch();

        Получение локального пути к аудиозаписи

        Для получения правильного файла записи используйте поле CALL_RECORD_ID:

        php
        <?php
        require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
        
        use Bitrix\Main\Loader;
        use Bitrix\Voximplant\StatisticTable;
        use Bitrix\Main\FileTable;
        
        Loader::includeModule('voximplant');
        
        $webdavId = 807003;
        
        $statistic = StatisticTable::getList([
            'filter' => ['=CALL_WEBDAV_ID' => $webdavId],
            'limit' => 1
        ])->fetch();
        
        if (!$statistic) {
            die('Звонок не найден');
        }
        
        $recordId = $statistic['CALL_RECORD_ID'];
        
        if (empty($recordId)) {
            die('У звонка нет аудиозаписи');
        }
        
        $file = FileTable::getList([
            'select' => ['ID', 'SUBDIR', 'FILE_NAME', 'FILE_SIZE', 'CONTENT_TYPE'],
            'filter' => ['=ID' => $recordId],
            'limit' => 1
        ])->fetch();
        
        if ($file) {
            $localPath = '/upload/' . $file['SUBDIR'] . '/' . $file['FILE_NAME'];
            $fullPath = $_SERVER['DOCUMENT_ROOT'] . $localPath;
            
            echo 'ID файла: ' . $file['ID'] . "\n";
            echo 'Локальный путь: ' . $localPath . "\n";
            echo 'Полный путь: ' . $fullPath . "\n";
            echo 'Файл существует: ' . (file_exists($fullPath) ? 'ДА' : 'НЕТ') . "\n";
        }
        ?>

        Особенности и рекомендации

        1. Формат даты

        При фильтрации по дате используйте формат 'd.m.Y H:i:s':

        php
        $filter = [
            '>=CALL_START_DATE' => '17.07.2026 00:00:00',
            '<=CALL_START_DATE' => '17.07.2026 23:59:59',
        ];

        2. Получение правильного файла

        Для получения аудиозаписи используйте поле CALL_RECORD_ID:

        php
        $recordId = $statistic['CALL_RECORD_ID'];
        $file = FileTable::getList([
            'filter' => ['=ID' => $recordId],
            'limit' => 1
        ])->fetch();

        3. Проверка наличия аудиозаписи

        php
        if (!empty($statistic['CALL_RECORD_ID'])) {
            // У звонка есть аудиозапись
        }

        4. Производительность

        При большом количестве звонков используйте limit и offset:

        php
        $params = [
            'filter' => $filter,
            'order' => ['CALL_START_DATE' => 'DESC'],
            'limit' => 100,
            'offset' => 0,
        ];

        Заключение

        \Bitrix\Voximplant\StatisticTable::getList() — это основной ORM-инструмент для программного доступа к статистике звонков в коробочной версии Битрикс24. Он обеспечивает гибкую фильтрацию и сортировку, позволяя получать звонки по датам, пользователям, статусам и другим параметрам.

        Ключевые моменты:

        1. Формат даты в фильтре: 'd.m.Y H:i:s'

        2. Для получения аудиозаписи используйте CALL_RECORD_ID

        3. Всегда проверяйте наличие CALL_RECORD_ID перед попыткой получить файл

        4. Используйте limit и offset для оптимизации производительности

        Понимание этого метода необходимо каждому разработчику, работающему с телефонией в Битрикс24, особенно при реализации отчётов, аналитики и интеграций с внешними системами.

        Начните сотрудничество с индивидуальной консультации по подбору инструментов и услуг.
        Заказать услугу

        Подписаться на
        рассылку

        Будьте в курсе последних новостей отрасли

        Подписаться
        • Комментарии
        Загрузка комментариев...
        Назад к списку
        Услуги
        Лицензии 1С-Битрикс
        Внедрение CRM
        Доработка корпоративных порталов Битрикс24
        Техническое сопровождение
        Перенос Битрикс24 из облака в коробку
        Сайты на 1С-Битрикс24
        Компания
        О компании
        Сертификаты
        Карьера
        Разработка ПО
        Проекты
        Новости
        Контакты
        Подписка на рассылку
        +7 (495) 118-30-89
        Заказать звонок
        info@7sites.ru
        г. Пермь, ш. Космонавтов 111, к. 10
        • Вконтакте
        • Facebook
        • Twitter
        • Telegram
        Политика конфиденциальности
        © 2009-2026 ООО "7 САЙТОВ" (с) Все права защищены.
        Заказать звонок
        Написать сообщение
        Ближайший офис