Releases: mikopbx/ModuleBitrix24Integration
Releases · mikopbx/ModuleBitrix24Integration
Release list
Development Build 1.275
- fix: чанкинг user.get по 50 + детект сбоя batch по явным сигналам, защита inner_numbers от partial-dropout (forum #5150)
- fix: защита от Undefined array key NAME/LAST_NAME в b24GetPhones
- MTS import: прикрепление записи при пустом mts_rec_status
- register/show: пропуск плеч без B24-пользователя
- queue/transfer UI: hide остальным при ответе + register только при переводе
- finish-фильтр в B24: только ответившие плечи + дедуп пропущенного по звонку
- per-leg finish: защита от пустого ARGS_REGISTER (дедуп register)
- Перевод: возврат per-leg CALL_ID для отдельной карточки звонка на плечо
- inner_numbers: устойчивость к разовому сбою user.get + дифф/контекст в логах
- UI-сохранение: import_mts_calls и mts_import_last_id обрабатываются корректно
- Сохранение настроек: убраны ложный «Fail save externalLines» и опасное удаление
- MtsImporter: pending-guard срабатывает безусловно
- AMI-воркер: устранение цикла рестартов + фикс MtsImporter Settings unavailable
- Фикс: orphan-finish от IVR/queue-leg перетирал статус отвеченного звонка
- Импорт истории звонков из ModuleMtsPbx через batch register+finish
- Хотфикс: исчезающие звонки в B24 после 1.273
- Корректный ответственный звонка после перевода (регрессия с 1.272)
- Не применять orphan-логику к voicemail-звонкам
- Регистрация входящих, не дошедших до оператора, на ответственного за пропущенные
- Защита от OOM в HTTP-воркере и настраиваемый уровень логирования
- Исправление маршрутизации звонков на voicemail и пользователей без UF_PHONE_INNER
- Корректное разрешение CALL_ID в batch-запросах finish/attachRecord/show/hide
- Сброс needRestart после init в AMI-воркере
- Добавлена зависимость cesargb/php-log-rotation в composer.json
- Добавлен GitHub Actions workflow для автоматической сборки модуля
- Оптимизация количества REST API запросов к Bitrix24
- Регистрация исходящих для сотрудников без UF_PHONE_INNER в b24
- Усилена валидация аргументов RPC в ConnectorDb::onEvents
- Исправлен column index out of range в getContactsByPhoneWithOrder
- Защита от крашей по результатам анализа Sentry
- Единая точка опроса offline-событий и лог подписок
- Ожидание готовности .webm перед загрузкой записи в Bitrix24
- Защита lastId от сброса, оптимизация API-запросов и ручная синхронизация связей
- Дополнительные проверки needRestart в executeTasksInner
- Retry загрузки записей и адаптивный интервал синхронизации контактов
- Устойчивость OAuth-авторизации и загрузки записей в Bitrix24
- Защита от undefined array key во всех обработчиках CDR-событий
- Исправлен краш AMI-воркера при отсутствии ключа did в CDR-данных
- Поддержка GZ-сжатых CDR-событий в AMI-воркере
- Устранён крах AMI-воркера при expired OAuth token
- Исправлены краши AMI-воркера, загрузка записей и race condition file_exists
- Перенос проверки дедупликации finish до обработки ARGS_REGISTER
- Оптимизация ConnectorDb и исправление потери записей разговоров (#120)
- Исправлено зависание HTTP-воркера на poll() и зомби-процессы (#119)
- Обновлён CLAUDE.md: PHP-совместимость, поток обработки звонков, логи
- Исправлены проблемы совместимости PHP 7.4/8.x по результатам код-ревью
- Исправлено неоткрытие карточки звонка у второго участника очереди
- Исправлена ошибка save() on null в updateCdrFromArrayByUID и коллизия temp-файлов
- Добавлена защита от распаковки массива со строковыми ключами в onEvents
- Исправлена ошибка column index out of range в getContactsByPhoneWithOrder
- Исправлена ошибка PDOStatement::execute при массовом удалении контактов
- Отключил обработку ивентов с пустым UNIQUEID
- #116 Поправил ошибку открытия карточки звонка, когда функция отключена.
- Исправлены проблемы сохранения настроек интеграции
- Added translation using Weblate (Persian)
- Added translation using Weblate (Hebrew)
- Поправил обновление ответсвтенного в лиде при ответе на вызов.
- Исправлены ошибки совместимости с php 8.3. Доработана очистка временных кэш данных.
- Реализовал отложенную на 30 секунд обработку загрузки медиа файлов на портал b24.
- Исправил ошибки возврата значения.
- Реализовал отложенную очистку очереди событий.
- Добавил лог сообщение об очистке очереди событий по звонку.
- Исправлена ошибка преждевременной очистки очереди событий.
- Реализовал заполнение описания для дела, связанного с телефонным звонком.
- Разделил логи форк процесса и основноного.
- Расширил логи. Оптимизация.
- Доработал защиту от дублирования finish звонка.
- Добавил защиту от дублирования finish звонка.
- Поправил работу очереди.
- Доработка логгера
- Поправил логгер событий.
- Добавил контроль запуска дубликатов процессов.
- Дополнил логфайл.
- Исправил ошибку условия. Усилил проверку кэш.
- Дополнил лог и дополникл кэш.
- Добавил доп. лог
- Исправлена ошибка вызовы несуществующей функции addEventsToMainQueue
- Поправил фиксацию пропущенных вызовов.
- Исправлены ошибки закрытия карточки звонка при звонке на очередь. Переработана очередь событий.
- Поправил цвет кнопки авторизации.
- Добавил safe скрипт. Добавил отображение статусов работы сервисов воркеров.
- Правка страницы настройки модуля. Правка механизма сохранения настроек. Добавлен safe скрипт для контироля запуска вспомогательгных сервисов.
- Правка ротации логов.
- Поправил лог ошибки загрузки файла зписи разговора
- Оптимизация Добавил лог длительных запросов.
- Исправлены ошибки работы модуля.
- Поправил ошибку обновление ссылок
- Исправлены ошибки получения списка сотрудников
- Правка ошибок
- Доработан процесс синхронизации кэш контактной информации.
- Translated using Weblate (Thai)
- Удалил сборку проекта в github
- Add release settings to module.json for automated publishing and changelog to GitHub
- Исправлены ошибки регистрации контактной информации в базе данных
- Исправил ошибку сохранения контактной информации.
- Доработка отображения формы настроек. Исправлена ошибка сохранения настроек.
- Поправил ошибку установки модуля
- Поправил сохранение кэш контактной информации
- #102 Правка ошибок отправки ответа в несуществующий tube
- #102 Правка вывода логов
- #102 Правка вывода логов
- #102 Оптимизация
- #102 Доработка регистрации телефонных звонков
- Отключил расширенный лог.
- Исправлены ошибка совместимости с cphalcon5
- Добавил обнудение lastCompanyId lastCompanyId если таблица связей ContactLinks пустая
- Реализовал синхронизацию связей контактов и компаний.
- Отключил пагинацию нешних линий
- Правка оформления логов
- Правка ошибок совместимости с cphalcon 5
- Правка совместимости с cphalcon 5
- Правка сохранения данных внешних линий и отображения в web интерфейсе.
- Поправил composer.json
- #101 Поправил отображение режима открытия карточки, для случая, если модулуль отключен.
- Исправил ошибку ротации логов
- Доработал метод FUNC_GET_CONTACT_BY_PHONE_ORDER
- Добавил метод FUNC_GET_CONTACT_BY_PHONE_ORDER
- Исправлена ошибка в callback
- Поправил ID для региона WORLD.
- Расширил лог при ошибки обновления токена
- Поправил ошибку работы с redis. Дополнил лог для ошибок API 'wrong_client','NO_AUTH_FOUND'
- Убрал уведомление для РФ региона о бесплатном приложении.
- Правка ID приложений из маркетплейс
- #31 Поправил сохранение ID очереди
- #100 Исправил ошибки получения статуса подключения.
- Переработал синхронизацию контактов, теперь выполняется в параллельном потоке
- Правки ошибок
- Translated using Weblate (Croatian)
- Added translation using Weblate (Croatian)
- Добавил дополнительный лог
- Refactor checkbox usage
- Update for PHP 8.3 and Phalcon 5.8
- Update for PHP 8.3 and Phalcon 5.8
- Update for PHP 8.3
- Update for PHP 8.3
- Поправил требование к минимальной версии АТС.
- Added translation using Weblate (languages (generated) (languages))
- Translated using Weblate (Finnish)
- Added translation using Weblate (Finnish)
- Добавил сериализацию в файл, для возможности передачи больших объемов данных.
- Реализовал возможность выполнить запрос к API из внешнего скрипта
- Поправил ошибки
- Правка ротации логов
- Добавил ротацию лога
- Оптимизация работы модуля.
- Разделил логи процессов по разным файлам.
- #42 Исправлена ошибка записи в лог файл из web интерфейса.
- #42 Поправил логирование последовательных исходящих звонков.
- Правка открытия карточки на пропущенный вызов. Не подхватывались настройки пользователя по открытию карточки. Актуально для звонков на IVR, когда пропущенный распределялся на "ответственного по умолчанию"
- Правка создания лида
- Merge remote-tracking branch 'origin/develop' into develop
- Исправил поведение click2call из карточки. Обрабатываем CRM_ENTITY_ID для передачи в telephony.externalcall.register, вызов будет прикрепляться к сущности, из которой выполняется звонок.
- Добавил для исходящих звонков уточнение контакта в telephony.externalcall.register
- Translated using Weblate (Hungarian)
- Поправил ошибку отрисовки таблицы сотрудников.
- Added translation using Weblate (Hungarian)
- Оптимизация
- Переработал вызовы REST
- Поправил ошибки вызова функции.
- Исправил ошибку получения списка внутренних номеров из WorkerBitrix24IntegrationHTTP
- Поправил ошибки синхронизации контактов
- Добавил worker ConnectorDb, теперь доступ к базе данных модуля выполняется через него.
- Поправил ошибку
- Удалил неиспользуемый код
- Исправил проблемы ротации лога.
- Исправил ошибки синхронизации контактов и лидов.
- Поправил ошибку записи в лог при отсутсвии настроек.
- Исправил ошибку доступа к логу при открытии web интерфейса
- #83 Исправил проблему отправки слишком большого запроса в sendBatch. разбил на части.
- Расширил логи, вынес идентификатор звонка для более простой фильтрации лога.
- Поправил получение идентификатора номера телефона.
- Расширил логи для анализа потенциальных проблем
- #14 Убрал ключи из кода.
- Исправлена ошибка открытия страницы настроек модуля интеграции при первом старте.
- Исправлена ошибка не корректной смены ответственного за лид.
- Поправил ответственного за lead
- Поправил переопределение ответственного за лид.
- Поправил лог загрузки фалов на портал b24.
- Translated using Weblate (Thai)
- Added translation using Weblate...
Release 1.274
- Устранено автоотключение модуля из-за сбоев воркеров — исправлены циклы перезапуска AMI-воркера, в том числе падение при сотруднике Bitrix24 без заполненного имени/фамилии.
Release 1.273
⏺ Changelog (Russian)
- Исправлено исчезновение звонков из Bitrix24 после версии 1.273: карточки больше не удаляются автоматически, активность сохраняется.
- Устранён цикл перезапусков AMI-воркера на старте — модуль стабильно поднимается после перезапуска АТС.
- Исправлен сбой HTTP-воркера с OOM при больших ответах Bitrix24 (issue #135): подняты лимиты, добавлен выбор уровня логирования (NONE/ERROR/INFO/DEBUG) на вкладке «Прочее».
- Исправлена потеря длительности звонка и записи разговора в карточке: пропадало "Call is not found" при batch-запросах finish/attachRecord/show/hide.
- Исправлен неверный ответственный после перевода звонка: ASSIGNED_BY_ID лида/контакта/сделки теперь указывает на того, кто реально завершил разговор.
- При переводе звонка для каждого плеча создаётся отдельная карточка со своим ответственным, длительностью и записью разговора (раньше терялась запись плеча до перевода).
- Исправлен случай, когда ответенный звонок ошибочно отмечался как «пропущенный» из-за событий от IVR/очереди.
- Исправлен ложный «Fail save externalLines» при сохранении настроек, устранено опасное удаление всех внешних линий при сохранении формы.
- Исправлено сохранение настройки «Импорт звонков из МТС» (галка не сохранялась) и сброс курсора импорта при каждом сохранении настроек.
- Добавлен опциональный фоновый импорт истории звонков из модуля ModuleMtsPbx в Bitrix24 (галка в админке).
- Исправлено прикрепление записи разговора для старых записей МТС с пустым статусом — теперь определяется по наличию реального файла.
- Записи МТС, у которых MP3 ещё не докачен, больше не отправляются в B24 без записи — ждём докачки.
- Входящие звонки, не дошедшие до оператора (сброс в IVR/очереди), теперь регистрируются в Bitrix24 на ответственного за пропущенные.
- Голосовая почта корректно отмечается как пропущенный звонок и не уходит на случайного пользователя.
- Исправлена маршрутизация на пользователей без внутреннего номера: больше не создаются «лишние» лиды на случайного сотрудника.
- При ответе оператора в очереди карточки звонка у остальных участников закрываются сразу, не дожидаясь окончания разговора.
- В B24 теперь уходят только реально ответившие плечи звонка и ровно один пропущенный, если звонок никто не взял — в журнале телефонии больше нет «фантомных» карточек с длительностью 0.
- Звонки на номера, настроенные в модуле, но не привязанные к сотруднику в Bitrix24, больше не создают бесхозные карточки.
- Повышена устойчивость к разовым сбоям получения списка сотрудников из B24: при пустом ответе используется предыдущий список, в логе фиксируются изменения состава (added/removed).
Changelog (English)
- Fixed calls disappearing from Bitrix24 after version 1.273: activities are no longer deleted automatically.
- Resolved AMI worker restart loop on startup — the module now starts reliably after PBX restart.
- Fixed HTTP worker OOM crash on large Bitrix24 responses (issue #135): memory limit raised, configurable log level (NONE/ERROR/INFO/DEBUG) added to the "Other" tab.
- Fixed missing call duration and recording in call cards: eliminated "Call is not found" errors in batch finish/attachRecord/show/hide requests.
- Fixed incorrect responsible user after call transfer: the lead/contact/deal owner is now the operator who actually finished the conversation.
- After a transfer, each leg now creates a separate call card with its own responsible user, duration and recording (previously the pre-transfer recording was lost).
- Fixed answered calls being incorrectly marked as "missed" due to events from IVR/queue legs.
- Removed false "Fail save externalLines" error and prevented accidental deletion of all external lines when saving the settings form.
- Fixed "Import MTS calls" checkbox not saving, and the MTS import cursor being reset on every settings save.
- Added optional background import of historical calls from ModuleMtsPbx into Bitrix24 (checkbox in admin panel).
- Fixed recording attachment for legacy MTS records with empty status — now determined by actual file presence.
- MTS records whose MP3 is still downloading are no longer sent to B24 without the recording — they wait for download to complete.
- Incoming calls that never reached an operator (dropped in IVR/queue) are now registered in Bitrix24 to the "responsible for missed calls" user.
- Voicemail is correctly marked as a missed call and no longer routed to a random user.
- Fixed routing to users without an internal number: no more spurious leads created on a random employee.
- When one operator answers a queue call, call cards close immediately for the other participants instead of staying open until end of call.
- Only actually answered legs are now sent to B24, and exactly one "missed" event per call — no more phantom zero-duration cards in the telephony journal.
- Calls to numbers configured in the module but not linked to a Bitrix24 user no longer create orphan cards.
- Improved resilience to transient B24 user-list failures: empty user.get responses no longer wipe the employee map; added/removed changes are logged for diagnostics.
Release 1.272
Changelog (Russian)
- Снижено количество REST API запросов к Bitrix24 примерно вдвое. Синхронизация контактов теперь запускается не чаще раза в минуту (вместо каждых 10 секунд), а при отсутствии изменений интервал увеличивается до 10 минут. Повторные обновления одного и того же контакта, компании или лида за короткий период объединяются в один запрос вместо нескольких одинаковых.
- Добавлена автоматическая сборка модуля через GitHub Actions с подстановкой OAuth-ключей для всех регионов (Россия, Казахстан, Беларусь, Мир).
Changelog (English)
- Reduced the number of REST API requests to Bitrix24 by approximately half. Contact synchronization now runs no more than once per minute (instead of every 10 seconds), and the interval extends up to 10 minutes when there are no changes. Repeated updates to the same contact, company, or lead within a short period are merged into a single request instead of multiple identical ones.
- Added automatic module builds via GitHub Actions with OAuth key injection for all regions (Russia, Kazakhstan, Belarus, World).