HUAWEITECHNOLOGIESCO.,LTD.Page1课程编码FIN产品SIP协议培训胶片HUAWEITECHNOLOGIESCO.,LTD.文档密级:内部公开HUAWEITECHNOLOGIESCO.,LTD.Page2学习完此课程,您将会:了解SIP协议基本概念、掌握SIP消息分析方法。HUAWEITECHNOLOGIESCO.,LTD.Page3第1章SIP协议基础第2章ENIPSIP协议栈介绍HUAWEITECHNOLOGIESCO.,LTD.Page4SIP基本概念HUAWEITECHNOLOGIESCO.,LTD.Page5什么是SIP?SIP(SessionInitiationProtocol)协议是一个用于建立,更改或者终止多媒体会话或呼叫的应用层协议。是IETF多媒体数据和控制体系结构的一部分,与其它协议相互合作,如RTP、RTSP、SDP等基于文本编码,借鉴HTTP协议。HUAWEITECHNOLOGIESCO.,LTD.Page6SIP的基本功能发起会话:INVITE改变会话:reINVITE,UPDATE终止会话:BYE,CANCEL会话协商:SDP用户定位:SIPURLHUAWEITECHNOLOGIESCO.,LTD.Page7SIP的基本网络模型RedirectServerSIPClient(UA)ProxyServerLocation/RegisterServerSIPClient(UA)17media382546HUAWEITECHNOLOGIESCO.,LTD.Page8SIP实体—UserAgentUA是发起或者接收呼叫呼叫的逻辑实体,发起请求的称为UAC(UserAgentClient),接收请求的称为UAS(UserAgentServer)。UAC/UAS的划分是针对一个事务的,实际形态:IPPhone,SoftPhone,GateWay。HUAWEITECHNOLOGIESCO.,LTD.Page9SIP实体—ProxyServerProxy作为一个网络逻辑实体代表客户端转发请求或者响应同时作为客户端和服务器。三种形态:CallStateful、TransactionStateful、TransactionStateless。主要功能:路由、呼叫控制、业务提供、计费认证授权等。HUAWEITECHNOLOGIESCO.,LTD.Page10SIP实体—RedirectServer接收SIP请求,将其地址映射成零个或多个新地址,并把结果返回给客户。与ProxyServer不同,它不发起SIP请求,客户端直接向这些新的地址发起请求。与UserAgent不同,它不接受或拒绝呼叫。与注册过程配合支持移动性。HUAWEITECHNOLOGIESCO.,LTD.Page11SIP实体—RegisterServer接收注册请求的服务器。通常与Proxy或者RedirectServer共存。可以提供定位服务。HUAWEITECHNOLOGIESCO.,LTD.Page12LocationServer不是SIP实体,与RegisterServer配合。储存用户的位置信息。HUAWEITECHNOLOGIESCO.,LTD.Page13SIP地址–SIPURLSIP协议可以使用SIP-URL或者其他通用的URL(Email,)通常用于表示资源或者用户的地址。格式:SIP-URL=sip:[userinfo@]hostporturl-parameters[headers]examples:sip:abc@huawei.comsip:+86-755-6544487@huawei.comsip:abc@10.110.25.239HUAWEITECHNOLOGIESCO.,LTD.Page14SIP消息--通用格式SIP消息采用文本方式编码,行结束符为CR及LF。SIP消息分成请求和响应两大类。消息中可以携带任意类型的消息体。格式:SIP消息=start-line*message-headerCRLF[message-body]start-line=Request-Line/Status-LineHUAWEITECHNOLOGIESCO.,LTD.Page15SIP消息--请求INVITE:发起会话请求ACK:对INVITE请求的响应消息的确认BYE:结束会话CANCEL:取消尚未完成的请求REGISTER:注册OPTIONS:查询服务器的能力INFO:传递呼叫中间交互内容MESSAGE:短信SUBSCRIBE:预订某个事件通知NOTIFY:发送事件通知INVITEsip:UserB@there.comSIP/2.0Via:SIP/2.0/UDPhere.com:5060From:BigGuysip:UserA@here.comTo:LittleGuysip:UserB@there.comCall-ID:12345601@here.comCSeq:1INVITEContact:BigGuysip:UserA@here.comContent-Type:application/sdpContent-Length:147v=0o=UserA28908445262890844526INIP4here.coms=SessionSDPc=INIP4100.101.102.103t=00m=audio49172RTP/AVP0a=rtpmap:0PCMU/8000HUAWEITECHNOLOGIESCO.,LTD.Page16SIP消息—响应1xx:临时响应2xx:成功3xx:重定向4xx:客户端错误5xx:服务端错误6xx:全局错误SIP/2.0200OKVia:SIP/2.0/UDPhere.com:5060From:Asip:UserA@here.comTo:Bsip:UserB@there.com;tag=8321234356Call-ID:12345601@here.comCSeq:1INVITEContact:LittleGuysip:UserB@there.comContent-Type:application/sdpContent-Length:147v=0o=UserB28908445272890844527INIP4there.coms=SessionSDPc=INIP4110.111.112.113t=00m=audio3456RTP/AVP0a=rtpmap:0PCMU/8000HUAWEITECHNOLOGIESCO.,LTD.Page17SIP协议分层结构网络传输层:UDP/TCP等SIP编解码层SIP传输层transportSIP事务层transactionSIPdialog,call等SIP应用applicationHUAWEITECHNOLOGIESCO.,LTD.Page18SIP传输层SIP传输层--发送请求选择传输协议。如果Request-RUI中有maddr参数,则向多播地址发送数据。必要时调用域名解析服务,获得目的地地址发送数据。修改topmost中的host为配置的本地地址信息,修改port为当前发送请求使用的UDP/TCP端口号。SIP传输层--接收请求检查topmostVia中的host,必要时生成received参数,避免进行域名解析。检查是否为本地发送的请求的响应,如果不是则抛弃,如果是则匹配事务。HUAWEITECHNOLOGIESCO.,LTD.Page19SIP事务一个SIP请求和最终响应(Status-Code大于等于200)构成一个SIP事务,但ACK请求例外。事务ID由topmostVia标题头中的参数branch和CSeq构成,但如果是ACK则不需要匹配CSeq中的Method。HUAWEITECHNOLOGIESCO.,LTD.Page20SIP对话对话是端到端的,一个对话中可以有多个事务。序号(CSeq)在对话中维护。一个INVITE的非失败响应(Status-Code在101到299之间)创建一个对话。在RFC3261中,对话ID包括Call-ID、Fromtag和Totag。HUAWEITECHNOLOGIESCO.,LTD.Page21SIP呼叫SIP呼叫由Call-ID标识。呼叫中可以有多个对话,这些对话通常由派生代理派生INVITE引起。HUAWEITECHNOLOGIESCO.,LTD.Page22SIP呼叫流程HUAWEITECHNOLOGIESCO.,LTD.Page23SIP基本呼叫流程—注册用户每次开机时都需要向服务器注册。当SIPClient的地址发生改变时也需要重新注册。注册信息必须定期刷新。通常Register将注册信息保存到LocationServer中。HUAWEITECHNOLOGIESCO.,LTD.Page24SIP基本呼叫流程—点对点HUAWEITECHNOLOGIESCO.,LTD.Page25SIP基本呼叫流程—重定向HUAWEITECHNOLOGIESCO.,LTD.Page26SIP基本呼叫流程—代理HUAWEITECHNOLOGIESCO.,LTD.Page27SIP呼叫流程—ClickToDial用户点击网页上的拨号按钮。Controller接通客户代表和用户的电话。这里Web服务器同时作为应用服务器,Controller还可以通过网关接通用户和客户代表的普通电话HUAWEITECHNOLOGIESCO.,LTD.Page28SIP呼叫流程—事件通知异步的事件通知能力对一些特殊业务来说是必不可少的。SIP增加了两个扩展的请求:SUBSCRIBE:预定某个用户、资源或者呼叫的状态改变情况NOTIFY:当被预定资源或者用户的状态发生改变时向定购者发出通知。SubscriberNotifierSUBSCRIBE200OKNOTIFY200OKNOTIFY200OKEvent1Event2HUAWEITECHNOLOGIESCO.,LTD.Page29SIP呼叫流程—呼叫控制转移REFER请求:Referer通知Referee向指定的ReferTarget发起新的邀请。202响应:表示Refer操作已经被接受Refer-To:指明ReferTarget的目的URL。Refereed-By:用于表明Referer的身份。Referer通过NOTIFY将操作结果通知Referer,Referer根据结果采取进一步的操作。HUAWEITECHNOLOGIESCO.,LTD.Page30SIP协议特性HUAWEITECHNOLOGIESCO.,LTD.Page31SIP协议特性—简单性设计思想就是KISS(KeepItSimpleStupid)。六个主要请求,六类响应。基于文本编码,很多现成的工具。易实现,易调试。重点关注会话的建立、改变和终止,并不包罗万象。HUAWEITECHNOLOGIESCO.,LTD.Page32SIP协议特性—扩展性会话无关特性:SIP-URL表示需要访问的资源或用户、消息体可以携带任何内容。灵活的扩展机制:增加头域,增加消息类型。强大的能力协商机制:Supported、Unsupported、Require、ProxyRequire、Allow、Accept...网络对业务的透明性:中间设备Proxy、Redirecter无需理解消息的内容,透明处理。HUAWEITECHNOLOGIESCO.,LTD.Page33SIP协议特性—伸缩性简单网络,智能边缘。Proxy的三种运行模式:CallStateful、TransactionStateful,Stateless。分布式体系结构提高了系统的灵活性和可靠性。HUAWEITECHNOLOGIESCO.,LTD.Page34第1章SIP协议基础第2章ENIPSIP协议栈介绍HUAWEITECHNOLOGIESCO.,LTD.Page35