您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 医学现状与发展 > siprefermethod研究
1、流程中的角色分配Referer:transfer(refer)的发起者—AliceReferee:refer的接收者–BobNotifier:notify的发起者—BobRefertarget:transfer流程中目标接收新呼叫者(refertoURI)。--Carol2、普通的订阅流程普通的订阅流程是用subscribe消息来完成的,在该消息中携带了event头域,针对不同的事件进行订阅。这个订阅方式属于显示的订阅流程。详细的流程说明请参考RFC3265SUBSCRIBEsip:cuixh@open-ims.testSIP/2.0Via:SIP/2.0/UDP192.168.111.127:6060;rport;branch=z9hG-000eTo:sip:cuixh@open-ims.testFrom:sip:cuixh@open-ims.test;tag=49f09f68Contact:sip:cuixh@192.168.111.127:6060;transport=udpCall-ID:ZdmAg19580-ID00000002-H16M028S41@192.168.111.127CSeq:5SUBSCRIBERoute:sip:orig@scscf.open-ims.test:6060;lrMax-Forwards:70User-Agent:Chinamobile-Ucommunicator/version/v3.2.1.71Expires:1030Event:regAccept:application/reginfo+xmlContent-Length:0终端订阅成功之后,会马上都到notify消息通知所订阅时间的状态信息。NOTIFYsip:cuixh@192.168.111.127:6060;transport=udpSIP/2.0Via:SIP/2.0/UDP192.168.110.187:4060;branch=z9hG4bKTo:sip:cuixh@open-ims.test;tag=49f09f68From:sip:cuixh@open-ims.test;tag=499027427f01f9dc47bd8a2d42b63264-ce64CSeq:10NOTIFYCall-ID:ZdmAg19580-ID00000002-H16M028S41@192.168.111.127Content-Length:350User-Agent:SipEXpressrouter(2.1.0-dev1OpenIMSCore(i386/linux))Contact:sip:cuixh@open-ims.testEvent:regMax-Forwards:16Subscription-State:active;expires=1030Content-Type:application/reginfo+xml?xmlversion=1.0?reginfoxmlns=urn:ietf:params:xml:ns:reginfoversion=0state=fullregistrationaor=sip:cuixh@open-ims.testid=0xb62a6aa0state=activecontactid=0xb62a515cstate=activeevent=registeredexpires=1000urisip:cuixh@192.168.111.127:6060;transport=udp/uri/contact/registration/reginfoMessageOne(F1)REFERsip:b@atlanta.example.comSIP/2.0Via:SIP/2.0/UDPagenta.atlanta.example.com;branch=z9hG4bK2293940223To:sip:b@atlanta.example.comFrom:sip:a@atlanta.example.com;tag=193402342Call-ID:898234234@agenta.atlanta.example.comCSeq:93809823REFERMax-Forwards:70Refer-To:(whateverURI)Contact:sip:a@atlanta.example.comContent-Length:0MessageTwo(F2)SIP/2.0202AcceptedVia:SIP/2.0/UDPagenta.atlanta.example.com;branch=z9hG4bK2293940223To:sip:b@atlanta.example.com;tag=4992881234From:sip:a@atlanta.example.com;tag=193402342Call-ID:898234234@agenta.atlanta.example.comCSeq:93809823REFERContact:sip:b@atlanta.example.comContent-Length:0MessageThree(F3)NOTIFYsip:a@atlanta.example.comSIP/2.0Via:SIP/2.0/UDPagentb.atlanta.example.com;branch=z9hG4bK9922ef992-25To:sip:a@atlanta.example.com;tag=193402342From:sip:b@atlanta.example.com;tag=4992881234Call-ID:898234234@agenta.atlanta.example.comCSeq:1993402NOTIFYMax-Forwards:70Event:referSubscription-State:active;expires=(dependsonRefer-ToURI)Contact:sip:b@atlanta.example.comContent-Type:message/sipfrag;version=2.0Content-Length:20SIP/2.0100TryingMessageFour(F4)SIP/2.0200OKVia:SIP/2.0/UDPagentb.atlanta.example.com;branch=z9hG4bK9922ef992-25To:sip:a@atlanta.example.com;tag=193402342From:sip:b@atlanta.example.com;tag=4992881234Call-ID:898234234@agenta.atlanta.example.comCSeq:1993402NOTIFYContact:sip:a@atlanta.example.comContent-Length:0MessageFive(F5)NOTIFYsip:a@atlanta.example.comSIP/2.0Via:SIP/2.0/UDPagentb.atlanta.example.com;branch=z9hG4bK9323394234To:sip:a@atlanta.example.com;tag=193402342From:sip:b@atlanta.example.com;tag=4992881234Call-ID:898234234@agenta.atlanta.example.comCSeq:1993403NOTIFYMax-Forwards:70Event:referSubscription-State:terminated;reason=noresourceContact:sip:b@atlanta.example.comContent-Type:message/sipfrag;version=2.0Content-Length:16SIP/2.0200OKMessageSix(F6)SIP/2.0200OKVia:SIP/2.0/UDPagentb.atlanta.example.com;branch=z9hG4bK9323394234To:sip:a@atlanta.example.com;tag=193402342From:sip:b@atlanta.example.com;tag=4992881234Call-ID:898234234@agenta.atlanta.example.comCSeq:1993403NOTIFYContact:sip:a@atlanta.example.comContent-Length:0两种方式的不同点:隐式订阅(refer发起的订阅)没有duration。而该订阅的有效时长是由对端决定的。Refer的发送方和接受方可以在第一个notify消息中协商duration。如果终端接受了refer消息,但是并不想保持subscribe的状态,则可以在第一个notify中结束掉订阅。这个duration应该比refer请求相关的方法完成的时间要长一点。如一个referto为SIPINVITEURI,那么订阅的duration应该比invite的完成时间要长一点。还有时间可能需要给需要给subscribe鉴权取消订阅隐式订阅:终端可用一个refer消息来结束subscribe事物,要么取消订阅要么拒绝notify。一个发起refer的终端shouldnot产生一个cancel消息来结束refer事物,因为终端发refer消息来结束该事物。终端可以扩展subscribe的时长,通过订阅刷新扩展3、Referer的行为-请求Refer的作用:建立关于event:refer的隐式订阅Refer的特点:Ⅰ、refer消息也可以会话内的.必须(MUST)遵守record-rout机制Ⅱ、refer消息也可以是会话外的,但是可以(MAY)遵守record-rout机制。因此MUST携带一个contact头域Ⅲ、同一个会话内的dialog不能fork。会话外的refer可以fork。如果refer消息被多个终端接受,将产生多个订阅事件。终端对不同的终端响应的notify消息可以独立管理。Refer的构造:Header:Refer-to:refer请求must包含一个具体的refer-to头域值。refer-to头域只能在refer消息中出现。在该头域中提供了一个URI供后续流程使用。该头域可以端到端加密Refer-By:refer请求的发起方Body:Refer消息可以携带body。refer的接收者可以根据自己的content-type来选择处理这个body(关于body没有具体的说明)Referer的行为-接收响应订阅事务的创建通常马上会发起一个notify消息,那么refer的发起方创建完subscribe事物后,must马上准备好接收notify消息Refer是对唯一可以对event:refer产生订阅的机制。如果终端没有发起refer订阅,但是收到携带了event:refer的subscribe-notify消息的时候应该回403消息。4、Referee的行为如果终端收到refer消息后并回了2**消息,那么终端MUST根据refer-toURI与Goal(Carol)建立会话。如果终端收到refer消息中含有0个或者多与1个的refer-to头域,则应该回400消息终端收到refer消息后,可能返回100、4**~6**的响应消息当终端没有能力处理非sipuri的refer消息,那么shouldnot接受refer请求。如果按照规则,终端一直没有收到refer的响应,那么应该refer事物超时之前回202如果终端收到2xx响应,则接受方必须创建一个subscribe事物并notif
本文标题:siprefermethod研究
链接地址:https://www.777doc.com/doc-2858615 .html