社区
Java EE
帖子详情
SIP协议的Ack是否真的不用回200OK?
dinghun8leech
2011-09-22 06:20:00
找不到相关的子版块,只能发这儿了。
问题是:
SIP协议的Ack是否真的不用回200 OK?
了解SIP协议的前辈们告诉我一声吧,谢谢。
最近用了两个dll,在被叫收到主叫发起的Ack请求后回应200 ok的响应,主叫都收不到,最终导致主叫方得到480超时响应。
...全文
338
回复
打赏
收藏
SIP协议的Ack是否真的不用回200OK?
找不到相关的子版块,只能发这儿了。 问题是:SIP协议的Ack是否真的不用回200 OK?了解SIP协议的前辈们告诉我一声吧,谢谢。 最近用了两个dll,在被叫收到主叫发起的Ack请求后回应200 ok的响应,主叫都收不到,最终导致主叫方得到480超时响应。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
3-IMS培训教程---
SIP
协议
.pdf
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
PR
ACK
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: 客户端错误 –表示请求消息中包
SIP
相关/Open
sip
s安装、配置/错误处理
1, Open
sip
s安装 2,
SIP
协议
基本架构 3,
SIP
UA注册过程 4,
SIP
Transaction、Dialog、Session概念 5,
SIP
服务器运行的两种方式 6,
SIP
基本消息 7,
SIP
消息格式说明 8,
SIP
dialog三次握手(INVITE/200
OK
/
ACK
) 9, VOIP 框图 10,错误分析 11,Open
sip
s中重要的概念 (持续更新中)
TCP/IP基础知识
IP
协议
TCP
协议
TCP三次握手TCP四次挥手TCP_
ACK
_机制TCP滑动窗口UDP
协议
TCP与UDP对比
sip
RFC3261 中文版
sip
RFC3261 中文版 1、
SIP
协议
介绍 10 2、
SIP
协议
功能概况 10 3、术语 12 4、实施概览 12 5、
协议
的结构 22 6、
协议
的定义 24 7、
SIP
消息: 32 7.1 请求 33 7.2应答 34 7.3 头域 35 7.3.1 头域格式。 35 7.3.2 头域分类。 39 7.3.3 缩写格式 39 7.4包体 39 7.4.1 消息正文类型(MessageBodyType) 39 7.4.2 消息体长度 40 7.5 分帧的
SIP
消息(Framing
SIP
Messages) 40 8 一般用户代理行为 40 8.1 UAC特性 41 8.1.1 产生一个请求 41 8.1.1.1 Request-URI 42 8.1.1.2 TO 42 8.1.1.3 From 43 8.1.1.4 Call-ID 44 8.1.1.5 Cseq 45 8.1.1.6 Max-Forwards 45 8.1.1.7 Via 45 8.1.1.8 Contact 46 8.1.1.9 Supported 和 Require 47 8.1.1.10 附加信息部分 47 8.1.2 发送一个请求 47 8.1.3 处理应答 48 8.1.3.1: transaction 层的错误 49 8.1.3.2 未知的应答 49 8.1.3.3 Vias 49 8.1.3.4 处理3xx应答 49 8.1.3.5 处理4xx应答 51 8.2 UAS特性 52 8.2.1 方法判定 53 8.2.2 包头判断 53 8.2.2.1 TO 和Request-URI 53 8.2.2.2 合并的请求 54 8.2.2.3 Require 54 8.2.3 内容处理 55 8.2.4 应用扩展 55 8.2.5 处理请求 56 8.2.6 产生应答 56 8.2.6.1 发送一个临时应答 56 8.2.6.2 包头和Tags 57 8.2.7 无状态UAS行为 57 8.3 重定向服务器 58 9 取消一个请求(Cancel) 60 9.1 客户行为(Client Behavior) 60 9.2 服务端行为(Server Behavior) 62 10 注册(Registrations) 63 10.1 概览 63 10.2 构造一个REGISTER请求 64 10.2.1 增加绑定 66 10.2.1.1 设置Contact地址的过期参数 67 10.2.2 删除绑定 68 10.2.3 访问绑定 68 10.2.4 刷新绑定 69 10.2.5 设置内部时钟 69 10.2.6 寻找注册服务器 69 10.2.7 传送一个请求 70 10.2.8 错误响应 70 10.3 处理REGISTER请求 70 11 查询能力 73 11.1 构造OPTIONS请求 74 11.2 处理OPTIONS请求 75 12 对话(Dialog) 77 12.1 创建一个对话 78 12.1.1 UAS行为 78 12.1.2 UAC行为 79 12.2 对话中的请求 80 12.2.1 UAC行为 81 12.1.1.1 产生请求 81 12.2.1.2 处理应答 83 12.2.2 UAS行为 84 12.3 终止对话 85 13 初始化一个会话 85 13.1 概览 85 13.2 UAC处理 86 13.2.1 创建一个初始化的INVITE 86 13.2.2 处理INVITE应答 89 13.2.2.1 1xx应答 89 13.2.2.2 3xx应答 89 13.2.2.3 4xx,5xx,6xx应答 90 13.2.2.4 2xx 应答 90 13.3 UAS处理 91 13.3.1 处理INVITE 91 13.3.1.1 提示进度 92 13.3.1.2 INVITE请求转发 93 13.3.1.3 INVITE请求的拒绝 93 13.3.1.4 接受INVITE请求 93 14 更改已经存在的会话 94 14.1 UAC行为 95 14.2 UAS行为 96 15 结束一个会话 98 15.1 使用BYE请求终止一个会话 99 15.1.1 UAC行为 99 15.1.2 UAS行为 100 16 proxy行为 100 16.1 概述 100 16.2 有状态的proxy 101 16.3 验证请求 103 16.4 路由信息预处理 105 16.5 确定请求的目的 106 16.6 请求转发 108 16.7 应答的处理 117 16.8 处理定时器C 125 16.9 处理通讯层的错误 126 16.10 CANCEL处理 126 16.11 无状态的proxy 127 16.12 Proxy Route处理的总结 129 16.12.1例子 130 16.12.1.1 基本
SIP
四边形 130 16.12.1.2 穿越一个严格路由proxy 132 17事务 134 17.1 客户端事务 136 17.1.1 INVITE客户事务 137 17.1.1.1 INVITE事务概述 137 17.1.1.2 正式的描述 138 17.1.1.3 构造
ACK
请求 142 17.1.2 非INVITE客户端事务 143 17.1.2.2 正式的描述 143 17.1.3 客户端事务匹配应答 145 17.1.4 处理通讯错误 145 17.2 服务端事务 147 17.2.1 INVITE服务端事务 147 17.2.2 非INVITE服务端事务 150 17.2.3 为服务端事务匹配请求。 151 17.2.4 处理通讯错误 154 18 通讯(transport) 154 18.1 客户Clients 155 18.1.1 发送请求 155 18.1.2 接收应答 157 18.2 服务端 158 18.2.1 接收请求 158 18.2.2 发送应答 159 18.3 分块 160 18.4 错误处理 161 19 常见消息部件(Common Message Components) 161 19.1
SIP
和
SIP
S统一资源标记 161 19.1.1
SIP
和
SIP
S部件 162 19.1.2 Character Escaping Requirements(字符转码要求) 166 19.1.3
SIP
和
SIP
S URI例子 168 19.1.4 URI比较 168 19.1.5 从URI中产生请求 171 19.1.6 关联
SIP
URI和tel URL 173 19.2 Option Tags 175 19.3 Tags 175 20 头域 176 20.1 Accept 178 20.2 Accept-Encoding 181 20.3 Accept-Language 182 20.4 Alert-Info 182 20.5 Allow 183 20.6 Authentication-Info 183 20.7 Authorization 183 20.8 Call-ID 184 20.9 Call-Info 184 20.10 Contact 185 20.11 Content-Disposition 186 20.12 Content-Encoding 187 20.13 Content-Language 188 20.14 Content-Length 188 20.15 Content-Type 189 20.16 Cseq 189 20.17 Date 190 20.18 Error-Info 190 20.19 Expires 191 20.20 From 191 20.21 In-Reply-To 192 20.22 Max-Forwards 193 20.23 Min-Expires 193 20.24 MIME-Version 193 20.25 Organization 194 20.26 Priority 194 20.27 Proxy-Authenticate 195 20.28 Proxy-Authorization 195 20.29 Proxy-Require 196 20.30 Record-Route 196 20.31 Reply-To 196 20.32 Require 197 20.33 Retry-After 197 20.34 Route 198 20.35 Server 198 20.36 Subject 198 20.37 Supported 199 20.38 Timestamp 199 20.39 To 199 20.40 Unsupported 200 20.41 User-Agent 200 20.42 Via 200 20.43 警告 202 20.44 WWW-Authenticate 204 21 应答代码 205 21.1 临时应答1xx 205 21.1.1 100 Trying 205 21.1.2 180 Ringing 205 21.1.3 818 Call is Being Forwarded(呼叫被转发) 205 21.1.4 182 Queued 206 21.1.5 183 会话进度 206 21.2 成功信息2xx 206 21.2.1 200
OK
206 21.3 转发请求3XX 206 21.3.1 300 Multiple Choices 206 21.3.2 301 Moved Permanently 207 21.3.3 302 Moved Temporarily 207 21.3.4 305 Use Proxy 208 21.3.5 380 Alternative Service 208 21.4 请求失败4xx 208 21.4.1 400 Bad Request 208 21.4.2 401 Unauthorized 208 21.4.3 402 Payment Required 209 21.4.4 403 Forbidden 209 21.4.5 404 Not Found 209 21.4.6 405 Method Not Allowed 209 21.4.7 406 Not Acceptable 209 21.4.8 407 Proxy Authentication Required 209 21.4.9 408 Request Timeout 210 21.4.10 410 Gone 210 21.4.11 413请求实体过大。 210 21.4.12 414 Request-URI Too Long 210 21.4.13 415 Unsupported Media Type 211 21.4.14 416 Unsupported URI Scheme 211 21.4.15 Bad Extension 211 21.4.16 421Extension Required 211 21.4.17 423 Interval Too Brief 211 21.4.18 480 Temporarily Unavailable 212 21.4.19 481 Call/Transaction Does Not Exist 212 21.4.20 482 Loop Detected 212 21.4.21 483 Too Many Hops 212 21.4.22 484 Address InComplete 213 21.4.23 485 Ambiguous 213 21.4.24 486 Busy Here 213 21.4.25 487 Request Terminated 214 21.4.26 488 Not Acceptable Here 214 21.4.27 491 Request Pending 214 21.4.28 493 Undecipherable 214 21.5 Server Failure 5xx 214 21.5.1 500 Server Internal Error 215 21.5.2 501 Not Implemented 215 21.5.3 502 Bad Gateway 215 21.5.4 503 Service Unavailable 215 21.5.5 504 Server Time-out 216 21.5.6 505 Version Not Supported 216 21.5.7 Message To Large 216 21.6 Global Failures 6xx 216 21.6.1 600 Busy Everywhere 216 21.6.2 603 Decline 217 21.6.3 604 Does Not Exists Anywhere 217 21.6.4 606 Not Acceptable 217 22 使用HTTP认证 218 22.1 框架 218 22.2 用户到用户的认证。 221 22.3 Proxy到用户的认证 222 22.4 Digest 认证方案 225 23 S/MIME 227 23.1 S/MIME 认证 227 23.2 S/MIME 密钥交换 228 23.3 加密MIME 包体 231 23.4
SIP
头隐私和用S/MIME的完整性:
SIP
地道 233 23.4.1
SIP
头的完整性和机密属性 234 23.4.1.1 完整性 234 23.4.1.2 机密性 234 23.4.2 隧道的完整性和身份认证 236 23.4.3 隧道加密 239 24 例子 242 24.1 注册 242 24.2 建立会话 244 25
SIP
协议
的BNF范式 251 25.1 基本规则 252 26 安全考虑:威胁模式和安全应用建议。 273 26.1 攻击和威胁模式 274 26.1.1 注册服务 Hij
ack
ing。 274 26.1.2 模仿一个服务器 275 26.1.3 修改消息包体 276 26.1.4 破坏会话 277 26.2 安全机制 278 26.2.1 通讯和网络层的安全 279 26.2.2
SIP
S URI方案 281 26.2.3 HTTP Authentication 282 26.2.4 S/MIME 282 26.3 安全机制的实现 283 26.3.1 对
SIP
实现者的要求 283 26.3.2 安全解决方案 284 26.3.2.1 注册 284 26.3.2.2 在域之间的请求 286 26.3.2.3 点对点请求 288 26.3.2.4 DoS 防护 289 26.4 限制 290 26.4.1 HTTP Digest 290 26.4.2 S/MIME 291 26.4.3 TLS 292 26.4.4
SIP
S URI 293 26.5 Privacy(隐私) 295 27 IANA 认证 295 27.1 Option Tags 296 27.2 Warn-Codes 296 27.3 头域名 297 27.4 方法和应答码 297 27.6 新Content-Disposition 参数注册 299 28 同RFC 2543的改变 299 28.1 主要的功能改变 300 28.2 小功能性的变更 304 29 标准索引 304 30 信息索引: 307 定时器值的表格: 308 感谢书 310 版权声明 313
基于C++开发的国标GB28181流媒体信令服务器源码+使用说明.zip
【资源介绍】 基于C++开发的国标GB28181流媒体信令服务器源码+使用说明.zip 1. 一个基于C++开发的国标GB28181流媒体信令服务器。 2. 采用BXC_
Sip
Server+ZLMediaKit。可以搭建一个接收摄像头国标
协议
推流的国标流媒体服务,然后实现RTSP/RTMP/HTTP-FVL/HLS/WS/SRT等
协议
分发视频流。 3. BXC_
Sip
Server负责信令模块,ZLMediaKit负责流媒体模块。 4. BXC_
Sip
Server作为国标流媒体服务器的信令模块。用于接收摄像头的信令注册,注册完成后, 主动向摄像头发送Invite请求,摄像头收到Invite请求后, 返
回
Invite的确认。 服务端收到确认后,发送
ACK
请求, 摄像头收到
ACK
请求后,开始通过RTP传输ps流推流至ZLMediaKit的国标RTP Server。 ZLMediaKit作为国标流媒体服务器的流媒体模块,主要用于接收摄像头国标推流和其他
协议
的分发。 5. 补充说明一下,这只是我为了讲课而开发的demo级的信令服务器,部分信令功能并没有实现。但是基本功能是没问题了,对接摄像头是完全没问题的, 对于学习国标流媒体信令服务器的新手,完全够用了,可以快速体验国标
协议
,通过wireshark抓包快速感受国标对接的流程。 linxu系统编译运行 ~~~ 一,首先安装o
sip
和exo
sip
,建议按照上面的BXC_
Sip
Server介绍下载我推荐的 o
sip
2-5.1.2和exo
sip
2-5.1.2 1. 编译安装 o
sip
2-5.1.2 cd o
sip
2-5.1.2 ./configure make sudo make install 2. 编译安装 exo
sip
2-5.1.2 cd exo
sip
2-5.1.2 ./configure make sudo make install 二,开始 1. csdn下载代码 解压重命名 2. 编译BXC_
Sip
Server cd BXC_
Sip
Server mkdir build cd build cmake .. make 3. 运行 ./BXC_
Sip
Server indows系统编译运行 一,o
sip
和exo
sip
编译到windows平台比较麻烦,我也是在编译过程中解决了多个报错,用了大半天时间,才编译出可用的版本 如果你在windows平台自行编译o
sip
和exo
sip
,还需要编译c-ares库。推荐使用 c-ares-1.16.0 配合 o
sip
2-5.1.2 和 exo
sip
2-5.1.2 我已经将上面3个库编译好放在了3rdparty,并提供了 vs2019/x64/Debug 和 vs2019/x64/Release 二,只需要使用vs2019打开 BXC_
Sip
Server.sln 选择 x64/Debug 或 x64/Release就能直接运行,依赖库都配置了相对路径 【备注】 该项目是个人毕设/课设/大作业项目,代码都经过本地调试测试,功能
ok
才上传,高分作品,可快速上手运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载使用,也欢迎交流学习!
Java EE
67,515
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章