⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soa.docs

📁 sip协议栈
💻 DOCS
📖 第 1 页 / 共 2 页
字号:
@subsection soa_uc_100rel_in Call In with PRACKThe mirror of the previous scenario:<pre> t     APPL	       NUA	       SOA		      REMOTE	|		|		|			| 0      |		|		|			| 1	|		|<------------------INVITE(sdp offer)---| 2      |		|--set_remote-->|			| 3	|<---INVITE-----|		|			| 4      |		|		|			| 5      |   		|		|			| 6	|-183 Progress->|   		|			| 7      |		|--set_params-->|			| 8      |		|--gen_answer-->|			| 9	|		|		|			|10      |		|-------------------183 (sdp answer)--->|11      |		|		|			|12      |		|<----------------------PRACK-----------|13      |<----PRACK-----|		|			|14	|		|---------------------200/PRACK-------->|15	|		|		|			|16      |--180 Ringing->|   		|			|17      |		|---------------------180 Ringing------>|18	|		|		|			|19      |		|<----------------------PRACK-----------|20      |<----PRACK-----|		|			|21	|		|---------------------200/PRACK-------->|22      |		|		|			|23      |		|		|			|24      |		|		|			|25      |----200 OK---->|		|			|26      |		|----activate-->|			|27      |<----active----|		|			|28      |		|---------------------200/INVITE------->|29      |		|		|			|30      |		|<-----------------------ACK------------|31      |<-----ACK------|		|			|32      |		|		|			|        |		|		|			|</pre><b>Note 1:</b> the user expectation (set by ordinary telephone) here is thatcallee sends a ringing tone towards caller and discards any media sent bycallee until the call is accepted at t=26 (200 OK is sent towards caller).The application starts to alert user at t=13 when it knows that themedia session has been successfully established.*//**@page soa_sdp_oa_use_cases Use Cases for SIP and SDP Offer/AnswerThis page contains a list of use cases or call scenarios for SIP and SDPOffer/Answer. There are a few call scenarios that we expect to see when dealing with moretelephone-like side of SIP: - calling to existing PSTN networks (early session)- doing resource reservations- calling to 3G IMS- call hunting- having external party setting up your call, etc.@section soa_use_case_1 Case #1: Basic CallThis is the basic SIP call model with the most simple offer-answer exchange.<pre>	A		        B	|			|	|----INVITE (offer)---->|	|			|	|			|	|< - - 180 Ringing - - -|	|			|	|			|	|<----200 (answer)------|	|----------ACK--------->|	|			|	|			|</pre>@section soa_use_case_2 Case #2: Early MediaAnother case, slightly more complex. The SDP answer is sent with180 Ringing in order to establish an "early session". B mightnot be a SIP phone, but a gateway to PSTN, for instance. Using this"early session" B can play tones like "burr-burr" or "thesubscriber you tried to reach is not in the coverage...":<pre>	A		        B	|			|	|----INVITE (offer)---->|	|			|	|			|	|<----180 (answer)------|	|			|	|			|	|<----200 (answer')-----|	|----------ACK--------->|	|			|	|			|</pre>After receiving answer in 180 Ringing, A simply ignores SDP insubsequent responses.Nothing special here, right? But SIP is not so simple,unfortunately. There are hairy cases because of "early sessions","forking", "preconditions" and other reasons.Now lets go through some hairy cases.@section soa_use_case_3 Case #3: Early Dialog, Early MediaThis case is a call using 100rel, early dialog and early media. Itis used when the session should be established before call alerts.<pre>	A		        B	|			|	|----INVITE (offer)---->|	|			|	|<----183 (answer)------|	|--------PRACK--------->|	|<-----200/PRACK------->|	|			|	|<---------180----------|	|--------PRACK--------->|	|<-----200/PRACK------->|	|			|	|			|	|			|	|<---------200----------|	|----------ACK--------->|	|			|	|			|</pre>@section soa_use_case_4 Case #4: UPDATE with OfferThis is a call model with two rounds of offer/answer and 100rel. It can be used, for instance, when the endpoints have to make surethat there are enough network capacity for the call to succeed. They can establish a new radio bearer, for instance, beforeprogressing with the call. The initial offer would contain SDPattribute "inactive", the second "sendrev":<pre>	A		        B	|			|	|----INVITE (offer)---->|	|			| 	|			| 	|<----183 (answer)------| 	|--------PRACK--------->|	|<-----200/PRACK--------|	|			|	|			|	|----UPDATE (offer2)--->|	|<-200/UPDATE (answer2)-|	|			|	|<---------180----------|	|--------PRACK--------->|	|<-----200/PRACK------->|	|			|	|			|	|<---------200----------|	|----------ACK--------->|	|			|	|			|</pre>@section soa_use_case_5 Case #5: 2nd Offer in PRACKAlternative 1 to above, two rounds of offer/answer and 100rel, noUPDATE. It can used, for instance, when caller wants to make surethere is only one audio or video codec that is used during thecall. The initial offer would contain SDP attribute "inactive";the second "sendrev":<pre>	A		        B	|			|	|----INVITE (offer)---->|	|			|	|<----183 (answer)------|	|-----PRACK(offer2)---->|	|<--200/PRACK(answer2)--|	|			|	|			|	|<---------180----------|	|--------PRACK--------->|	|<-----200/PRACK------->|	|			|	|			|	|<---------200----------|	|----------ACK--------->|	|			|	|			|</pre>@section soa_use_case_6 Case #6: Callee Making 2nd Offer Alternative 2 to above: two rounds of offer/answer and 100rel, butnow it is B who wants to do two rounds and initiates secondOffer-Answer exchange:<pre>	A		        B	|			|	|----INVITE (offer)---->|	|			|	|<----183 (answer)------|	|--------PRACK--------->|	|<-----200/PRACK------->|	|			|	|			|	|<---UPDATE (offer2)----|	|-200/UPDATE (answer2)->|	|			|	|<---------180----------|	|--------PRACK--------->|	|<-----200/PRACK------->|	|			|	|			|	|<---------200----------|	|----------ACK--------->|	|			|	|			|</pre>@section soa_use_case_7 Case #7: 3GPP Call ModelHere is a third alternative, know as "3GPP call model", wherethere is not 2 but 3 offer-answer rounds, allowing A and B to doprecise resource reservations after they have agreed on media,codecs and transport addresses used during the call:<pre>        	A		        B        	|			|        	|----INVITE (offer)---->|        	|			|         	|			|         	|<----183 (answer)------|         	|-----PRACK(offer2)---->|        	|<--200/PRACK(answer2)--|        	|			|        << resource reservations are done now >>        	|			|        	|----UPDATE (offer3)--->|        	|<-200/UPDATE (answer3)-|        	|			|        	|<---------180----------|        	|--------PRACK--------->|        	|<-----200/PRACK------->|        	|			|        	|			|        	|<---------200----------|        	|----------ACK--------->|        	|			|        	|			|</pre>@section soa_use_case_8 Case #8: ForkingNow, another complication. Here B has two terminals, let say,fixed (B1) and mobile (B2) phone, both alert when B receives acall using procedure known as forking:<pre>	A		   B's proxy		B1		B2	|			|		|		|	|----INVITE (offer)---->|		|		|	|			|-INVITE (off)->|		|	|			|-----------INVITE (off)------->|	|			|		|		|	|			|<--180 (ans1)--|		|	|<------180 (ans1)------|		|		|	|			|		|		|	|			|<----------180 (ans2)----------|	|<------180 (ans2)------|		|		|	|			|		|		|	|			|		|		|	|			|<----------200 (ans2')---------|	|<------200 (ans2')-----|		|		|	|			|----CANCEL---->|		|	|			|<--200/CANCEL--|		|	|			|<-----487------|		|	|			|		|		|	|----------ACK----------------------------------------->|	|			|		|		|	|			|		|		|</pre>Here we have two calls initially established, but the call to B1along with "early session" is should be dropped when B2 picks upthe call (and 200 OK is returned).@section soa_use_case_9 Case #9: 3rd Party Call ControlNow something different: 3rd party call model, where "C"establishes the call:<pre>	A		        C		        B	|			|			|	|<-------INVITE---------|			|	|			|			|	|			|			|	|------200 (offer)----->|  	  		|	|			|----INVITE (offer)---->|	|			|			|	|			|			|	|			|<-----200 (answer)-----|	|<-----ACK (answer)-----|			|	|			|     			|	|			|----------ACK--------->|	|			|			|</pre>@section soa_use_case_10 Case #10: Upgrade Session with Re-INVITEThe session is upgraded: a new media is added to the session. <pre>	A		        B	|			|	|----INVITE (offer1)--->|	|			|	|			|	|< - - 180 Ringing - - -|	|			|	|			|	|<----200 (answer2)-----|	|----------ACK--------->|	|			|	|			|	|			|	|			|	|----INVITE (offer2)--->|	|			|	|<----200 (answer2)-----|	|----------ACK--------->|	|			|	|			|</pre>@section soa_use_case_10 Case #10: Upgrade Session with Re-INVITEThe session upgraded is rejected.<pre>	A		        B	|			|	|----INVITE (offer1)--->|	|			|	|			|	|< - - 180 Ringing - - -|	|			|	|			|	|<----200 (answer2)-----|	|----------ACK--------->|	|			|	|			|	|			|	|			|	|----INVITE (offer2)--->|	|			|	|<---------488----------|	|----------ACK--------->|	|			|	|			|</pre>*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -