SIP协议是什么、怎么工作、和RTP、H.323、IMS又有什么关系

2025年07月21日   浏览:

SIP,全称 Session Initiation Protocol(会话发起协议),是IETF制定的应用层信令协议,用来创建、修改、终止多媒体会话,比如语音、视频通话、即时通信等。

它不是用来传输语音数据的,而是像导演一样组织整个会话流程:谁发起、谁接收、在哪发、用什么方式通信

图片

你可以这样理解:

SIP = 电话的信令系统

RTP = 真正传送语音的通道

SIP只负责信号流程的“建呼、挂断、转接”等调度工作!

SIP 与 VoIP、RTP、H.323、IMS 的关系

很多人容易搞混,下面我们做个速查对比表:

图片

简单来说:

  • • SIP主要用于现代互联网语音/视频呼叫的“建呼流程”;
  • • RTP和RTCP负责“声音流”的传输与质量反馈;
  • • H.323 是 SIP 的“老大哥”,但已经被SIP替代;
  • • IMS 是运营商VoLTE、5G通话核心网的骨架,底层离不开 SIP。

SIP的工作原理

SIP 用客户端-服务器架构工作,但它本身是去中心化的协议,既可以点对点,也可以通过代理服务器中转。

图片

SIP建呼流程

假设 Alice 要给 Bob 打网络电话,SIP流程大致如下:

Alice (UA) → SIP Proxy → Bob (UA)

UA = User Agent,用户代理,即软电话、APP等

建立通话的全过程(INVITE流程):

  1. 1. INVITE:Alice 发起呼叫请求,包含Bob的地址、音频参数(如Codec)。
  2. 2. 100 Trying:SIP代理服务器回应,正在尝试联系Bob。
  3. 3. 180 Ringing:Bob设备开始响铃。
  4. 4. 200 OK:Bob接听。
  5. 5. ACK:Alice确认会话建立。
  6. 6. 通话建立(开始走RTP)!

如果通话结束:

  • • BYE:任意一方发送挂断请求;
  • • 200 OK:对方确认挂断。

整个流程就是一个状态机式的请求-响应模型,典型的文本信令,结构清晰、容易扩展。

SIP协议的数据结构和消息详解

SIP 借鉴了 HTTP 协议的设计,纯文本结构,容易调试、易扩展,具备强大的人类可读性。

常见的 SIP 方法(Method):

图片

一个典型的 INVITE 消息示例:

INVITE sip:bob@voip.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.100:5060
From: Alice <sip:alice@voip.com>
To: Bob <sip:bob@voip.com>
Call-ID: 12345678@192.168.1.100
CSeq: 1 INVITE
Contact: <sip:alice@192.168.1.100>
Content-Type: application/sdp
Content-Length: 151

v=0
o=alice 2890844526 2890844526 IN IP4 192.168.1.100
s=-
c=IN IP4 192.168.1.100
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000

后面的 application/sdp 是媒体协商用的SDP格式,用于告诉对方“我支持什么编码,在哪个端口接收RTP”。

SIP的核心角色

SIP 网络虽然可以点对点,但一般都有以下几个核心组成:

图片

在实际部署中,常见的软交换平台(如FreeSWITCH、Asterisk)会将这些功能集成在一起。

SIP与传统电话的区别

图片

所以说,SIP = 电信版的“HTTP”协议 + 通话调度器,它让“电话”真正进入了互联网时代。

SIP协议的优势与挑战

优势:

  • • 文本协议,可读性强,易调试;
  • • 支持 NAT 穿透(配合STUN/ICE);
  • • 功能强大,扩展灵活(支持IMS、VoLTE);
  • • 适配多媒体场景:语音、视频、会议、消息一网打尽。

挑战:

  • • 不自带加密,需配合 TLS / SRTP;
  • • NAT 和防火墙穿透仍需额外机制;
  • • 不适合极端实时场景(如战术指挥网);
  • • 协议实现差异,兼容性成问题(不同厂商间)。

你用到 SIP 却不自知

你可能没听过SIP,但你用过它的产品!

  • • 运营商VoLTE语音:手机拨打VoLTE电话,底层就是IMS+SIP;
  • • 企业IP电话(PBX):Cisco CallManager、Yealink IP Phone、ZOOM Phone;
  • • 软电话APP:如Linphone、Zoiper、MicroSIP 等 SIP 客户端;
  • • 呼叫中心系统:客服、400电话后台全靠 SIP;
  • • 视频会议:不少硬件终端(Polycom、Cisco Webex)支持 SIP 视频会议。

如何用 Wireshark 抓取 SIP 信令?

  1. 1. 使用 Wireshark 抓取UDP 5060端口;
  2. 2. 过滤表达式:sip || rtp;
  3. 3. 找到 INVITEACKBYE 等信令;
  4. 4. 配合 Telephony -> VoIP Calls 分析整个通话流程;
  5. 5. 可重建 RTP 音频流,播放通话内容。

这在企业排查语音通话掉线、回铃异常时非常实用!

版权所有Copyright @ 2021 - 2024深圳市鼎盛威融合科技发展有限公司 粤ICP备13029604号

返回顶部