SIP Error 423 Interval Too Brief: устранение проблем регистрации IP-телефонов
- IP-телефон, шлюз или домофон не могут завершить регистрацию на SIP-сервере (Registration Failed).
- Сервер возвращает ответ
SIP/2.0 423 Interval Too Briefна запросREGISTER. - В теле ответа содержится обязательный заголовок
Min-Expiresс минимально допустимым временем аренды регистрации в секундах.
1. Анализ запроса регистрации в SIP-трассировке
Проверьте тайминги в пакете REGISTER:
REGISTER sip:pbx.domain.com SIP/2.0
Contact: <sip:101@192.168.1.50:5060>;expires=30
Expires: 30Ответ сервера:
SIP/2.0 423 Interval Too Brief
Min-Expires: 600
Server: Kamailio-RegistrarОшибка 423 возникает, когда клиент пытается запросить слишком короткий интервал обновления регистрации (в примере — 30 секунд), а сервер настроен на минимальный порог в 600 секунд для снижения нагрузки на базу данных Location.
2. Корректировка времени регистрации в настройках IP-телефонов
Зайдите в Web-интерфейс оконечного аппарата (Yealink, Fanvil, Snom) в раздел SIP Account -> Basic Settings:
- Register Expiration (Таймаут регистрации): увеличьте с
30/60до600или3600секунд. - Убедитесь, что клиент поддерживает чтение заголовка
Min-Expiresдля автокоррекции.
3. Настройка минимального тайм-аута в Asterisk (chan_pjsip)
В файле /etc/asterisk/pjsip.conf скорректируйте секцию типа registrar или aor:
[101]
type=aor
max_contacts=2
minimum_expiration=60 ; Минимально разрешенный тайм-аут (по умолчанию 60)
maximum_expiration=7200 ; Максимально разрешенный тайм-аут
default_expiration=36004. Конфигурация модуля Registrar в Kamailio
В /etc/kamailio/kamailio.cfg настройте параметр модуля min_expires:
modparam("registrar", "min_expires", 120)
modparam("registrar", "max_expires", 3600)
modparam("registrar", "default_expires", 1800) Частые вопросы (FAQ)
Какова цель использования ошибки SIP 423 сервером?
Защита сервера регистрации (Registrar) от перегрузки (DDoS/High Load), если тысячи клиентов одновременно шлют частые запросы REGISTER с интервалом в несколько секунд.
Как клиент должен обрабатывать ответ 423 Interval Too Brief?
Согласно RFC 3261, клиент должен прочитать заголовок Min-Expires из ответа 423, изменить значение своего поля Expires/Contact на указанное число и отправить новый запрос REGISTER.
Влияет ли NAT Keep-Alive на значение параметра Expires в регистрации?
Нет. Для поддержания NAT-трансляций маршрутизатора должны использоваться легковесные пакеты (пустые UDP-пакеты, SIP OPTIONS), а не полная перерегистрация REGISTER.
Где указывается время регистрации: в заголовке Expires или в параметре Contact?
Оно может указываться в обоих местах. Если параметр 'expires=' присутствует внутри заголовка Contact, он имеет наивысший приоритет над глобальным заголовком Expires.