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

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

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

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

Траблшутинг обрывов звонков по Session-Expires (SIP Session Timers RFC 4028)

Обновлено: 24.08.2026 · Официальная документация ↗
  • Все телефонные разговоры внезапно обрываются ровно на 15-й, 30-й или 60-й минуте.
  • Один из участников посылает BYE с причиной Reason: SIP;cause=408;text="Session Timer Expired".
  • Входящий вызов отклоняется оператором с ошибкой 422 Session Interval Too Small.

1. Принцип работы SIP Session Timers (RFC 4028)

Session Timers периодически отправляют повторный Re-INVITE или UPDATE внутри диалога для проверки, живы ли участники сессии. Если подтверждение (200 OK) не получено до истечения интервала Session-Expires, сессия принудительно гасится отправкой BYE.

2. Разбор заголовков Session-Expires в дампе

Session-Expires: 1800;refresher=uac
Min-SE: 90
Supported: timer
  • Session-Expires: общее время жизни сессии в секундах (например, 1800 сек = 30 мин). Половина этого времени (900 сек / 15 мин) — время отправки первого рефреш-запроса.
  • refresher: сторона, обязанная слать повторный запрос (uac — вызывающий, uas — отвечающий).
  • Min-SE: минимально допустимый интервал сессии.

3. Исправление ошибки 422 Session Interval Too Small

Если оператор возвращает 422, увеличьте значение Min-SE в вашей системе до требуемого оператором:

# Asterisk pjsip.conf
[endpoint-trunk]
timers_min_se = 1800
timers_sess_expires = 1800

4. Отключение Session Timers при сбойных клиентах

Если софтфон или шлюз не умеет корректно отвечать на Re-INVITE таймера, отключите таймеры на соответствующем endpoint:

# Asterisk pjsip.conf
[legacy-phone]
type=endpoint
timers = no
💡 Практика специалистов: Если звонки обрываются ровно через 30 минут — убедитесь, что в цепочке прохождения трафика фаервол не сбрасывает TCP/UDP conntrack трансляцию раньше, чем АТС отправляет Session-Timer keep-alive.

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

Почему вызовы сбрасываются ровно на 15-й минуте при Session-Expires=1800?

Согласно стандарту, сторона-refresher начинает посылать запросы обновления на половине интервала (1800 / 2 = 900 сек = 15 мин). Если фаервол блокирует Re-INVITE, соединение висит до полного тайм-аута и рвется.

Что лучше использовать для рефреша: Re-INVITE или UPDATE?

UPDATE предпочтительнее, так как он легче обрабатывается стеком SIP и не требует повторного согласования медиадескрипторов SDP.

Кто решает, кто будет refresher (UAC или UAS)?

Сторона UAS (отвечающий) в ответе 200 OK окончательно утверждает роль параметра refresher=uac или refresher=uas.

Как NAT влияет на Session Timers?

Если NAT-сессия закрылась раньше, чем подошел таймер рефреша (например, NAT timeout 300 сек, а refresher шлет запрос на 900 сек), Re-INVITE не пройдет снаружи к клиенту.

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