PRACK消息

 

概述

PRACK消息是sip协议的扩展,在RFC3262中定义,标准的名称是sip协议中的可靠临时响应。

本文简单介绍标准中对PRACK消息流程的描述,以及fs配置PRACK的方式。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

PRACK消息

SIP协议中的临时响应主要是100、180、183这些。

由于某些场景下早期媒体的临时响应消息比较重要,在RFC3262中对临时响应进行了扩展,可以简单分为普通临时响应和可靠临时响应。

普通临时响应,响应码范围100-199,UAS针对invite消息的普通的临时响应,不需要UAC确认消息,没有“Require: 100rel”和“RSeq”头域。

可靠临时响应,响应码范围101-199,UAS针对invite消息的可靠的临时响应,需要UAC确认消息,使用PRACK确认,与普通临时响应的主要区别在于多了两个头域,“Require: 100rel”和“RSeq: 1852321830”。

PRACK,可靠临时响应的确认消息,由UAC发起,用来保证可靠临时响应的传递,使用“CSeq: 71146689 PRACK”和“RAck: 1 71146688 INVITE”头域匹配可靠临时响应。

RFC3262中对于UAS和UAC处理可靠临时响应的流程描述。

1, UAS在发送第一个可靠临时响应之后,未收到PRACK确认之前,不能发送第二个可靠临时响应。

2, UAC在收到第一个可靠临时响应之后,发送PRACK确认之前,如果收到第二个可靠临时响应,可以采用丢弃或缓存的处理方式,收到普通临时响应也可以采用丢弃或缓存的处理方式。

freeswitch配置测试

修改conf/sip_profiles/external.xml配置文件。

    <param name="enable-100rel" value="true"/>

使用10011呼叫137,其中183消息是可靠临时响应,需要PRACK确认。

 

总结

freeswitch对PRACK的处理和RFC标准基本一致。

如果呼叫场景中早期媒体比较重要,而且因为网络问题经常丢失,就需要开启100rel来保证早期媒体的可靠消息。

空空如常

求真得真

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 IMS培训教程——SIP协议 北京阿法迪信息技术研究中心 2 目 录 SIP协议概述 SIP协议报文分析 SIP协议在IMS网络中的应用 3 什么是 SIP? SIP: Session Initiation Protocol 用于建立,控制和释放会话 SIP是 IETF 为多媒体会话而开发制定的协议 这里的会话包括文本,视频,游戏和传统的语音 SIP 是为Internet 而制定设计的协议 象HTTP协议一样是基于文本的 询问/应答机制 广泛应用于internet 可以基于UDP、TCP和SCTP传输,目前最常用UDP 4 协议簇 信令协议 – 注册、定位用户、路由 – 建立,修改,释放会话 媒体传输协议 – 用于传输语音/视频包 SIP – 信令协议 会话的管理(SIP)和会话的描述(SDP)是分离的 5 SIP的基本功能 SIP的5个方面基本功能: 用户定位(User Location):决定哪个终端系统参加通信 用户能力(User Capabilities):决定通信所采用的媒体和媒体参数 用户可用性(User Availability):决定被叫方是否愿意加入通信过程 呼叫建立(Call setup):振铃、主叫方和被叫方的连接和参数的建立 呼叫处理(Call handling):前转或终结呼叫 6 会话相关协议 SDP (Session Description Protocol) – 总是作为SIP消息体出现 – 会话描述协议和会话管理(SIP)协议是互相独立的 RTP (Real-time Transmission Protocol) – 用于在IP网上传输经过打包的实时媒体流,例如. 语音,视频 RTCP (Real-time Transmission Control Protocol) – 用于反馈媒体传输的质量报告信息 7 简单SIP网络架构 SIP Request SIP Request Media Stream (RTP) User Agent (Server) 接受SIP 请求 Request Proxy Server 决定把信令消息送到何 处 User Agent (Client) 发送SIP请求 SIP Response SIP Response 8 SIP逻辑实体 SIP 使用客户端/服务器架构 逻辑SIP实体包括 用户代理 (UA) User Agent Client (UAC): 发起SIP请求 User Agent Server (UAS): 返回SIP响应 一个实体可以既是客户 端,又是服务器 注册服务器: SIP客户端需要利用注册请求 来更新用户的位臵信息 代理服务器:为客户端转发请求或者响应。 可以同时做为服务器端和客户端,决定下 一跳转发请求消息 重定向服务器:将请求中的地址映射为零个 或多个新的地址,返回给客户端。 网络服务器 9 事务和对话 对话 – 是两个UE之间为建立、更改和释放媒体会 话所需要建立的信令关系,对话起始于 INVITE请求,并终止于BYE请求的200(OK )响应,INVITE 是唯一可以创建一个对 话的命令. – 一个对话由头域中的Call-ID, Local Tag and Remote Tag 等参数来标识 – 一个对话可以包括多个事务 事务 事务是指客户端发送到服务器的请 求以及服务器回送至客户端的所 有响应 包括一个请求和一个或多个响应 包含一个最终响应 (非1xx 响应) 使用 via域中的branch参数来定义 一个事务 10 事务和对话(2) 事务 – 一个请求和其所有的响应 Invite 180 Ringing 200 ok 183 对话 包含多个事务 Invite 180 Ringing ACK PRACK 183 200 200 200 Bye T1 T4 T3 T2 T1 11 目 录 SIP协议概述 SIP协议报文分析 SIP协议在IMS网络中的应用 12 目 录 SIP协议报文分析 –2.1 消息类型 –2.2 消息结构 –2.3 消息参数 13 消息类型 SIP 消息可以被分为两类: 请求 发起一个会话 响应 对请求的响应. 14 SIP请求消息 SIP 消息-请求消息 INVITE: 发起会话请求 ACK: 对 INVITE 请求的响应的确认 CANCEL: 取消尚未完成的请求 BYE: 结束会话 REGISTER: 注册,完成地址绑定 OPTIONS: 查询服务器能力 15 SIP相应消息 SIP 消息-响应消息 1xx: 临时响应 –表示已经接收到请求消息,正在对其进行处理 2xx: 成功 –表示请求已经被成功接受、处理 3xx: 重定向 --表示需要采取进一步动作,以完成该请求 4xx: 客户端错误 –表示请求消息中包

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值