首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >深入浅出SIP协议

深入浅出SIP协议

原创
作者头像
用户3672714
发布2025-08-31 09:01:45
发布2025-08-31 09:01:45
4580
举报

好的,阿杰,我帮你整理一份 深入浅出 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 ---> UAS
  • 100 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 <sip:alice@atlanta.com>;tag=1928301774
To: Bob <sip:bob@biloxi.com>
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:alice@pc33.atlanta.com>
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 <sip:alice@atlanta.com>;tag=1928301774
To: Bob <sip:bob@biloxi.com>;tag=314159
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:bob@biloxi.com>
Content-Type: application/sdp
Content-Length: 131
  • 响应码 + 描述
  • 包含 Via、From、To、Call-ID 等字段保证通信对应

8️⃣ SIP URI

  • 类似邮箱地址,用来标识用户
代码语言:javascript
复制
sip:alice@atlanta.com
  • 格式sip:用户名@域名
  • 可携带端口、参数等

9️⃣ SIP 应用场景

  1. VoIP:IP 电话、软电话
  2. 视频会议:WebRTC 信令
  3. 即时消息:XMPP + SIP 结合
  4. 企业通信:PBX 系统(Asterisk)

10️⃣ 总结

  • SIP 只负责信令,音视频通过 RTP 传输
  • 核心理念:建立会话 → 管理会话 → 结束会话
  • 特点
    • 文本协议,易调试
    • 灵活可扩展
    • 与 HTTP、SMTP 类似

一句话大白话总结

SIP 就是 IP 网络中的“电话交换机协议”,告诉对方“我要和你通话、你响了没、挂掉了”,但不传声音本身。


https://www.52runoob.com/archives/6419

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SIP 协议深入浅出指南
    • 1️⃣ SIP 是什么?
    • 2️⃣ SIP 主要特点
    • 3️⃣ SIP 的核心组成
      • 3.1 用户代理(UA, User Agent)
      • 3.2 注册服务器(Registrar)
      • 3.3 代理服务器(Proxy)
      • 3.4 重定向服务器(Redirect)
    • 4️⃣ SIP 信令方法(常用)
    • 5️⃣ SIP 响应码
    • 6️⃣ SIP 会话流程(典型呼叫)
      • 6.1 注册流程
      • 6.2 呼叫建立(点对点语音)
      • 6.3 会话结束
    • 7️⃣ SIP 消息结构(文本示例)
      • 7.1 请求
      • 7.2 响应
    • 8️⃣ SIP URI
    • 9️⃣ SIP 应用场景
    • 10️⃣ 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档