"主要的功能改变-基于 zynq 7020 的 fpga + arm 开发"
这篇文档主要讨论了基于Zynq 7020的FPGA+ARM开发平台上的SIP协议(Session Initiation Protocol)的主要功能变化,这些变化主要体现在RFC3261中。Zynq 7020是一个由Xilinx公司生产的SoC(System on Chip),它结合了FPGA(Field-Programmable Gate Array)和ARM处理器,常用于嵌入式系统设计,特别是在通信和网络应用中。
1. **会话终止机制**:
- 当用户代理客户端(UAC)希望在未收到应答前终止会话时,它会发送CANCEL请求。如果原始INVITE请求仍然返回2xx成功应答,UAC随后发送BYE来彻底结束对话。与RFC2543不同,BYE现在只能发送给当前存在的呼叫对话,即对话(dialog)。
2. **SIP语法(BNF)更新**:
- SIP的抽象语法结构(BNF)已经调整以符合RFC2234的标准,这意味着SIP消息的构建和解析更加规范化。
3. **SIP URL的通用性增强**:
- SIP URL的BNF更改允许更广泛的字符集在"user"部分,并且比较规则也进行了简化,使得具有参数的URI与没有该参数但默认值相同的URI被视为不相等。
4. **隐藏Via头的移除**:
- 隐藏的Via头字段不再被使用,因为这要求对下一级节点有完全的信任。取而代之的是,隐藏Via的行为可以通过在代理服务器上的本地实现来处理,不再在协议规范中详细描述。
文档还包含了SIP协议的详细结构和行为,包括:
- **SIP协议的介绍和功能概述**:简述SIP协议的基本原理和作用,如用于建立、修改和终结多媒体会话。
- **术语定义**:定义了SIP协议中的关键术语,如用户代理(UA)、用户代理客户端(UAC)、用户代理服务器(UAS)、重定向服务器等。
- **实施概览**:概述了SIP协议在实际系统中的部署和工作流程。
- **协议结构**:详细解释了SIP消息的组成部分,包括请求、应答、头域和消息体。
- **用户代理行为**:详细阐述了UAC和UAS的职责,如请求的生成和发送、应答的处理以及请求的接收和响应的生成。
- **取消请求(Cancel)**:说明了如何通过CANCEL请求来终止尚未完成的请求,包括客户端和服务器端的行为。
- **注册(Registrations)**:解释了注册过程,包括REGISTER请求的构造、绑定的操作(增加、删除、访问、刷新)以及错误响应的处理。
- **对话(Dialog)**:讨论了对话的创建、维护和终止,以及对话中的请求交互。
- **会话初始化**:涵盖了会话的建立,包括UAC和UAS的角色,以及媒体协商的过程。
这篇文档对于理解基于Zynq 7020的FPGA+ARM平台上的SIP协议实现及其功能变化至关重要,对于开发者来说是深入研究SIP协议实施的重要参考资料。