SIP协议培训主讲人:刘志强Email:liu.zhiqiang@mail.zte.com.cn2SIP,H.323andMGCP什么是SIP?SIP协议的使用环境SIP框架组成SIP消息–方法和响应SIP地址形式及路由方式SIP建立通讯的过程SDP介绍SIP登记功能简单的SIP呼叫建立和拆除流程图用SIP来设计网络的特点SIP与H.323的比较SIP的发展现况小结TopicIndex3RTCPRTPSIP,H.323andMGCPIPMGCP呼叫控制和信令信令和网关控制媒体H.225Q.931H.323H.323Version1and2supportsH.245overTCP,Q.931overTCPandRASoverUDP.H.323Version3and4supportsH.245overUDP/TCPandQ.931overUDP/TCPandRASoverUDP.SIPsupportsTCPandUDP.TCPRASUDPSIPH.245视频/音频RTSP4什么是SIP?“”SessionInitiationProtocol-是应用层信令协议,定义了用户间交互式媒体会话的发起,修改和终止过程.IETFRFC2543SessionInitiationProtocol5什么是SIP?“”SIP协议最早由是由MMUSICIETF工作组在1995年研究的,由IETF组织在1999年提议成为的一个标准。SIP主要借鉴了Web网的HTTP和SMTP两个协议。目前仍在不断的发展之中,相关设备供应商和业务供应商联合成立了一个关于SIP的论坛:网络基本会话.多用户之间的会话.交互的媒体应用.所支持的功能7协议使用的环境IPv4,IPv6AAL5PPPAAL3/4RTSPTCPSDHATM以太网媒体封装UDPSIPRTPRSVPRTCPV.34PPP网络层链路层物理层核心应用程序信令QOSIP电话协议栈基于SIP的IP网络电话系统所用的协议栈结构如图所示8RedirectServerSIP网络--分布式架构LocationServerRegistrarServerUserAgentProxyServerGatewayPSTNSIP网络成员ProxyServer9UserAgents-用户代理一个发起和终止会话的实体,包含两个功能实体.UserAgentClients(UAC)–发起呼叫的功能实体.UserAgentServer(UAS)–接收呼叫的功能实体.UAC和UAS-都能终止一个呼叫.10ProxyServer-代理服务器为其它的客户机代理,进行SIP消息的转接和转发的功能。消息机制与UAC和UAS相似.对收到的请求消息进行翻译和处理后,传递给其他的服务器.对SIP请求及响应进行路由.11LocationServer-位置服务器为SIP重定向服务器(RedirectServer)或代理服务器(proxyserver)提供被叫用户可能的位置信息.12RedirectServer-重定向服务器接受SIP请求消息,进行地址映射,将映射后的地址(零个或多个)返回给客户机.与代理服务器proxyserver不同的是,redirectserver不会发起自己的呼叫.与useragent不同的是,redirectserver不接受呼叫终止或主动终止呼叫.13RegistrarServer-登记服务器接受REGISTER请求的服务器.可以支持鉴权的功能在典型应用中,可与代理服务器proxysever或重定向服务器redirectserver一起提供用户定位服务14SIP消息–方法和响应SIP方法:INVITE–通过邀请用户参与来发起一次呼叫.ACK-请求用于证实UAC已收到对于INVITE请求的最终响应,和INVITE消息配套使用.BYE-USERAGENT用此方法指示释放呼叫.CANCEL-该方法用于取消一个尚未完成的请求,对于已完成的请求则无影响.REGISTER–客户使用该方法在服务器上登记列于To字段中的地址.OPTIONS–用于询问服务其能力.INFO–用于承载带外信息,如DTMF信息.SIPResponses:1xx-正在处理的信息.2xx-成功.3xx-重定向.4xx-Client错误.5xx-Server错误.6xx-Global错误.SIP网络成员依赖于SIP信息的交互来进行通讯15SIP消息头部SIP消息格式大量借鉴了HTTP的文本和语法.SIP消息看起来类似HTTP消息,如消息格式,头部字段等,也支持MIME.SIP头部实例:-----------------------------------------------------------------SIPHeader-----------------------------------------------------------------INVITEsip:5120@192.168.36.180SIP/2.0Via:SIP/2.0/UDP192.168.6.21:5060From:sip:5121@192.168.6.21To:sip:5120@192.168.36.180Call-ID:c2943000-e0563-2a1ce-2e323931@192.168.6.21CSeq:100INVITEExpires:180User-Agent:CiscoIPPhone/Rev.1/SIPenabledAccept:application/sdpContact:sip:5121@192.168.6.21:5060Content-Type:application/sdp16SIP地址形式SIP地址形式用SIPURL来定义,其格式为:user@host--用户名@主机名(或域名).SIPURL实例:sip:hostname@chinatelecom.orgsip:hostname@192.168.10.1sip:14083831088@zte.com17SDP介绍SDP会话描述协议简介SDP是传送会话信息的协议,包括会话的地址、时间、媒体和建立等信息。它定义了会话描述的统一格式。18SDP介绍SDP描述的内容应包括:会话名和目的会话激活的时间段构成会话的媒体接收这些媒体所需的信息(地址、端口、格式)会话所用的带宽信息(任选)会话负责人的联系信息(任选)SDP可对会话描述作加密处理,能传送解密密钥及加密方法等信息。19SDP介绍a)两方呼叫C-S:INVITEsip:watson@boston.bell-tel.comSIP/2.0Via:SIP/2.0/UDPkton.bell-tel.comFrom:A.Bellsip:a.g.bell@bell-tel.comTo:T.Watsonsip:watson@bell-tel.comCall-ID:662606876@kton.bell-tel.comCSeq:1INVITEContact:sip:a.g.bell@kton.bell-tel.comSubject:Mr.Watson,comehere.Content-Type:application/sdpContent-Length:...20SDP介绍v=0o=bell536557652353687637INIP4128.3.4.5s=Mr.Watson,comehere.i=ASeminaronthesessiondescriptionprotocolt=31493286000c=INIP4kton.bell-tel.comm=audio3456RTP/AVP0345a=rtpmap:0PCMU/8000a=rtpmap:3GSM/8000a=rtpmap:4G723/8000a=rtpmap:5DVI4/800021SDP介绍媒体参数解读v=0(版本为0)o=bell536557652353687637INIP4128.3.4.5(会话源为:用户名bell,会话标识53655765,版本2353687637,网络类型internet,地址类形Ipv4,地址128.3.4.5)s=Mr.Watson,comehere.(会话名:Mr.Watson,comehere.)i=ASeminaronthesessiondescriptionprotocol(会话信息:ASeminaronthesessiondescriptionprotocol)e=mjh@isi.edu(MarkHandley)(E-mail地址和电话号码)22SDP介绍c=INIP4kton.bell-tel.com(连接数据:网络类型internet,地址类型Ipv4,连接地址kton.bell-tel.com)t=t=31493286000(起始时间:t=3149328600,终止时间:无)m=audio3456RTP/AVP0345(媒体格式:媒体类型audio,端口号3456,传送层RTP/AVP,格式列表为0345)a=rtpmap:0PCMU/8000(净荷类型0,编码名PCMU,抽样速度为8kHZ)a=rtpmap:3GSM/8000(净荷类型0,编码名GSM,抽样速度为8kHZ)a=rtpmap:4G723/8000(净荷类型0,编码名G723,抽样速度为8kHZ)a=rtpmap:5DVI4/8000(净荷类型0,编码名DVI4,抽样速度为8kHZ)23SIP建立通讯的过程用SIP来建立通讯通常需要有六个步骤:1.登记,发起和定位用户.2.进行媒体协商--通常采用SDP方式来携带媒体参数.3.由被叫方来决定是否接纳该呼叫.4.呼叫媒体流建立并交互.5.呼叫更改或处理.6.呼叫终止.24Registration-登记每当用户打开SIP终端时(如PC,IPPHONE),将向代理服务器/登记服务器发起登记过程登记过程需要周期刷新登记服务器将把SIP终端所登记的信息传送到位置服务器存放.SIPMessages:REGISTER–RegisterstheaddresslistedintheToheaderfield.200–OK.Proxy/SIPPhoneUserLocation/RegisterServerREGISTERREGISTER20020025Registration-登记REGISTERsip:bell-tel.comSIP/2.0Via:SIP/2.0/UDPsaturn.bell-tel.comFrom:sip:Watson@bell-tel.comTo:sip:Watson@bell-tel.comCall-ID:70710@saturn.bell-tel.comCSeq:1REGISTERContact:sip:Watson@saturn.bell-tel.com:3890;transport=udpExpires:720026简单的SIP呼叫建立和拆除流程图302(MovedTemporarily)INVITE200(OK)200(OK)ACKINVITE180(Ringing)180(Ringing)180(Ringing)200(OK)ACKACKACKRTPMEDIAPATHBYEBYEBYE200(OK)200(OK)200(OK)呼叫拆除媒体通道呼叫建立INVITELocation/RedirectServerProxyServerProxyServerUserAgentUserAgentINVITE27实例-SIP呼叫建立和拆除流程RTPMEDIAPATHBYEBYE200(OK)200(OK)呼叫拆除媒体通道呼叫建立ProxyServerProxyServerUserAgentUserA