SIP 简介

来源:百度文库 编辑:神马文学网 时间:2024/04/29 13:37:33

SIP 简介

1.1 SIP介绍
1.1.1 基本概念
SIP(Session Initiation Protocol,会话发起协议)是由IETF(Interne工程任务组) 提出的IP电话信令协议。它的主要目的是为了解决IP网中的信令控制,以及同SoftSwitch的通信,从而构成下一代的增值业务平台,对电信,银行,金融等行业提供更好的增值业务。其结构图如下所示。

SIP是一种应用层控制协议,用于在IP网上建立、修改以及终止多媒体会话或呼叫,现由SIP工作组负责,参考规范RFC2543。目前主要用于多媒体会议、远程学习、IP电话等等。
1.1.2 基本功能
SIP的基本功能有以下五种:
1.        用户定位(User location)- 决定哪个终端系统参加通信
2.        用户能力(User capabilities)- 决定通信所采用的媒体和媒体参数
3.        用户可用性(User availability)- 决定被叫方是否愿意加入通信过程
4.        呼叫建立(Call setup)- 振铃、主叫方和被叫方的连接和参数的建立
5.        呼叫处理(Call handing)- 呼叫转移、终止呼叫等
1.1.3 主要特征
1.        SIP可以发起会话,也可以邀请用户加入以其它方式(如SAP、LDAP 等)发布或建立的会话;通过SDP协议,SIP可以在呼叫发起和呼叫进行过程对会话参数进行协商,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。 SIP可以提供呼叫控制功能(如呼叫保持、呼叫路由、呼叫转移、媒体转换等)。
2.        SIP可以支持单播会话,也可以支持多播会话;
3.        SIP与网络协议独立,即与底层协议无关(Lower-Layer-Protocol Neutral)。SIP可以在不同的传输层协议上工作,如TCP或UDP。当使用UDP的时候,SIP可以更好的支持多播会话;当使用TCP的时候,SIP可以更容易的通过防火墙。
4.        SIP支持很多其他协议,如RSVP、RTP和RTCP、RTSP、SAP、SDP等。但是,SIP的功能和操作不取决于以上任何协议。
5.        SIP是基于文本的协议, 简单灵活,可扩展性好; SIP采用Client/Server的体系结构,在很大程度上继承了HTTP和 SMTP协议的特征。
6.        SIP协议是无状态的(Minimal State),服务器可以保持也可以不保持呼叫状态;
7.        SIP透明支持名字映射和重定向服务,可以实现ISDN和IN电话用户服务; 通过网关,SIP可以实现PSTN电话之间的呼叫。
8.        SIP支持用户的移动性和移动业务。
1.1.4 SIP地址 SIP Addressing
SIP地址格式由SIP URL(SIP统一资源定位器)定义, SIP URL 类似于mailto或 telnet URL。SIP在设计上充分考虑了对其他协议的扩展适应性。它支持许多种地址描述和寻址,包括: 用户名@主机地址、被叫号码@PSTN网关地址和如Tel:010-62281234这样普通电话号码的描述等。SIP地址包括用户部分和主机部分,如:j.doe@big.com、j.doe@192.168.10.1;可以用来标识一个人、一个组里第一个可以访问的人、或者标识一个组。
SIP地址可以从带外信息获得(如媒体代理、email等)。       
1.2 SIP组件
1.2.1 体系结构
SIP是基于客户机/服务器结构的。基本分为用户代理和网络服务器。
用户代理(User Agent )
        用户代理客户端(User Agent Client)
        用户代理服务器(User Agent Server)
网路服务器(Network Server)
        代理服务器(Proxy Server)
        重定向服务器(Redirector Server)
        注册服务器(Registrar)
        位置服务器(Location Server)
其结构如下图所示:


1.2.2 基本组件
1.2.2.1 用户代理(User Agent)
        用户代理客户端UAC(User Agent Client):发起SIP呼叫的客户端应用程序。
        用户代理服务器UAS(User Agent Server):接受SIP请求的服务器程序。作为用户的代理,根据接受到的请求代表用户返回相应的响应:接受、拒绝、转接。
