引言:对于UDP来说,若包大小超过MTU(一般1500),需要分包发送,而UDP本来就无法保证顺序及可达率,因此发送大于MTU的数据出错概率就非常高;因此对于UDP传输,数据必须控制在MTU以内,而一些SIP信令(如INVITE)基本快接近这个值,倘若多些音视频编码,那必然超出,因此需要对其进行裁剪,本文将为大家阐述如何裁剪SIP信令。

首先,我们需要明确裁剪的方向,裁剪大致包含如下几个方向:

  • 头部采用紧凑模式
  • 移除非必要字段
  • 缩短字段内容
  • 移除非必要编码

1. 信令采用紧凑模式

应该也是处于MTU限制,SIP协议给出了解决方法,即部分头部可以用一个字段替代,具体如下:

头部 缩写
Accept-Contact a
Referred-By b
Content-Type c
Content-Encoding e
From f
Call-ID i
Supported k
Content-Length l
Contact m
Event o
Refer-To r
Subject s
To t
Allow-Events u
Via v

详见这里

2. 移除非必要字段

此部分内容会不断完善,目前已经知道的是Allow、Supported字段可以省略

3. 缩短字段内容

内容可以缩短的尽量采用缩短形式,比如User-Agent的值可以尽量短

User-Agent: ios/1 (belle-sip/1.5.0)

4. 移除非必要编码

可以根据系统的特点,将不需要的音视频编码移除,这样就能够缩短SDP长度,从而缩短SIP长度

以上是裁剪的4个方向,裁剪后一般可以缩短100~200字节