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

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

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

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

SIP Error 412 Conditional Request Failed: сбой условных запросов

Обновлено: 24.08.2026
  • Службы статусов доступности (BLF / Presence / Event State) возвращают SIP/2.0 412 Conditional Request Failed.
  • Ошибки при отправке запросов PUBLISH или NOTIFY.
  • Индикаторы занятости линий (BLF) на IP-телефонах гаснут или светятся некорректным цветом.

1. Анализ заголовка SIP-If-Match в пакетах PUBLISH

sngrep -c "412 Conditional Request Failed"

Ошибка 412 означает, что переданный в запросе SIP-If-Match ETag-токен не совпадает с текущим состоянием документа состояния (Presence Document) на сервере.

2. Сброс состояния Presence подписок в Asterisk

asterisk -rx "pjsip show subscriptions"
asterisk -rx "core reload"

3. Конфигурация таймеров Event State в pjsip.conf

Убедитесь, что клиент своевременно обновляет подписку до истечения времени жизни ETag:

[endpoint_template](!)
type=endpoint
allow_subscribe=yes
sub_min_expiry=60
sub_max_expiry=3600
💡 Практика специалистов: Проблема с кодом 412 часто наблюдается на телефонных аппаратах Grandstream и Yealink при нестабильном Wi-Fi подключении: устройство пропускает NOTIFY с новым ETag и шлет старый токен.

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

Что означает заголовок SIP-If-Match?

Это аналог HTTP If-Match (RFC 3903), предотвращающий перезапись состояния ресурса (Lost Update Problem), если другой клиент уже успел обновить статус линии или присутствия.

Как клиенту восстановиться после ошибки 412?

Клиент должен отбросить сохраненный локальный ETag и отправить новый начальный запрос PUBLISH без заголовка SIP-If-Match, чтобы получить свежий ETag от сервера.

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