SIP 协议深入浅出指南
1️⃣ SIP 是什么?
2️⃣ SIP 主要特点
| 特点 | 说明 |
|---|
| 文本协议 | 类似 HTTP/SMTP,可读性强 |
| 应用层协议 | TCP/UDP 或 SCTP 上运行 |
| 端到端通信 | 端点直接通信,服务器只做信令转发 |
| 可扩展 | 支持视频、音频、即时消息、会议控制 |
3️⃣ SIP 的核心组成
3.1 用户代理(UA, User Agent)
- UA Client (UAC) :发起呼叫
- UA Server (UAS) :接收呼叫
- 可以是同一台设备,如 IP 电话、软电话
3.2 注册服务器(Registrar)
- 负责用户注册
- 维护用户地址与当前 IP 的映射
- 用户上线时发送 REGISTER 请求
3.3 代理服务器(Proxy)
3.4 重定向服务器(Redirect)
4️⃣ SIP 信令方法(常用)
| 方法 | 作用 |
|---|
| INVITE | 发起会话请求 |
| ACK | 确认收到最终响应 |
| BYE | 结束会话 |
| REGISTER | 用户注册到 SIP 服务器 |
| OPTIONS | 查询对端能力 |
| CANCEL | 取消尚未完成的请求 |
5️⃣ SIP 响应码
| 类别 | 说明 |
|---|
| 1xx | 临时响应(100 Trying, 180 Ringing) |
| 2xx | 成功响应(200 OK) |
| 3xx | 重定向(301 Moved Permanently) |
| 4xx | 客户端错误(404 Not Found, 486 Busy Here) |
| 5xx | 服务器错误(500 Internal Server Error) |
| 6xx | 全局失败(603 Decline) |
6️⃣ SIP 会话流程(典型呼叫)
6.1 注册流程
UAC --> REGISTER --> SIP服务器 |
|---|
SIP服务器 --> 200 OK --> UAC |
|---|
- 用户上线时告诉服务器自己的位置(IP + SIP URI)
6.2 呼叫建立(点对点语音)
UAS ---> 100 Trying ---> UAC |
|---|
UAS ---> 180 Ringing ---> UAC |
|---|
- 100 Trying:请求处理中
- 180 Ringing:对方响铃
- 200 OK:对方接听
- ACK:确认收到 OK,正式开始会话
6.3 会话结束
7️⃣ SIP 消息结构(文本示例)
7.1 请求
INVITE sip:bob@biloxi.com SIP/2.0 |
|---|
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds |
|---|
From: Alice <sip:alice@atlanta.com>;tag=1928301774 |
|---|
To: Bob <sip:bob@biloxi.com> |
|---|
Call-ID: a84b4c76e66710@pc33.atlanta.com |
|---|
Contact: <sip:alice@pc33.atlanta.com> |
|---|
Content-Type: application/sdp |
|---|
7.2 响应
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds |
|---|
From: Alice <sip:alice@atlanta.com>;tag=1928301774 |
|---|
To: Bob <sip:bob@biloxi.com>;tag=314159 |
|---|
Call-ID: a84b4c76e66710@pc33.atlanta.com |
|---|
Contact: <sip:bob@biloxi.com> |
|---|
Content-Type: application/sdp |
|---|
- 响应码 + 描述
- 包含 Via、From、To、Call-ID 等字段保证通信对应
8️⃣ SIP URI
9️⃣ SIP 应用场景
- VoIP:IP 电话、软电话
- 视频会议:WebRTC 信令
- 即时消息:XMPP + SIP 结合
- 企业通信:PBX 系统(Asterisk)
10️⃣ 总结
-
SIP 只负责信令,音视频通过 RTP 传输
-
核心理念:建立会话 → 管理会话 → 结束会话
-
特点:
- 文本协议,易调试
- 灵活可扩展
- 与 HTTP、SMTP 类似
一句话大白话总结:
SIP 就是 IP 网络中的“电话交换机协议”,告诉对方“我要和你通话、你响了没、挂掉了”,但不传声音本身。
www.52runoob.com/archives/64…