您的位置:4G网络电话 >> 行业信息>> 关于VOIP中的SIP操作

关于VOIP中的SIP操作

来源:网上转载-SIP  发布时间:2014-08-26 14:53:12

SIP寻址

SIP对位于某个主机的用户采用SIP统一资源定位符(uniform ResourceLocator,URL)来标识,其格式为user@host(用户名+主机名)User用户部分是用户的名字或电话号码,Host主机部分可以是DNS域名,也可以是IP地址等。

SIP协议 URL实际上就是SIP服务器的应用层地址。它遵循URL格式规范,用于表示一个SIP消息的发送者地址(From头字段),SIP消息的当前目的地址或SIP消息的最终接收方地址(TO头字段)。

 

SIP事务

SIP事务(SIPTransaction)由单个请求和与之相对应的应答组成。这些应答可以包括零个或多个临时应答以及一个或多个最终应答。在一个呼叫分支上可能发生多次SIP事务,这些SIP事务之间通过CSeq序列号来区分。ACK请求含有与之相应INVITE请求相同的CSeq序列号,但构成ACK自己的一次事务。

事务可分为客户端事务和服务器端事务。客户端事务发送请求,而服务器端事务发送响应。客户端事务和服务器端事务都是一种逻辑功能,包含在任何实现此功能的实体中。

 

SIP

 

SIP客户端事务

客户端事务通过维护一个状态机来实现相应功能,上层实体(称为事务用户Tu,可以是uA或者有状态的代理服务器)与客户端事务通过一个简单的接口进行通信。当TU初始化一个新的事务时,它产生一个新的客户端事务实例,将要发送的SIP请求传给实例,并带上要发往目的地的IP地址、端口号和传输协议等参数。客户端实例开始执行状态机,同时将有效的响应上传给Tu。

根据TU发送请求的方法类型,分为两种客户端事务。一种是处理INVITE请求的客户端事务,一种是处理除INVITE和ACK之外的所有请求的客户端事务。没有对应于ACK的客户端事务存在。如果Tu要发送一个ACK,它将直接将对应的请求发送给传输层。

SIP服务器端事务

服务器端事务负责将请求发送给上层Tu,并将相应的响应发送给传输层进行网络传输。服务器端事务同样通过状态机来实现相关的功能。在收到一个新的请求时,生成一个新的服务器端事务。

SIP对话

SIP对话(SIP Dialog)是两个UA之间持续一段时间的点对点的SIP连接。对话使UA之间的消息变得有序,同时给出请求消息的正确的路由。

任何UA上的对话都是由Dialog ID来标识。Dialog ID由1个Call-ID,一个本地标签(10cal tag)和一个远端标签(remote tag)组成。对话中的每一个uA的Dialog ID都是不同的。在同一个对话中,UA的本地标签与对等UA的远端标签相同,同样的,UA的远端标签与对等UA的本地标签相同。标签在唯一的DialogID的生成过程中是不透明的。

Dialog ID与其To头字段中包含一个标签的所有响应和请求有关。某个消息中的DialogID的计算规则取决于SIP实体是UAC还是UAS。对于UAC,Dialog ID中的Call.ID由消息的Call.ID头字段设置,远端标签由To头字段的tag设置,本地标签由From头字段的tag设置。对于UAS,Dialog中的Call.ID由消息中的Call.ID头字段设置,远端标签由消息From头字段的tag设置,本地标识由消息To头字段的tag设置。

对话包含两个状态,由一个临时应答(1xx)创建的对话称为早期对话(early dialog)。UAC在早期对话内收到确认应答(2xx)后,对话进入“确认”状态,称为确认对话(confirmed dialog)。如果一个对话由“2xx”直接创建,则对话直接进入“确认”状态。如果一个早期对话没有转为确认对话,则这个早期对话将被终止。确认对话的建立标识着双方建立起了完备的SIP连接。原则上,双方在对话建立后就可以进行媒体流数据的交互,双方也可以在对话建立后继续发送SIP消息,进行会话参数的修改,结束会话等操作。

上一条:VOIP的信令标准-SlP协议
下一条:全方位移动平台安全形势