Networking SIP/2.0 400 SIP消息体较短,由内容长度表示

Networking SIP/2.0 400 SIP消息体较短,由内容长度表示,networking,sip,Networking,Sip,在我的应用程序、Freeswitch和nextiva trunk之间进行SIP通信期间,我从208.73.146.95收到以下错误消息: SIP/2.0 400 Sip message body is shorter that is indicated by the content length 前一条消息是传入FS ans is的消息 SIP/2.0 100 Trying 在上一条消息发出之前 INVITE sip:MYNUMBER@208.73.146.95 SIP/2.0 内容长

在我的应用程序、Freeswitch和nextiva trunk之间进行SIP通信期间,我从
208.73.146.95
收到以下错误消息:

 SIP/2.0 400 Sip message body is shorter that is indicated by the content length
前一条消息是传入FS ans is的消息

 SIP/2.0 100 Trying
在上一条消息发出之前

INVITE sip:MYNUMBER@208.73.146.95 SIP/2.0
内容长度完全正确。许多以前的消息都没有内容,而且在消息再次出现之前很久就有了确切的长度


此消息的含义是什么?

这实际上是一个错误的请求消息,其内容长度比SIP消息体的长度要长。如果通过UDP发送,接收方将响应400错误请求错误;如果通过TCP发送,接收方将在一段时间内等待更多数据。让我们举个例子:

INVITE sip:user@example.com SIP/2.0
Via: SIP/2.0/UDP host5.example.com;branch=z9hG4bK-39234-23523
Max-Forwards: 80
To: sip:j.user@example.com
From: sip:caller@example.net;tag=93942939o2
Contact: <sip:caller@hungry.example.net>
Call-ID: clerr.0ha0isndaksdjweiafasdk3
CSeq: 11 INVITE
Content-Type: application/sdp
Content-Length: 10000

v=0
o=mhandley 29739 7272939 IN IP4 208.73.146.95
c=IN IP4 208.73.146.95
t=0 0
m=audio 49217 RTP/AVP 0 12
m=video 3227 RTP/AVP 31
a=rtpmap:31 LPC
INVITE sip:user@example.comSIP/2.0
Via:SIP/2.0/UDP host5.example.com;分支=z9hG4bK-39234-23523
最大前锋:80
致:sip:j。user@example.com
发件人:sip:caller@example.net;标签=93942939o2
联系人:
呼叫ID:clerr.0ha0isndaksdjweiafasd3
CSeq:11邀请
内容类型:应用程序/sdp
内容长度:10000
v=0
o=IP4 208.73.146.95中的mhandley 29739 7272939
c=在IP4 208.73.146.95中
t=0
m=音频49217 RTP/AVP 0 12
m=视频3227 RTP/AVP 31
a=rtpmap:31 LPC
下面是一个SIP消息的示例,接收方将用这种错误的请求来响应该消息。因为“Contnt Length:10000”在此SIP消息中不是有效的头信息。若要计算实际内容长度,应计算此邮件正文部分的字符数。此处身体部位从“v=0..a=rtpmap:31 LPC”开始。您可以使用联机字符计数工具(如)轻松计算此身体部位的字符数。 因此,对于这个sip消息,实际的头信息应该是“Content Length:145”。此信息的参考是。
希望此答案对其他人有所帮助。

您是通过UDP还是TCP发送?如果通过UDP,则内容长度标头必须与数据报数据包大小相匹配(减去初始行+标头。只是猜测一下。它通过
UDP
发送。我在纯文本编辑器中计算了“数据”部分的字符数,数字与值一致。