SIP协议之PRACK机制

article/2025/9/23 13:12:59

    SIP PRACK(Provisional Response ACKnowledgement)是由SIP的扩展协议RFC3262定义的,旨在为SIP的临时应答提供传输的可靠性。扩展机制使用选项100rel和临时应答方法PRACK实现。该机制同SIP协议中的2xx对INVITE应答的可靠机制类似。


流程图:


信令流程:

 

编号1:1015呼叫1012
INVITE sip:1012@192.168.0.24:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.201;rport;branch=z9hG4bKrD9r3p90FyNUm
Max-Forwards: 68
From: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
To: <sip:1012@192.168.0.24:5060>
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
CSeq: 49273533 INVITE
Contact: <sip:mod_sofia@192.168.0.201:5060>
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, PRACK, NOTIFY, PUBLISH, SUBSCRIBE
Supported: 100rel, timer, path, replaces             //支持100rel
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 1058
X-FS-Support: update_display,send_info
Remote-Party-ID: "1015" <sip:1015@192.168.0.201>;party=calling;screen=yes;privacy=off

v=0
o=- 20011 20011 IN IP4 192.168.1.2
s=SDP data
c=IN IP4 192.168.1.2
b=AS:1310
t=0 0
m=audio 50158 RTP/AVP 121 122 123 124 9 0 8 18 101
a=rtpmap:121 G7221/32000
a=fmtp:121 bitrate=48000
a=rtpmap:122 G7221/32000
a=fmtp:122 bitrate=32000
a=rtpmap:123 G7221/32000
a=fmtp:123 bitrate=24000
a=rtpmap:124 G7221/16000
a=fmtp:124 bitrate=24000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
m=video 50160 RTP/AVP 97 99 98 110 117
b=TIAS:1310720
a=rtpmap:97 H264/90000
a=fmtp:97 profile-level-id=64001f; max-mbps=108000; max-fs=3600; packetization-mode=1
a=rtpmap:99 H264/90000
a=fmtp:99 profile-level-id=42801f; max-mbps=108000; max-fs=3600; packetization-mode=1
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=42801f; max-mbps=108000; max-fs=3600
a=rtpmap:110 VP8/90000
a=fmtp:110 max-fr=30;max-fs=3600;
a=rtpmap:117 YL-FPR/90000
a=fmtp:117 yl-capset=15;yl-ver=1;yl-ext=19
a=ptime:20
a=rtcp-fb:* ccm fir=

编号2:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bKrD9r3p90FyNUm
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
From: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
To: <sip:1012@192.168.0.24>
CSeq: 49273533 INVITE
Content-Length:  0

编号3:
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bKrD9r3p90FyNUm
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
From: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
To: <sip:1012@192.168.0.24>;tag=OfcYIGGy9WfXV5Mccen4eDK8LbiM23SR
CSeq: 49273533 INVITE
Contact: "1012" <sip:1012@192.168.0.24:5060>
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
User-Agent: VoIP
Require: 100rel    //要求使用100rel机制
RSeq: 8167         //可靠序号
Content-Length:  0

编号4:
PRACK sip:1012@192.168.0.24:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.201;rport;branch=z9hG4bKSp2H5Ht4c7Beg
Max-Forwards: 70
From: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
To: <sip:1012@192.168.0.24:5060>;tag=OfcYIGGy9WfXV5Mccen4eDK8LbiM23SR
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
CSeq: 49273534 PRACK
Contact: <sip:mod_sofia@192.168.0.201:5060>
RAck: 8167 49273533 INVITE      //对应临时应答180(编号3)的确认(可靠序号RSeq: 8167 )
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, PRACK, NOTIFY, PUBLISH, SUBSCRIBE
Supported: 100rel, timer, path, replaces
Content-Length: 0

编号5:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bKSp2H5Ht4c7Beg
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
From: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
To: <sip:1012@192.168.0.24>;tag=OfcYIGGy9WfXV5Mccen4eDK8LbiM23SR
CSeq: 49273534 PRACK      //对PRACK(编号4)的响应
Content-Length:  0

编号6:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.201;rport=5060;received=192.168.0.201;branch=z9hG4bKrD9r3p90FyNUm
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
From: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
To: <sip:1012@192.168.0.24>;tag=OfcYIGGy9WfXV5Mccen4eDK8LbiM23SR
CSeq: 49273533 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
User-Agent: VoIP
Contact: "1012" <sip:1012@192.168.0.24:5060>
Supported: replaces, 100rel
Content-Type: application/sdp
Content-Length:   227

v=0
o=- 3856643454 3856643456 IN IP4 192.168.0.24
s=SDP
c=IN IP4 192.168.0.24
t=0 0
m=audio 10000 RTP/AVP 9 101
c=IN IP4 192.168.0.24
a=rtpmap:9 G722/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv

