当前位置:文档之家› SIP协议结构及java实现

SIP协议结构及java实现


SIP核心子层(SIP core sublayer)
SIP事件子层(SIP transaction sublayer)
• SIP事件子层是实现事件处理的层次。对于许多 SIP实体,这一层的服务逻辑是相同的。 • SIP事件的两个组成部分: (1)客户端事件(Client Transaction) (2)服务器事件(Server Transaction)
SIP事件子层(SIP transaction sublayer)
• 可靠传输机制:一个SIP事件包含请求,以及与请 求相关的临时相应和最终响应。
SIP传输子层( SIP Transport Sublayer )
• 作用:这一层负责SIP消息的实际传输与接收。 (1)确定为哪个将要被发送或接收的请求或响应 建立传输连接。 (2)命令传输层建立传输连接 (3)命令传输层监听过来的消息 (4)命令传输层发送或接受SIP消息 (5)将从传输层收到的响应交付给相应的传输用 户 (6)负责封装SIP消息 (7)处理传输层的错误
• 协议实现的所有对象不都是由SipFactory创建 的。一些其他对象是由以下工厂创建: the MessageFactory(创建对象表示SIP消息) the AddressFactory(创建对象表示SIP地址) the HeaderFactory(创建对象表示SIP头部) 这三者的实体可通过调用SipFactory的工厂创 建的方法得到。
SIP协议结构及java实现
不保证内容的准确性,指证请联系 QQ 403690072 欢迎交流
SIP实现的功能在协议内部是如何工作与实现的?
SIP核心子层(SIP core sublayer)
SIP核心子层在SIP体系结构的顶端,在这个 子层,实现了每个SIP实体的特定服务逻辑。每个 SIP实体尽管在其他层会共用某种逻辑,但是在核 心子层,他们有各自不同的服务逻辑。这些服务 逻辑 就是SIP核心。这样每个实体的不同服务逻 辑就将他们区分开来。这些核心包括 UAC,UAS,REGISTRAR,STATEFUL PROXY&STATELESS PROXY 注意:这些SI• JAIN(Java APIs for Integrated Networks) • JAIN SIP 是Java平台专为SIP提供的集成 网络接口。 • JAIN SIP主要为应用开发人员提供如下接 口:
(1)构建和解析SIP消息 (2)使用SIP事件子层 (3)使用SIP传输子层
创建消息(请求/响应)
实例
JAIN SIP概况
• 行业术语通常称一个协议的实现过程为协 议栈。 • SIP协议栈可以由Java代码编写,也可以由 其他编程语言编写。 • JAIN SIP比较底层,变成结构表现的都是 些底层概念:消息,头部,IP地址,端口 等等。用于创建用户代理,代理服务器等 SIP实体。有利于深刻理解SIP的工作机制。
JAIN SIP概况
JAIN SIP 体系结构
• JAIN SIP 体系结构基于三种模式:
提供者模式 工厂模式
事务监听模式
提供者模式(peer-provider pattern)
• 提供者允许应用接受和发送SIP消息,在JAIN SIP中这个提供者就是SipProvider接口 • 除了SipProvider之外还有两个接口用来实现 SIP的其他方面:SipStack接口和 ListeningPoint接口 • SipStack接口用于管理和配置底层的SIP协议 栈 • ListeningPoint接口是SP消息实体发送接收消 息的套接字的Java表示
SIP传输子层( SIP Transport Sublayer )
• 组成: (1)客户端传输: 负责从传输用户接收请求并将请求传送到网 络;从网络收到响应再交付给适当的传输用户 (2)服务器传输: 负责从网络接受请求,并将请求交付给适当 的传输用户;从传输用户接受响应再传送到网络。
SIP语法和编码功能
SIP核心子层(SIP core sublayer)
• 在这一层,SIP核心的实现可分为两种类型:
• 一个核心用到事件子层服务,即称他是事 件用户。 • UAS core, UAC core, STATEFUL PROXY core, REGISTRAR core
事件用户
传输用户
• 用到传输子层服务的实体,都是传输用户。 • 事件子层一定是传输用户。核心子层中只 有STATELESS PROXY core 是传输用户
SIP事件子层(SIP transaction sublayer)
SIP事件子层(SIP transaction sublayer)
• 作用:尽管提供了很多功能。最主要的功能是用 来可靠地传输UDP数据。此外他还可以被事件用 户使用,透明传输。 • 可靠: (1)请求与相应的相关性(branch) (2)传输机制
工厂模式
• 应用程序需要创建具有SIP功能的SIP对象。 这一动作需要通过工厂完成。 • 所谓工厂就是对访问实现SIP协议栈的方法 进行封装并允许应用获取其实现类实例的 中介。 • 工厂类在JAIN SIP中叫做SipFactory。 • 工厂是个单例类,整个系统中仅有他的唯 一一个实例。
工厂模式
事件监听模式
• 这种处理事务的机制被事件监听接口定义。 这个接口包含有适用于每种事件的 processEvent操作。当SIP协议栈从网络收 到SIP消息,SipProvider视之为一个事件, “告知”事件监听器 • 这个事件包括:请求事件和响应事件
如何使用这些类与接口
SIP监听器
• 一旦有事件触发(接收到网络上传递来的消息或 计时器超时)SipProvider负责将事件传递给SIP 监听器(SipListener)
• 这个功能是指在信道传输的SIP消息的具体 编码。 • 数据通过SIP传输子层交付到Socket API, 要用TCP/IP协议族传输数据必须遵循SIP 消息语法以及特定的编码规则。 • 编码规则指定要用Augmented BackusNaur Form(ABNF) grammar [RFC 4234].
相关主题