Hi, >In my draft, Offer/Answer pair is the smallest transaction. I do not prefer to divide >it into m lines commitment separately. Yes, but if one m- line uses preconditions, and the other doesn't, the failure of the re-INVITE may have different impacts on them. That is at least how I understand your proposal. >And in RFC3264, there is no definition of transaction smaller than Offer/Answer pair, so I use Offer/Answer pair as the base of nested transaction. Sure. But you define different fallback rules for preconditions and non-preconditions, and you may have both those in a single offer/answer pair. >For the reason I mentioned above, the commitment of session modification should be together for all m-lines of one Offer/Answer. >And if the Offer/Answer is by UPDATE/200OK, and it is a new modification, your presentation is correct. And we have the same understanding of semantics of "a new modification from the previous one". > >But if the Offer/Answer is in Re-INVITE, such as Offer(in Re-INVITE)/Answer(in 18x) or Offer(in 18x)/Answer(in PRACK), so this Offer/Answer(or say this modification) is triggered by Re-INVITE. And 2xx of Re-INVITE is the >late commitment of this modification. This is the property I called "late commitment of 200OK of Re-INVITE", which is defined in RFC3261 and emphasized again in RFC3311. It is really necessary for user's rejecting of >session modification. So, this case, the modification need rollback. Ok, so in this case there are no nested offer/answers - only a SINGLE offer/answer (re-INV/18x OR 18x/PRACK), and then the re-INVITE fails. Right? >And if there is not new modification (such as the one in UPDATE/200OK), and the new one committed, the previous one(triggered by Re-INVITE) will be discarded, no matter the final response. And curently, if the >Offer/Answer in UPDATE/200OK is not precondition notification, it would be a new modification. And this obeys the issue 3GPP concerns. Again, for one m- line it may be a precondition notification, but for another m- line it may be a modification (or a copy of a previous modification which took place e.g in the re-INV/18x). For example, for one m- line you may want to remove a codec, and for another m- line you may want to add a codec. You normally don't need preconditions to remove something, but the m- line where you add a codec may need preconditions. Regards, Christer Hi, Let's look into this precondition proposal. There are some issues that needs to be taken into consideration. Issue 1: ----------- Assume I send a re-INVITE. I have two m- lines. For one of the m- line changes I use preconditions, and for the other m- line change I do NOT use preconditions. Then I receive a relaible 18x, and the first offer/answer transaction has succeeded. Then the re-INVITE fails. Now, according to the ZTE proposal, the precondition m- line is falled back to the value before the re-INVITE was changed. The non-precondition m- line is not falled back, however, since the change was comitted in the re-INVITE/18x o/a transaction. So, we can NOT say that the whole SDP will be falled back to the state before the re-INVITE was sent. The precondition m- line is falled back, but the non-precondition m- line is NOT falled back. Is that a correct understanding? Regards, Christer ________________________________ From: gao.yang2@xxxxxxxxxx [mailto:gao.yang2@xxxxxxxxxx] Sent: 18. helmikuuta 2009 2:46 To: Elwell, John Cc: Christer Holmberg; sipping@xxxxxxxx; sipping-bounces@xxxxxxxx; wang.libo@xxxxxxxxxx Subject: 答复: Re: About "rollback of re-Invite" Dear Elwell John From SIP signal level, UPDATE transaction have nothing to do with Re-INVITE transaction. And the nested-transaction is the natural property of session modification, so the concept of nested-transaction is application level issue. And that's why I emphasize that we MUST open the door for evolution and extension in future. 1. Precondition uage o Precondition defined in RFC3312(Quality-of-Service precondition)\4032(Precondition Framework)\5027(Security Preconditions) is a typical nested-transaction with clear semantics of suspending\resuming session modification. o Another property of Re-INVITE is "late commitment of 200OK of Re-INVITE", which is defined in RFC3261 and emphasized again in RFC3311. And it is really necessary for user's rejecting of session modification. Based on the two rule mentioned above, as precondition notification is part of the original modification triggered by Re-INVITE, the 2xx final response of Re-INVITE is the commitment and non-2xx final response is the rejecting. So, rollback for Re-INVITE is clear for precondition usage. 2. Non precondition usage If the Offer during(not in) the Re-INVITE, such as UPDATE , is a new modification request, then o if the UA can accept the UPDATE, and after Offer/Answer, the modification MUST be committed. o if the UA can not accept the UPDATE(for example, can not accept it without the user's permition), the UA MUST reject this UPDATE. The proof of rule one is that: "We have no reason to say that the the new successful modification should be commited by the signal(2xx of Re-INVITE) associate to the original modification request(Re-INVITE). And in signal level, Re-INVITE and UPDATE is independent transaction(SIP). As the new modification commitment and its state have nothing to do whit final resopnse of Re-INVITE, the session state is clear." And I mentioned this in the draft. I MUST point out that rule two is the way to get rid of a new modification while the orignal one in pending state. It is a choice, but not a constraint. Gaoyang "Elwell, John" <john.elwell@xxxxxxxxxxx> 发件人: sipping-bounces@xxxxxxxx 2009-02-17 21:50 收件人 Christer Holmberg <christer.holmberg@xxxxxxxxxxxx>, wang.libo@xxxxxxxxxx 抄送 sipping@xxxxxxxx 主题 Re: About "rollback of re-Invite" I haven't been following all of this discussion, but there is nothing explicitly to bind an UPDATE transaction to a parent INVITE or re-INVITE transaction. It is implicit in the vast majority of cases, but timing issues break this, particularly where unreliable transport is concerned. For example, if UPDATE arrives while awaiting ACK, is it because UPDATE was sent before the ACK, or because the ACK was lost? If UPDATE arrives before sending a final response to re-INVITE, is it because UPDATE is nested within the re-INVITE transaction, or has there been a CANCEL request that has been lost and will be repeated later? Without explicit binding, the only consistent thing to do is to treat each transaction separately, and not roll back. If this means pre-conditions are broken, the focus should be on fixing pre-conditions somehow. John ________________________________ From: sipping-bounces@xxxxxxxx [mailto:sipping-bounces@xxxxxxxx] On Behalf Of Christer Holmberg Sent: 16 February 2009 18:00 To: wang.libo@xxxxxxxxxx Cc: sipping@xxxxxxxx Subject: Re: About "rollback of re-Invite" Hi, >The key point of this discussion is how to find out the proper state of the rollback. >I think ,Some rules of using re-invite may be helpful.Such as, we restrict only >one offer/answer pair in a re-invite, I don't think we can do that, because at least some pre-condition scenarios require more offer/answer pairs. And, even if you would only allow e.g. a single UPDATE within the re-INVITE, you would still have the same question: if the UPDATE suceeds, but the re-INVITE then fails, what is the state? Regards, Christer "Christer Holmberg" <christer.holmberg@xxxxxxxxxxxx> 写于 2009-02-16 21:41:59: > > Hi, > > > >>I also pay high attention to the topic of "rollback of re-Invite". > >>As lots of service is implemented on the network using SIP, and > >>different ways may be carried out by different corporations, it's > necessary to define > >>a complete and clear method to solve the failure when the unsuccessful > re-Invite > >>happens. > > > >I agree, and we thought that having a generic rule, not related to > >specific use-cases, would be the most clear, clean and complete > >solution. > > > >[gaoyang] It is simple and clear. But it disregard nature property of > nested transaction. I concluded incorrectness and drawback of such way. > More details in > http://www.ietf.org/internet-drafts/draft-gaoyang-sipping-session-state- > analysis-01.txt. > > I agree it's not the most "beautiful" solution - that's why we spent a > long time discussing it. > > >>And the problems "Commit any session parameters that have been > sucessfully changed" > >>metioned in "draft-gaoyang-sipping-session-state-analysis-01.txt" need > further discuss, > >>I think. > > > >The draft does not define a generic rule. It more or less says that > >every time there is a new use-case, the offer/answer rollback aspects > >needs to be documented for that use-case. I think that is something we > >wanted to avoid. > > > >[gaoyang] It is not use-case oriented, but rules/definition oriented. > >And the definition of how o/a pairs form nested transaction should be > open for future. > >Such as "a=chain" and so on extension can form more o/a pairs as nested > transaction. It is not use-case. > >We can have a further talk. > > > >If I understand chapter 4.3.3 correct, it says that if you have a > >pending re-INVITE transaction, a NEW modification must be sent in a > >re-INVITE request. That way we would get rid of the race condition > >problem. That is an interesting point. I guess the question is whether > >it's too lake to make such a rule. > > > >[gaoyang] Is the "lake" late? I think it can be BCP, not rules :). > > Perhaps, yes. > > Regards, > > Christer > > -------------------------------------------------------- ZTE Information Security Notice: The information contained in this mail is solely property of the sender's organization. This mail communication is confidential. Recipients named above are obligated to maintain secrecy and are not permitted to disclose the contents of this communication to others. This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the originator of the message. Any views expressed in this message are those of the individual sender. This message has been scanned for viruses and Spam by ZTE Anti-Spam system. _______________________________________________ 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 -------------------------------------------------------- ZTE Information Security Notice: The information contained in this mail is solely property of the sender's organization. This mail communication is confidential. Recipients named above are obligated to maintain secrecy and are not permitted to disclose the contents of this communication to others. This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the originator of the message. Any views expressed in this message are those of the individual sender. This message has been scanned for viruses and Spam by ZTE Anti-Spam system. -------------------------------------------------------- ZTE Information Security Notice: The information contained in this mail is solely property of the sender's organization. This mail communication is confidential. Recipients named above are obligated to maintain secrecy and are not permitted to disclose the contents of this communication to others. This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the originator of the message. Any views expressed in this message are those of the individual sender. This message has been scanned for viruses and Spam by ZTE Anti-Spam system. _______________________________________________Sipping mailing list https://www.ietf.org/mailman/listinfo/sippingThis list is for NEW development of the application of SIPUse sip-implementors@xxxxxxxxxxxxxxx for questions on current sipUse sip@xxxxxxxx for new developments of core SIP