编号7:
ACK sip:1012@192.168.0.24:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.201;rport;branch=z9hG4bKtZUa7cB89F20B
Max-Forwards: 70
From: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
To: <sip:1012@192.168.0.24:5060>;tag=OfcYIGGy9WfXV5Mccen4eDK8LbiM23SR
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
CSeq: 49273533 ACK
Contact: <sip:mod_sofia@192.168.0.201:5060>
Content-Length: 0

编号8:
BYE sip:mod_sofia@192.168.0.201:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.24:5060;rport;branch=z9hG4bKPjSS1VmZXhcsqLblXHayM3E6vlR-i4rlSu
Max-Forwards: 70
From: <sip:1012@192.168.0.24>;tag=OfcYIGGy9WfXV5Mccen4eDK8LbiM23SR
To: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
CSeq: 26829 BYE
User-Agent: VoIP
Content-Length:  0

编号9:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.24:5060;rport=5060;branch=z9hG4bKPjSS1VmZXhcsqLblXHayM3E6vlR-i4rlSu
From: <sip:1012@192.168.0.24>;tag=OfcYIGGy9WfXV5Mccen4eDK8LbiM23SR
To: "1015" <sip:1015@192.168.0.201>;tag=1r000Km00ZmFQ
Call-ID: d897f7d0-21c9-123b-f4a7-000c29e7aea9
CSeq: 26829 BYE
User-Agent: FreeSWITCH-mod_sofia/1.10.7-dev+git~20210720T181005Z~4c04914003~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, PRACK, NOTIFY, PUBLISH, SUBSCRIBE
Supported: 100rel, timer, path, replaces
Content-Length: 0


关键说明:

    1. INVITE(编号1)中的Supported头域中携带100rel表示发起方支持该机制

    2. 如果INVITE发起方支持100rel,INVITE接受方支持100rel, 则INVITE接受方在临时应答1xx(编号3)中携带Require: 100rel
    
    3. 如果INVITE发起方支持100rel,INVITE接受方不支持100rel, 则INVITE接受方在临时应答1xx不能携带Require: 100rel
    
    4. 如果INVITE发起方不支持100rel,那么无论INVITE接受方是否支持100rel, INVITE接受方都不能在临时应答1xx不能携带Require: 100rel    

    5. INVITE发起方收到1xx响应中如果有100rel要求,则需要发送PRACK(编号4)进行确认

    6. 由于PRACK是一个请求,因此,INVITE接受方需要作出响应(编号5)

    7. 100 Trying不使用100rel机制.(原因是100 Trying是hop-by-hop的, PRACK是用于end-to-end)
 


http://chatgpt.dhexx.cn/article/kGVNXeNw.shtml

相关文章

HackTheBox: Arctic靶场

废话不多说直接开始&#xff1a; 第一步是在计算机上运行NMAP&#xff1a; # Nmap 7.80 scan initiated Sat Sep 19 14:54:46 2020 as: nmap -sV -O -sC -p- -oN scan 10.10.10.11 Nmap scan report for 10.10.10.11 Host is up (0.021s latency). Not shown: 65532 filtered…

webrtc sdp详解

SDP&#xff08;Session Description Protocol&#xff09;是一种通用的会话描述协议&#xff0c;主要用来描述多媒体会话&#xff0c;用途包括会话声明、会话邀请、会话初始化等。 WebRTC主要在连接建立阶段用到SDP&#xff0c;连接双方通过信令服务交换会话信息&#xff0c;…

SIP协议之呼叫流程

SIP呼呼叫是SIP协议最基本的功能。一个用户呼叫另外一个用户最终完成多媒体通话。此处以常见的B2BUA的服务器模式进行介绍。 环境说明&#xff1a; 主叫&#xff1a;1006 192.168.1.131 被叫&#xff1a;1012 192.168.0.24 SIP服务器&#xff08;以下简称服务器&#xff09;…

GB/T 28181-2011、2016、2022变更对比

一、GB/T 28181-2016与GB/T 28181-2011变更对比 GB/T 28181-2016与GB/T 28181-2011相比&#xff0c; 除编辑性修改外主要技术变化如下&#xff1a; ----(1) 修改了标准名称&#xff1b; ----(2) 增加了媒体流TCP传输要求(见4.3.1&#xff0c; 5.2&#xff0c;附录F&#xff…

会话描述协议-SDP

目录 一. 前言 二. 标准SDP规范说明 会话级描述 媒体级描述 三. WebRTC的SDP 会话描述 媒体信息描述 网络描述 安全描述 服务质量描述 四. 其他 一. 前言 SDP&#xff08;Session Description Protocol&#xff09; 是一种通用的会话描述协议&#xff0c;例如在音视…

h264和h265视频流SDP描述详解

