VoIP系统技术建议书第1页共9页SIP技术白皮书2007年3月i目录H3CSIP技术白皮书.................................................................................................................11.SIP协议概述.........................................................................................................................12.SIPServer的基本原理..........................................................................................................13.V2oIP解决方案中提供的SIP功能........................................................................................21.1设备注册...........................................................................................................................31.2路由呼叫...........................................................................................................................41.3重定向呼叫........................................................................................................................51.4号码路由更新及查询功能..................................................................................................64.V2oIP语音解决方案中的SIP组网应用................................................................................65.总结.......................................................................................................................................71H3CSIP技术白皮书关键词:SIP,XE,VG,VoIP,会话,多媒体通信摘要:本文介绍了SIP协议原理,H3CV2oIP解决方案各个组件间工作流程和组网应用。1.SIP协议概述SIP是IETF制订的多媒体通信系统框架协议之一。是用于建立、改变或者结束多媒体会话的应用层协议。SIP协议基于文本编码,独立于UDP/TCP底层传输协议,与RTP/RTCP、SDP、RTSP、DNS等协议配合实现Voice、Video、Conference、Data、Chat等各种业务流程。2.SIPServer的基本原理SIP协议采用Client/Server模型。每一个请求(Request)触发服务器的一个操作;每个操作被称为方法(Method);每个请求除了指明具体方法外,还携带了一系列的头域(Headerfield),这些头域携带了各种业务信息;除了头域外,消息中还可以携带任意类型的消息体(Body),呼叫中最常使用的SDP信息就是通过消息体在Client和Server之间传递的。Server从接收到请求到处理完毕,要回复多个临时响应(Response),和一个终结响应(Response),终结响应有且只有一个。请求和他的所有响应构成一个事务(Transaction),一个完整的呼叫过程包含多个事务,比如呼叫建立和呼叫释放就是两个相互独立的事务。用户代理(UserAgent)是发起或者接收呼叫的逻辑实体。用户代理客户端-UAC(UserAgentClient),用于发起请求;用户代理服务器-UAS(UserAgentServer),用于接收请求。UAC/UAS的划分是针对一个事务的。在一个呼叫中的多个事务里,UAC和UAS的角色是可以互换的。例如在A和B的呼叫中,A向B发起呼叫,在呼叫建立的事务中,A是UAC,B是UAS;呼叫结束时,B先挂机,在呼叫释放的事务中,B是UAC,A是UAS。换句话说,每个一般的UA都是UAS和UAC的结合体。UA的实际物理形态有:IPPhone,SoftPhone,GateWay......ProxyServer作为一个网络逻辑实体代理客户端转发请求或者响应;同ProxyServer类似的还有一种设备是B2BUA,顾名思义,就是背靠背的两个UA组成的一个逻辑实体,它作为UAS终2结一个事务,同时作为UAC发起另外一个事务。ProxyServer同B2BUA相比,ProxyServer是一个事务传递过程中的中间节点,而B2BUA将一个事务转变成另一个事务。在SIP组网中还包括LocationServer、Registrar、RedirectServer,分别负责维护地址映射表,注册管理,呼叫重定向。他们和ProxyServer可以在同一台设备上也可以运行于不同的设备上。SIPServer是ProxyServer、LocationServer、Registrar、RedirectServer的总称。SIPServer采用B2BUA模型。接受请求端为UAS端,代理转发或主动发起请求端为UAC端,整个SIPServr为UAC/UAS的组合体。通过UAC/UAS之间消息交互完成会话的建立、改变、结束的阶段。SIPServer协助网关交换媒体信息,但不参与会话建立后媒体流传输。图1SIPServer基本网络模型3.V2oIP解决方案中提供的SIP功能QuidwayXE系列语音服务器实现了SIPServer功能,并且提供了诸多有特色的特性。SIPServer具有Registrar、RedirectServer、ProxyServer、LocationServer功能,支持注册功能、重定向呼叫方式、路由呼叫方式、号码路由更新及查询功能。QuidwayVG系列语音网关实现了SIPUA功能,在组网中提供用户的接入。31.1设备注册图2注册流程网关设备启动后会向SIPServer发起注册请求。SIPServer中的Registrar收到注册请求后,根据网关注册消息中携带的信息向LocationServer发送更新设备信息请求。LocationServer查询该网关设备信息,更新网关信息,将更新结果返回Registrar。若更新成功,Registrar会向网关设备发送注册成功2XX响应;若更新结果是LocationServer没有找到原网关设备信息,无法更新,Registrar会向网关设备发送注册错误4XX响应;若Registrar与LocationServer无法进行通信,Registrar会向网关设备发送服务器错误5XX响应;若更新结果是需要网关鉴权,Registrar会向网关设备发送注册失败401(需要鉴权)响应,网关收到该响应,将自己的鉴权信息通过第二个注册请求发送给Registrar,Registrar向LocationServer查询网关鉴权信息,计算鉴权结果,发送成功或失败响应给网关设备。网关通过注册请求,发送给SIPServer的信息包括:网关的ID;网关的IP地址;网关具有的路由。网关第一次注册成功后,会定时发送注册请求,在SIPServer侧可以设置一个注册间隔时间TTL(Timetolive),通过注册成功响应带给网关。超过TTL时长后网关仍没有向SIPServer注册,SIPServer认为网关已经离线,不接受/发起经过该网关的所有呼叫。在LocationServer网关信息中可以设置网关的状态:4normal:正常方式,需要网关定时注册。forever-up:永久在线方式,不强制网关注册。suspend:禁用方式,不接受/发起经过该网关的所有呼叫。1.2路由呼叫INVITE100TryingACK200OK180RingingRTPINVITE100TryingACK200OK180RingingUA1ProxyServerINVITE100TryingACK200OK180RingingRTPINVITE100TryingACK200OK180RingingUA1ProxyServer图3路由呼叫流程网关设备当有会话接入时,向SIPServer发起呼叫请求。SIPServer中的ProxyServer收到呼叫请求后,根据呼叫请求中携带的主被叫信息向LocationServer发送查询路由信息请求。LocationServer将查询结果信息返回ProxyServer,若查询结果是没有找到被叫信息,则ProxyServer向主叫发送4XX错误响应;若找到,ProxyServer根据此信息代理主叫网关向被叫网关发起呼叫请求。被叫网关收到呼叫请求后,发送响应给ProxyServer,ProxyServer将此响应转发给主叫。呼叫成功建立后ProxyServer保存关于此呼叫的信息和主被叫网关信息,当某一方网关希望结束会话时,会将结束会话请求发送到ProxyServer,ProxySever代理转发此呼叫结束请求。会话结束后ProxyServer释放关于此呼叫的信息。当SIPServer在本地找不到被叫信息时,会将呼叫请求发送到事先配置好的其他SIPServer上去,这个SIPServer称为“局向”,这种呼叫称为“域间呼叫”。局向设备接收到来自域外的呼叫请求后在本地查找被叫信息,若找到则向被叫发起呼叫,若没找到,可以继续向域外发送呼叫请求,也可以直接向主叫SIPServer发送4XX错误响应。网关呼叫请求中携带的重要信息:5主叫号码;主叫网关地址;主叫媒体信息;被叫号码。SIPServer转发请求中携带的重要信息:主叫号码;被叫号码;被叫网关地址。被叫网关响应中携带的重要信息被叫媒体信息。路由呼叫方式又称为代理呼叫。在这种呼叫方式下,SIPServer可以自主的接受呼叫,或自主的发起呼叫。这种呼叫方式下实现了呼叫主被叫的分离,可以用来实现各种呼叫业务。可以实现多种呼叫方式:代理主叫向被叫发起呼叫;代理主叫向多个被叫发起呼叫;同时向两侧发起呼叫。1.3重定向呼叫INVITE301MovedPermanantACKINVITE200OK180RingingUA1UA2INVITE301MovedPermanantACKINVITE200OK180RingingUA1UA2图4重定向呼叫流程6网关向SIPServer发起呼叫时,SIPServer查询被叫信息。若查询不到被叫信息,会发送4XX错误响应;若查询到被叫信息,SIPServer不向被叫发起呼叫,而是将被叫信息通过3XX响应返回给主叫。主叫接收到响应后,根据被叫信息直接向被叫发起呼叫,完成会话的建立、改变、结束过程。整个会话过程SIPServer不参与,不保留关于该呼叫的任何信息。重定向呼叫又称为直接呼叫,这种呼叫方式下SIPServer只提供重定位功能,不参与会话过程。由SIPServer中的RedirectServer完成。SIPServer可以配置使用哪种呼叫方式。1.4号码路由更新及查询功能当网关注册时,会将自己支持的