Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и 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 от сервера.