Hi, >Hi, > >>>There are also "B2BUAs acting as proxies", that do not terminate the >>>dialogs. >> >>"B2BUAs acting as proxies" is a terrible entities ! > >I would call them useful entities, but that's just me... > >I would also say that many (most?) of the B2BUAs out there probably act >that way, but I am sure there are people who has better information on >that. Where is the behavior of "useful entities" defined ? >>It should behave as B2BUA. > >Well, it doesn't :) > >Anyway, even if they do I don't think it would solve the issue. The >point is that some entities may bet the 4xx from the UAS before they get >the UPDATE from the UAC, while other entities get the UPDATE from the >UAC before they get the 4xx from the UAS. 1.IT receive 4xx from UAS 2.IT send ACK to UAS 3.IT send 4xx to UAC 4.IT receive UPDATE from UAC 5.IT send UPDATE to UAS 6.IT receive 2xx to UPDATE from UAS 7.IT send 2xx to UPDATE to UAC UAC IT UAS | session established | |<====================|====================>| state1| state1 | state1 | state1 | | | | F1 re-INVITE (SDP) | |-------------------->|-------------------->| | F2 1xx-rel (SDP) | |<--------------------|<--------------------| state2| state2 | state2 | state2 | | | | F3 PRACK | |-------------------->|-------------------->| | F4 2xx PRA | |<--------------------|<--------------------| | | | |F5 UPDATE(offer) F6 4xx INV | offer3|---------\ /--------|<--------------------| rollback state1 | state1 | state1 | | | | | | | | \/ | F7 ACK | | /\ |-------------------->| state1|<--------/ \ | F5 UPDATE | | \------>|-------------------->| offer3 | offer3 | offer3 | | | | | F8 2xx UPDATE(answer) | |<--------------------|<--------------------| answer3 = state3 state3| state3 | state3 | | ACK | | |-------------------->| | It is no problem, isn't it? Regards, Shinji >But, as indicated in Gonzalo's draft, that can be avoided by the UAS >sending an UPDATE instead of 4xx. > >Regards. > >Christer > > > > >> >There are even proxies which need to keep SDP state. >> > >> >Regards, >> > >> >Christer >> > >> >> -----Original Message----- >> >> From: OKUMURA Shinji [mailto:shin@xxxxxxxxxxxxxxx] >> >> Sent: 5. maaliskuuta 2009 15:32 >> >> To: Christer Holmberg; sipping >> >> Subject: RE: My proposal has no racing condition >> >> >> >> Christer, >> >> >> >> Are you talking about B2BUA ? >> >> It will go without saying B2BUA is an endpoint, terminate >> both dialog. >> >> It should handle both O/A state adequately. >> >> >> >> If you know a concrete problem, pl show me it's sequence flow. >> >> >> >> Regards, >> >> >> >> Shinji >> >> >> >> >Hi, >> >> > >> >> >Please be aware that there may also be offer/answer state aware >> >> >intermediates, of which some may have received the 4xx (F6) >> >> BEFORE they >> >> >received the UPDATE (F5), and they must all end up having >> >> the same SDP >> >> >state. Otherwise you have a mess. >> >> > >> >> >Regards, >> >> > >> >> >Christer >> >> > >> >> >> -----Original Message----- >> >> >> From: sipping-bounces@xxxxxxxx >> >> >> [mailto:sipping-bounces@xxxxxxxx] On Behalf Of OKUMURA Shinji >> >> >> Sent: 5. maaliskuuta 2009 13:02 >> >> >> To: Ian Elz; sipping >> >> >> Subject: Re: My proposal has no racing condition >> >> >> >> >> >> Hi, >> >> >> >> >> >> New rule. >> >> >> >> >> >> UAC Behavior >> >> >> After receiving 4xx, if UAC receive 200 >> response with answer >> >> >> to UPDATE that sent before receiving 4xx, UAC MUST >> >> treat it as if >> >> >> UAC sent the UPDATE after sending ACK. >> >> >> >> >> >> UAC P1 UAS >> >> >> | session established | >> >> >> |<====================|====================>| >> >> >> | | | >> >> >> | F1 re-INVITE (SDP) | >> >> >> |-------------------->|-------------------->| >> >> >> | F2 1xx-rel (SDP) | >> >> >> |<--------------------|<--------------------| >> >> >> | F3 PRACK | >> >> >> |-------------------->|-------------------->| >> >> >> | F4 2xx PRA | >> >> >> |<--------------------|<--------------------| >> >> >> | | | >> >> >> |F5 UPDATE(offer) F6 4xx INV | >> >> >> |---------\ /--------|<--------------------| >> >> >> | \/ | F7 ACK | >> >> >> | /\ |-------------------->| >> >> >> |<--------/ \ | F5 UPDATE | >> >> >> | \------>|-------------------->| >> >> >> | | | >> >> >> | F8 2xx UPDATE(answer) | >> >> >> |<--------------------|<--------------------| >> >> >> | ACK | | >> >> >> |-------------------->| | >> >> >> >> >> >> What do you think of this idea ? >> >> >> >> >> >> Regards, >> >> >> >> >> >> Shinji >> >> >> >> >> >> "Ian Elz" <ian.elz@xxxxxxxxxxxx> >> >> >> >Shinji, >> >> >> > >> >> >> >I don't believe that your proposal to reject all >> UPDATEs received >> >> >> >between the 4xx and the ACK will solve the problem. It won't >> >> >> harm but >> >> >> >there are situations where the UPDATE may arrive after the >> >> >> ACK has been >> >> >> >received by the UAS. >> >> >> > >> >> >> >This may occur when another node exists between the UAC >> >> and the UAS. >> >> >> >RFC3261 requires that the ACK for a non-2xx response be >> >> sent by the >> >> >> >transaction and hence the ACK in this case is hop-by-hop. >> >> >> Only an ACK >> >> >> >to a 2xx response is end-to-end. >> >> >> > >> >> >> >This may lead to the following scenario: >> >> >> > >> >> >> >1 UPDATE and 4xx/5xx/6xx of Re-INVITE >> >> >> > >> >> >> > UAC P1 UAS >> >> >> > | session established | >> >> >> > |<====================|====================>| >> >> >> > | | | >> >> >> > | F1 re-INVITE (SDP) | >> >> >> > |-------------------->|-------------------->| >> >> >> > | F2 1xx-rel (SDP) | >> >> >> > |<--------------------|<--------------------| >> >> >> > | F3 PRACK | >> >> >> > |-------------------->|-------------------->| >> >> >> > | F4 2xx PRA | >> >> >> > |<--------------------|<--------------------| >> >> >> > | | | >> >> >> > |F5 UPDATE F6 4xx INV | >> >> >> > |---------\ /--------|<--------------------| >> >> >> > | \/ | ACK | >> >> >> > | /\ |-------------------->| >> >> >> > |<--------/ \ | UPDATE F6 | >> >> >> > | \------>|-------------------->| >> >> >> > | | | >> >> >> > | ACK | | >> >> >> > |-------------------->| | >> >> >> > >> >> >> >The more intervening nodes the greater the probability >> that this >> >> >> >situation will occur. >> >> >> > >> >> >> >Ian Elz >> >> >> > >> >> >> >-----Original Message----- >> >> >> >From: sipping-bounces@xxxxxxxx >> >> [mailto:sipping-bounces@xxxxxxxx] On >> >> >> >Behalf Of OKUMURA Shinji >> >> >> >Sent: 05 March 2009 02:48 >> >> >> >To: sipping >> >> >> >Cc: Gonzalo Camarillo >> >> >> >Subject: Re: My proposal has no racing condition >> >> >> > >> >> >> >Gao, >> >> >> > >> >> >> >I feel your proposal is no bad for a summary. >> >> >> > >> >> >> >BUT, The biggest drawback is which UPDATE is "part of the >> >> original >> >> >> >modification" or "new modification". it is very very ambiguous. >> >> >> > >> >> >> >the distinction seems to impossible. >> >> >> > >> >> >> >It is no doubt that an UPDATE without SDP is "new >> modification". >> >> >> >UPDATE after ACk is "new modification" too. >> >> >> >but it has a racing condition. >> >> >> > >> >> >> >new UAS behavior >> >> >> > reject all UPDATEs received between 4xx and ACK >> >> >> > >> >> >> >can the above rule solve the problem ? >> >> >> > >> >> >> >Regards, >> >> >> >Shinji >> >> >> > >> >> >> >gao.yang2@xxxxxxxxxx >> >> >> >>My proposal has no racing condition >> >> >> >> >> >> >> >>1 UPDATE and 4xx/5xx/6xx of Re-INVITE >> >> >> >> >> >> >> >> UAC UAS >> >> >> >> | session established | >> >> >> >> |<===================>| >> >> >> >> | | >> >> >> >> | F1 re-INVITE (SDP) | >> >> >> >> |-------------------->| >> >> >> >> | F2 1xx-rel (SDP) | >> >> >> >> |<--------------------| >> >> >> >> | F3 PRACK | >> >> >> >> |-------------------->| >> >> >> >> | F4 2xx PRA | >> >> >> >> |<--------------------| >> >> >> >> | | >> >> >> >> |F5 UPDATE F6 4xx INV | >> >> >> >> |---------\ /--------| >> >> >> >> | \/ | >> >> >> >> | /\ | >> >> >> >> |<--------/ \------->| >> >> >> >> | | >> >> >> >> >> >> >> >>Currently, there are only two cases for the Offer in UPDATE: >> >> >> >> >> >> >> >> o part of the original modification; >> >> >> >> >> >> >> >> o a new modification request. >> >> >> >> >> >> >> >>If it is part of the original modification, the session >> >> >> state is clear. >> >> >> > >> >> >> >>That >> >> >> >>is the state before F1. >> >> >> >> >> >> >> >>If it is a new modification request, there are only two >> >> >> cases for the >> >> >> >> UPDATE: >> >> >> >> >> >> >> >> o accepted by 200OK; >> >> >> >> >> >> >> >> o rejected by 4xx/5xx/6xx, such as 504. >> >> >> >> >> >> >> >> If it is accepted by 200OK, the new modification is >> >> >> committed. And >> >> >> >> the session state is committed state of the modification >> >> >> triggered by >> >> >> >> F5. >> >> >> >> >> >> >> >> If it is rejected, and the original modification >> failed, the >> >> >> >> session >> >> >> > >> >> >> >>state is one before F1. >> >> >> > >> >--------------------------"AVG >> certification"-------------------------- >> > >> >No virus found in this incoming message. >> >Checked by AVG - www.grisoft.jp >> >Version: 8.0.237 / Virus Database: 270.11.7/1983 - Release Date: >> >03/04/09 07:41:00 >> >_______________________________________________ >Sipping mailing list https://www.ietf.org/mailman/listinfo/sipping >This list is for NEW development of the application of SIP >Use sip-implementors@xxxxxxxxxxxxxxx for questions on current sip >Use sip@xxxxxxxx for new developments of core SIP > >--------------------------"AVG certification"-------------------------- > >No virus found in this incoming message. >Checked by AVG - www.grisoft.jp >Version: 8.0.237 / Virus Database: 270.11.7/1983 - Release Date: 03/04/09 07:41:00 _______________________________________________ Sipping mailing list https://www.ietf.org/mailman/listinfo/sipping This list is for NEW development of the application of SIP Use sip-implementors@xxxxxxxxxxxxxxx for questions on current sip Use sip@xxxxxxxx for new developments of core SIP