文章目录 1 SDP概述 2.SDP媒体描述极其扩展属性 2.1 m属性介绍 2.2 acontrol附加属性介绍 2.3 artpmap附加属性介绍 2.4 afmtp附加属性介绍 SDP&#xff08;Session Description Protocol&#xff09;会话描述协议&#xff0c;是一种用来描述信息格式的标准&#xff0c;它…

表格标签

表格标签 规则表格 不规则表格–跨行和跨列 表格的高级标签–标题标签和逻辑分区标签

Android实现Excel表格样式

原理描述&#xff1a; 想写来着&#xff0c;但是似乎描述不太清楚。效果图来着&#xff0c;没找到好的视频录制软件&#xff0c;直接上代码吧。 代码&#xff1a; 1、xml布局文件 自定义控件的包名删除了部分&#xff0c;需要重新导入自定义控件&#xff01;&#xff01;&a…

Apache POI 操作Excel表格使用详解 最全

1.POI结构与常用类 (1)POI介绍 Apache POI是Apache软件基金会的开源项目&#xff0c;POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 Microsoft Office文档的功能。 (2)POI结构说明 包名称 说明 HSSF 提供…

022_Table表格

1. Table表格例子 1.1. Table表格用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作。 1.2. Table Attributes 参数 说明 类型 可选值 默认值 data 显示的数据 array 无 无 height Table的高度, 默认为自动高度。如果height为number类型…

java 导入导出excel表格

java 导入导出excel表格 业务上有需求上传excel表格并读取内容&#xff0c;本文记录一下该方法 表格导入 引入相应的工具包 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>4.4.0&l…

python逻辑回归

出现函数重名问题 异常抛出 异常抛出 #逻辑回归测试 import pandas as pd from sklearn.linear_model import LogisticRegression as LR filename C:/Users/29463/OneDrive/桌面/bankloan.xls data pd.read_excel(filename) #print(data) x data.iloc[:,:8].values y data…

实现带标题的ListView

在一些项目中&#xff0c;往往有要求为ListView里的内容分类&#xff0c;比如按日期分类&#xff0c;就要把相同日期的项目放在一起。可以看一些示例图&#xff0c;会清楚一些&#xff1a; 以上根据标题来进行分类&#xff0c;实现代码如下&#xff1a; 首先是数据项的模型…

java操作excel表格详解

在日常工作中&#xff0c;对Excel工作表格的操作处理可是多的数不清楚&#xff0c;下面是java语言对其的操作&#xff0c;有需要的小伙伴可以参考下 使用场景 1、将用户信息导出为excel表格&#xff08;导出数据…) 2、将Excel表中的信息录入到网站数据库(习题上传…&#xf…

安卓表格框架-ExcelView

转载请标明来源&#xff1a;安卓表格框架-ExcelView_分享记录-CSDN博客 Github地址&#xff0c;欢迎star&#xff1a;https://github.com/September26/ExcelView 一.项目介绍 项目是仿照WPS中Excel的功能实现的&#xff0c;实现了显示&#xff0c;滑动&#xff0c;编辑等基本…

html表格打印填充分页,window.print()页面打印之表格内容分页填充进行分页打印

windwow.print()用于打印当前窗口的内容,很简便,可当内容特殊并且打印有特殊需求的时候就要绕个圈了。下面是需要打印的表格: 当数据量少的时候像上面的表格一样,中间的内容只有5条数据,打印出来在纸上会有空白,不太好。中间内容是不确定的可能几十条,可能上百条,这样循…

在线表格

在线表格案例 模仿的是腾讯文档 首先观察腾讯文档的表格效果&#xff0c;然后在构建出思路&#xff0c;开始编写代码 效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>在线表格<…

Java获取word表格中的数据

前言: 有时系统中需要提取各种文件中的数据&#xff0c;比如做报表的系统中就常常与Excel表格数据做交互。做Excel报表数据时有选择POI实现的&#xff0c;但是POI功能也很单一&#xff0c;对于文档格式维护性差&#xff0c;最重要的是POI在操作word数据时显得力不从心&#xf…

HTML 表格元素

表格元素 在日常生活中&#xff0c;我们对表格已经非常熟悉了&#xff0c;表格的基本作用是用来存放数据&#xff0c;它是数据的二维容器&#xff0c;人们常常用它来记录财务数据、列车时刻表、电视节目单等。 大多数情况下&#xff0c;表格都是由列标题或行标题&#xff0c;…

Bootstrap3 表格样式

表格 HTML表格是数据的二维容器&#xff0c;它的基本作用是用来存放数据。表格能够清晰、直观地描述数据间的逻辑关系&#xff0c;如果借助CSS设计表格的样式&#xff0c;阅读数据将会变得更轻松。 表格结构包括众多标签&#xff0c;这些标签各司其职&#xff0c;共同完成二维…