SIP Error 411 Length Required: отсутствие заголовка Content-Length
- Сервер отклоняет входящие SIP-пакеты со статусом
SIP/2.0 411 Length Required. - Сбои при отправке запросов
MESSAGE,PUBLISH,NOTIFYилиINVITEс телом SDP. - Проблема возникает при использовании самописных скриптов генерации SIP или устаревших домофонов/СКУД.
1. Анализ отсутствующего заголовка Content-Length
sngrep -c "411 Length Required"Изучите исходящий запрос. Согласно стандарту RFC 3261, любой запрос с телом сообщения обязан содержать заголовок Content-Length с точным указанием длины полезной нагрузки в октетах (байтах).
2. Корректный формат заголовка в SIP сообщении
INVITE sip:102@192.168.1.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK-1234
From: ;tag=abcd
To:
Call-ID: c4ca4238a0b923820dcc509a6f75849b
CSeq: 1 INVITE
Content-Type: application/sdp
Content-Length: 215
v=0
o=- 123456 123456 IN IP4 192.168.1.50
s=-
c=IN IP4 192.168.1.50
t=0 0
m=audio 10000 RTP/AVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000 3. Обработка пустого тела (Content-Length: 0)
Если запрос не несет тела (например, ACK, BYE, OPTIONS), заголовок все равно должен присутствовать со значением 0:
Content-Length: 0 Частые вопросы (FAQ)
Почему TCP требует обязательного указания Content-Length?
В потоковом протоколе TCP нет границ пакетов (демаркации кадров). Сервер может определить, где заканчивается тело текущего SIP-сообщения и начинается следующее, только по значению Content-Length.
Как исправить ошибку 411 на IP-домофонах?
Обновите прошивку SIP-модуля вызывной панели СКУД или включите в ее настройках опцию 'Always include Content-Length header'.