Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ONVIF_SUBSCRIPTION_EXPIRED IP-Телефония и СКУД

ONVIF Ошибка PullMessages: подписка на события истекла или закрыта

Обновлено: 24.08.2026 · Официальная документация ↗
  • Периодический сбой получения событий тревоги, детекции движения и проходов СКУД по ONVIF.
  • Вызов метода PullMessages возвращает ошибку wsnt:SubscriptionEnd или The subcription has expired or does not exist.
  • Сервер VMS перестает реагировать на аппаратные тревожные входы (Alarm Inputs) камеры.

1. Архитектура доставки событий PullPoint в ONVIF

Сервис событий ONVIF PullPoint Event Mechanism работает по модели аренды подписки (Subscription Lease). Клиент создает точку подписки через CreatePullPointSubscription, получая уникальный URL с временем жизни (InitialTerminationTime, например PT60S — 60 секунд). Для поддержания подписки клиент обязан регулярно вызывать метод Renew.

Если клиент задержал вызов PullMessages или Renew дольше установленного таймаута, камера автоматически уничтожает объект подписки для освобождения памяти, возвращая ошибку при следующем запросе.

2. Создание долгоживущей подписки (CreatePullPointSubscription)

<soapenv:Body>
  <tev:CreatePullPointSubscription xmlns:tev="http://www.onvif.org/ver10/events/wsdl">
    <!-- Запрашиваем время жизни подписки 10 минут (PT10M) -->
    <tev:InitialTerminationTime>PT10M</tev:InitialTerminationTime>
  </tev:CreatePullPointSubscription>
</soapenv:Body>

В ответе сохраните возвращенный адрес подписки (SubscriptionReference -> Address), например: http://192.168.1.50/onvif/subscription?idx=12.

3. Продление подписки методом Renew

Отправляйте запрос Renew по таймеру до истечения срока аренды:

<soapenv:Body>
  <wsnt:Renew xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
    <wsnt:TerminationTime>PT10M</wsnt:TerminationTime>
  </wsnt:Renew>
</soapenv:Body>

4. Обработка ошибки и автоматическое переподключение (Reconnect Loop)

В архитектуре сервиса интеграции предусмотрите перехват исключения завершения подписки:

  1. При получении кода ошибки SubscriptionEnd или InvalidMessageContent закройте старый сокет;
  2. Инициируйте процедуру Unsubscribe (подавление ошибок);
  3. Создайте новую подписку через CreatePullPointSubscription и перенаправьте цикл PullMessages на новый URL.
💡 Практика специалистов: Для интеграции тревожных входов СКУД через ONVIF всегда настраивайте фильтрацию топиков (TopicExpression) на этапе CreatePullPointSubscription. Это снизит нагрузку на CPU камеры, исключив миллионы мелких событий детекции шума в кадре.

Частые вопросы (FAQ)

Какой оптимальный таймаут указывать в PullMessages?

Рекомендуемый таймаут ожидания сообщений (Timeout) в запросе PullMessages составляет от 5 до 30 секунд (например, PT15S) при лимите сообщений MessageLimit=10.

Почему подписка разрывается при нестабильном Wi-Fi/4G канале?

При потере связи клиент пропускает цикл отправки Renew или PullMessages. Камера считает клиента отключенным и удаляет подписку по истечении TerminationTime.

Сколько одновременных подписок на события поддерживает одна камера?

Большинство встраиваемых IP-камер аппаратно ограничены лимитом в 2–4 одновременных PullPoint сессий. При превышении лимита новые подписки отклоняются.

Как получать события без постоянного создания Pull-подписок?

Используйте базовый механизм WS-BaseNotification (Push-уведомления), где камера сама отправляет HTTP POST запросы на эндпоинт вашего веб-сервера (ConsumerReference).

Полезные материалы
Рекомендуем