SIP / 2.0 400 Sip消息正文较短,由内容长度指示

时间:2014-07-03 17:32:23

标签: 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的INCOMING

 SIP/2.0 100 Trying

之前的消息是

INVITE sip:MYNUMBER@208.73.146.95 SIP/2.0

哪个内容长度完全正确。之前的许多消息没有内容,并且在消息再次具有确切长度之前很久。

此消息的含义是什么?

1 个答案:

答案 0 :(得分:0)

这实际上是一个错误的请求消息,其内容长度大于SIP消息的主体。如果您通过UDP发送它,接收方将响应400 Bad Request错误,如果您通过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

以下是SIP消息的示例,接收方将以此类错误请求进行响应。因为&#34; Contnt-Length:10000&#34;不是此SIP消息中的有效标头信息。要计算实际内容长度,您应该计算此消息正文部分的字符。这里的身体部分从&#34; v = 0 ....... a = rtpmap:31 LPC&#34;开始。您可以使用在线字符计数工具(例如http://www.charactercountonline.com/)轻松计算此身体部位的字符数。 因此,对于此SIP消息,实际标题信息应与&#34; Content-Length:145&#34; 一起使用。此信息的引用为https://tools.ietf.org/html/rfc4475。 希望这个答案对某人有所帮助。