用户代理客户端UAC和用户代理服务器UAS都可以终止一个呼叫。
1.2.2.2 代理服务器(Proxy Server)
代理服务器是代表其他客户机发起请求,既充当服务器又充当客户机的媒介程序。请求可能在代理服务器中被服务或者直接经过翻译后发送到其它的服务器。它在转发请求之前可能解释、改写、翻译原请求消息中的内容。
1.2.2.3 重定向服务器(Redirector Server)
重定向服务器在接收SIP请求后,把请求中的原地址映射成零个或多个新地址,返回给客户机。与代理服务器不同的是,重定向服务并不会发起自己的请求。与用户代理相区别的是,重定向服务并不会发起或中断呼叫。
1.2.2.4 注册服务器(Registrar)
注册服务器主要是接收客户机的注册请求,完成用户地址的注册。注册服务器应该支持用户鉴权。
注册服务器一般配置在代理服务器和重定服务器之间,并且一般配置位置服务器的功能。
1.2.2.5 位置服务器(Location Server)
需要注意的是,位置服务器并不是一个SIP服务器,SIP服务器可以通过任何非SIP协议如(SQL,LDAP,CORBA,etc.)来连接位置服务器。
位置服务器的主要功能是提供位置查询服务,主要是由代理服务器或重定向服务器用来查询被叫的可能的地址信息。
1.3 SIP消息
SIP消息分为两大类:请求(Request)和 响应(Response),响应又分为最终响应(Final Response)和 临时响应(Provisional Response)。
1.3.1 请求消息
请求消息分为6种:INVITE、ACK、BYE、CANCEL、REGISTER、OPTIONS。
1        INVITE
INVITE方法说明一个用户或业务参加一个会话。消息体部分包含了被叫的信息说明。对于双方呼叫,主叫需说明他能接受和发送的媒质类型。这个消息应该被SIP代理服务器、重定向服务器、用户代理服务器和客户机所支持。
2        ACK
ACK方法主要用于确认客户端对INVITE方法的请求已经响应。这个消息应该被SIP代理服务器、重定向服务器、用户代理服务器和客户机所支持。
3        BYE
客户机用BYE方法向服务器发消息来结束该呼叫。这个消息应该被SIP代理服务器、重定向服务器、用户代理服务器所支持。
4        CANCEL
CANCEL方法用于取消一个挂起的呼叫。这个消息应该被SIP代理服务器、重定向服务器、用户代理服务器和注册服务器所支持。
5        REGISTER
用于向定位服务器注册客户机的相关信息。
6        OPTIONS
用于查询服务器的相关信息和功能。这个消息应该被SIP代理服务器、重定向服务器、用户代理服务器和客户机、注册服务器所支持。
1.3.2 响应消息
响应消息分为6类:1xx,2xx,3xx,4xx,5xx,6xx。
1        1xx Informational(通知)
服务器或代理正在执行处理,终端应该等待响应。如果服务器需要200毫秒以上的时间进行处理,则向终端发送1xx响应。服务器可以发送多个1xx响应,终端不需发送ACK请求。
2        2xx Successful(成功)
请求成功,停止查询。
3        3xx Redirection(重定向)
3xx 响应给出用户新的位置,或者能够满足呼叫的另一个服务器,主叫应该终止当前查询,开始新的适当的查询。 任何重定向响应都不能列出Via中的地址,以防止forwarding loops,同时用户代理或者代理服务器必须检查从重定向服务器返回的地址,确认与以前尝试过的地址不相同。
4        4xx Request Failure(请求失败)
4xx响应定义了服务器的失败响应,客户端不应该重新发送相同的请求(例如可以加入适当的鉴权)。不过,同样的请求发到其他的服务器有可能成功。
5        5xx Server Failure(服务失败)
当服务器本身错误时,返回5xx响应。5xx响应并不表示最终错误,如果其他的可能的地址还没有尝试过,就不能结束一个查询。
6        6xx Global Failures(全局错误)
6xx响应指出这是关于指定的用户的最终信息,而不仅仅是Request-URI 中指出的实例请求。(the particular instance indicated in the Request-URI.)所有未来的对该用户的请求都会失败,还未结束的对该用户的查询都应该中断。