SIP Error 580 Precondition Failure: причины ошибки и настройка QoS / RSVP
- Инициация вызова (SIP INVITE) прерывается ответом
580 Precondition Failure. - Вызовы сбрасываются в транках операторов связи при попытке установить защищенный или приоритетный медиаканал.
- В SIP-трассировке фиксируется заголовок
Require: preconditionлибо строки дескриптора SDPa=curr:qosиa=des:qos. - Абонент слышит короткие гудки сразу после набора номера до фазы Ringing (180/183).
1. Архитектура механизма Preconditions (RFC 3312)
Ответ 580 Precondition Failure отправляется терминалом или SBC, когда для вызова запрошено обязательное предварительное резервирование ресурсов (полоса пропускания QoS, RSVP, подтверждение безопасности медиа), но сеть или удаленный узел не смогли удовлетворить эти требования до начала сигнализации вызова (Alerting).
2. Анализ SIP/SDP трассировки через sngrep
sngrep -c -d any "580 Precondition"В теле пакета INVITE проверьте блок атрибутов SDP:
a=curr:qos local none
a=curr:qos remote none
a=des:qos mandatory local sendrecv
a=des:qos mandatory remote sendrecvЕсли параметр обозначен как mandatory, а шлюз не поддерживает RSVP/Precondition, диалог отклоняется статусом 580.
3. Отключение требований Precondition на SBC и Asterisk
В Asterisk (chan_pjsip) убедитесь, что шлюз не транслирует неподдерживаемые атрибуты precondition удаленной стороне. В файле /etc/asterisk/pjsip.conf для конечной точки (endpoint):
[my_trunk_endpoint]
type=endpoint
transport=transport-udp
context=from-trunk
disallow=all
allow=alaw,ulaw,g729
; Отключение трансляции неподдерживаемых заголовков
inband_progress=yes
100rel=yes4. Фильтрация атрибутов QoS на Kamailio / OpenSIPS
Если upstream-провайдер отклоняет вызовы, удалите требование обязательного QoS в SDP через модуль textops:
route[RELAY_SDP_CLEAN] {
if (has_body("application/sdp")) {
# Удаление строк precondition из SDP
sdp_remove_line_by_prefix("a=des:qos");
sdp_remove_line_by_prefix("a=curr:qos");
remove_hf("Require");
remove_hf("Supported");
}
t_relay();
}5. Проверка настроек DiffServ/TOS на маршрутизаторе
Убедитесь, что сигнальный и голосовой трафик маркируется корректными DSCP-тегами (EF для RTP, CS3/AF31 для SIP):
iptables -t mangle -A OUTPUT -p udp --dport 5060 -j DSCP --set-dscp-class CS3
iptables -t mangle -A OUTPUT -p udp --dport 10000:20000 -j DSCP --set-dscp-class EF Частые вопросы (FAQ)
Что означает статус SIP 580 Precondition Failure простыми словами?
Это означает, что одно из обязательных технических условий для старта разговора (например, резервирование гарантированной полосы пропускания сети под аудиопоток) не смогло выполниться, и узел сбросил вызов.
В каких сетях чаще всего встречается ошибка 580?
Ошибка 580 типична для сетей мобильной связи VoLTE/IMS (3GPP спецификации) и корпоративных сетей Cisco Unified Communications Manager (CUCM), где настроен RSVP-контроль полосы между филиалами.
Как отключить RSVP Precondition в Cisco Unified CallManager (CUCM)?
В настройках SIP Profile измените параметр 'Early Offer support for voice and video calls' и отключите опцию 'Require RSVP Policy' в свойствах Location/Region.
Поможет ли смена аудиокодека избавиться от ошибки 580?
Только если ошибка вызвана нехваткой выделенной полосы пропускания (RSVP Bandwidth limit). Переход с кодека G.711 (64 kbps) на G.729 (8 kbps) или OPUS может снизить требования к каналу.