好的,阿杰,我帮你整理一份 深入浅出 SIP(Session Initiation Protocol, 会话发起协议) 的教程,用大白话讲概念、组成、流程、信令和典型应用。
SIP 协议深入浅出指南1️⃣ SIP 是什么?SIP = Session Initiation Protocol作用:在 IP 网络中建立、管理和终止多媒体会话(如语音、视频、即时消息)类似角色:
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)转发 SIP 请求可实现 路由、认证、策略控制3.4 重定向服务器(Redirect)告诉呼叫方目标地址,呼叫方自己去联系4️⃣ SIP 信令方法(常用)方法
作用
INVITE
发起会话请求
ACK
确认收到最终响应
BYE
结束会话
REGISTER
用户注册到 SIP 服务器
OPTIONS
查询对端能力
CANCEL
取消尚未完成的请求
5️⃣ SIP 响应码类似 HTTP 响应码类别
说明
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 注册流程代码语言:javascript复制UAC --> REGISTER --> SIP服务器
SIP服务器 --> 200 OK --> UAC用户上线时告诉服务器自己的位置(IP + SIP URI)6.2 呼叫建立(点对点语音)代码语言:javascript复制UAC ---> INVITE ---> UAS
UAS ---> 100 Trying ---> UAC
UAS ---> 180 Ringing ---> UAC
UAS ---> 200 OK ---> UAC
UAC ---> ACK ---> UAS100 Trying:请求处理中180 Ringing:对方响铃200 OK:对方接听ACK:确认收到 OK,正式开始会话6.3 会话结束代码语言:javascript复制UAC/UAS ---> BYE ---> 对端
对端 ---> 200 OK ---> 发起方双方会话结束7️⃣ SIP 消息结构(文本示例)7.1 请求代码语言:javascript复制INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
From: Alice
To: Bob
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 142类似 HTTP 请求包含 请求行、头部、消息体7.2 响应代码语言:javascript复制SIP/2.0 200 OK
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
From: Alice
To: Bob
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact:
Content-Type: application/sdp
Content-Length: 131响应码 + 描述包含 Via、From、To、Call-ID 等字段保证通信对应8️⃣ SIP URI类似邮箱地址,用来标识用户代码语言:javascript复制sip:alice@atlanta.com格式:sip:用户名@域名可携带端口、参数等9️⃣ SIP 应用场景VoIP:IP 电话、软电话视频会议:WebRTC 信令即时消息:XMPP + SIP 结合企业通信:PBX 系统(Asterisk)10️⃣ 总结SIP 只负责信令,音视频通过 RTP 传输核心理念:建立会话 → 管理会话 → 结束会话特点:
文本协议,易调试灵活可扩展与 HTTP、SMTP 类似一句话大白话总结:
SIP 就是 IP 网络中的“电话交换机协议”,告诉对方“我要和你通话、你响了没、挂掉了”,但不传声音本身。
https://www.52runoob.com/archives/6419