Sip协议

简介

SIP(Session Initiation Protocol,会话初始协议)是一个用于建立、更改和终止多媒体会话的应用 层控制协议,其中的会话可以是 IP 电话、多媒体会话或多媒体会议。SIP 是 IETF 多媒体数据和控 制体系结构的核心协议,RFC文档是 RFC 3261,还有很多其他扩展协议。

SIP 协议基于文本编码,大量借鉴了成熟的 HTTP 协议,并且具有易扩展、易实 现等特点,因此非常适合用来实现基于因特网的多媒体通信系统。

Sip消息

SIP 消息采用文本方式编码,包括请求消息与响应消息两类。

消息格式

基本格式:

  • 起始行
  • 消息头
  • 空行
  • 消息体

请求消息示例:

响应消息示例:

请求消息类型

RFC 3261规定了6种请求消息。

消息名说明
INVITE请求消息用于邀请用户加入一个呼叫RFC 3261
ACK用于对请求消息的响应消息进行确认RFC 3261
OPTIONS用于请求协商能力信息RFC 3261
BYE用于释放已建立的呼叫RFC 3261
CANCEL用于释放尚未建立的呼叫RFC 3261
REGISTER用于向 SIP 注册服务器登记用户位置等信息RFC 3261
INFO用于传递会话中产生的与会话相关的控制信息,如ISUP 和ISDN信令消息RFC 2976
PRACK与ACK相同,用于临时响应
SUBSCRIBE用来向远端端点预定其状态变化的通知
 NOTIFY通知预定者它所预定的状态的变化
 UPDATE允许客户更新一个会话的参数而不影响该会话的当前状态
MESSAGE通过在其请求体中承载即时消息内容实现即时消息RFC 3428
REFER其功能是指示接受方通过使用在请求中提供的联系地址信息联系第三方

响应消息码

状态码消息含义消息归类举例
1xx请求被收到,正在处理中临时消息

100 正在尝试

180 正在拨打

181 正在转接

182 正在排队    

2xx请求被成功处理,接受该请求。如果是INVITE,那么必须发一条ACK消息。处理成功

200 OK

202 被接收,用于转接

3xx服务器返回可能的位置信息,客户端当向另一个服务器重试请求重定向/转接应答

300 多项选择

301 被永久迁移

302被暂时迁移

4xx由于客服端的原因导致请求失败,一般为消息语法错误,应根据应答消息,重新格式化请求,然后重试客户端请求

400 呼叫不当

401 未经授权

402 要求付费

403 被禁止的

404 未发现用户

5xx由于服务器的原因,无法处理该请求,客户端可尝试其他服务器服务器出错

500 服务器内部错误

501 无法实施

502 不当网关

503 服务器不可用

504 服务器超时

505 不支持的协议版本

6xx该请求在任何 UAS/Server 上都不能完成,不应重试,也不应使用其他服务器全局错误

600 各处均忙

603 拒绝

604 无处存在

606 不可使用

重要字段

字段名说明一般格式
Form

用于指明请求发起方的地址,服务器会将请求种的此字段复制到响应消息To字段中

Form: 显示名<sip uri>; tag=xxx;
To用于标识请求的接收者To: 显示名<sip uri>; tag=xxx;
Call-ID用于唯一标识一次会话,call-ID需要全局唯一
CSeq用于标识请求的顺序号,服务器将请求中的此字段复制到响应消息中,用于判断响应和请求的对应关系CSeq: 序号 方法名
Via用于指示请求消息经历的路径,防止请求消息产生回路,并确保响应和请求消息选择同样的路径Via: 发送协议 发送方 参数
Max-Forwards最大转发次数
Contact用于INVITE,ACK和REGISTER请求以及成功响应,呼叫进展响应和重定向响应消息Contact: 地址; 参数
Content-type消息体类型
Content-Length消息体字节数

 注:橙色为必选头域

会话流程

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破浪征程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值