Re: [Fwd: I-DAction:draft-ietf-sipping-sip-offeranswer-09.txt]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, 

I bring together my ideas.

1. UPDATE Request during the INVITE transaction

RFC:RFC3311/5.1 Sending an UPDATE (AFAIK)
BCP:I think(hope)
o:MAY send UPDATE with new offer
x:MUST NOT send UPDATE with new offer
#:should not send UPDATE with new offer

1.1. initial INVITE with an offer and PRACK without an offer
+---------------------------+---+--------------------------+
|         Caller            |   |           Callee         |
+---+---+-------------------+---+------------------+---+---+
|RFC|BCP|                   |   |                  |BCP|RFC|
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |init-INVITE(offer1)|-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|1xx-rel(answer1)  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |PRACK(noSDP)       |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   |                  | # | o |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|2xx-PRACK         |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+

1.2. initial INVITE with an offer and PRACK with an offer
+---------------------------+---+--------------------------+
|         Caller            |   |           Callee         |
+---+---+-------------------+---+------------------+---+---+
|RFC|BCP|                   |   |                  |BCP|RFC|
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |init-INVITE(offer1)|-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|1xx-rel(answer1)  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |PRACK(offer2)      |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|2xx-PRACK(answer2)|   |   |
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+

1.3. initial INVITE without an offer
+---------------------------+---+--------------------------+
|         Caller            |   |           Callee         |
+---+---+-------------------+---+------------------+---+---+
|RFC|BCP|                   |   |                  |BCP|RFC|
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |init-INVITE(noSDP) |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|1xx-rel(offer1)   |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |PRACK(answer1)     |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   |                  | # | o |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|2xx-PRACK         |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+

1.4. re-INVITE with an offer and PRACK without an offer
+---------------------------+---+--------------------------+
|         Caller            |   |           Callee         |
+---+---+-------------------+---+------------------+---+---+
|RFC|BCP|                   |   |                  |BCP|RFC|
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+
|   |   |re-INVITE(offer1)  |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|1xx-rel(answer1)  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   | <see example 1>  | # | o |
+---+---+-------------------+---+------------------+===+===+
|   |   |PRACK(noSDP)       |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   |                  | # | o |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|2xx-PRACK         |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+

1.5. re-INVITE with an offer and PRACK with an offer
+---------------------------+---+--------------------------+
|         Caller            |   |           Callee         |
+---+---+-------------------+---+------------------+---+---+
|RFC|BCP|                   |   |                  |BCP|RFC|
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+
|   |   |re-INVITE(offer1)  |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|1xx-rel(answer1)  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   | <see example 1>  | # | o |
+---+---+-------------------+---+------------------+===+===+
|   |   |PRACK(offer2)      |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|2xx-PRACK(answer2)|   |   |
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+

1.6. re-INVITE without an offer
+---------------------------+---+--------------------------+
|         Caller            |   |           Callee         |
+---+---+-------------------+---+------------------+---+---+
|RFC|BCP|                   |   |                  |BCP|RFC|
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+
|   |   |re-INVITE(noSDP)   |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # | <see example 2>   |   | <see example 3>  | # | o |
+===+===+-------------------+---+------------------+===+===+
|   |   |                   |<--|1xx-rel(offer1)   |   |   |
+---+---+-------------------+---+------------------+---+---+
| x | x |                   |   |                  | x | x |
+---+---+-------------------+---+------------------+---+---+
|   |   |PRACK(answer1)     |-->|                  |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | # |                   |   |                  | # | o |
+---+---+-------------------+---+------------------+---+---+
|   |   |                   |<--|2xx-PRACK         |   |   |
+---+---+-------------------+---+------------------+---+---+
| o | o |                   |   |                  | o | o |
+---+---+-------------------+---+------------------+---+---+

I correct the prior ideas of mine.

I think, ua should not send the UPDATE request with new offer
at the time of x or #, and ua should reply 491(Request Pending)
for the UPDATE. It is the simplest, I think.
Of course,  other idea is smarter for several scenario, but
it might be complex.

example 1.
                    A                               B
                    |                               |
                    |re-INVITE(offer1)              |
                    |------------------------------>|
                    |                               |
                    |               1xx-rel(answer1)|
                    |<------------------------------|
                    |                               |
                    |                 UPDATE(offer2)|
                    |<==============================| <- should not send
                    |                               |
                    |491-UPDATE                     |
should reply 491 -> |==============================>|
                    |                               |
                    |PRACK(offer3)                  |
Wait until 491 ->   |------------------------------>|
                    |                               |
                    |             2xx-PRACK(answer3)|
                    |<------------------------------|
                    |                               |

example 2.
                    A                               B
                    |                               |
                    |re-INVITE(noSDP)               |
                    |------------------------------>|
                    |                               |
                    |UPDATE(offer1)                 |
should not send ->  |==============================>|
                    |                               |
                    |                     491-UPDATE|
                    |<==============================| <- should reply 491
                    |                               |
                    |                1xx-rel(offer2)|
                    |<------------------------------| <- Wait until 491
                    |                               |
                    |PRACK(answer2)                 |
                    |------------------------------>|
                    |                               |

example 3.
                    A                               B
                    |                               |
                    |re-INVITE(noSDP)               |
                    |------------------------------>|
                    |                               |
                    |                 UPDATE(offer1)|
                    |<==============================| <- should not send
                    |                               |
                    |491-UPDATE                     |
should reply 491 -> |==============================>|
                    |                               |
                    |                1xx-rel(offer2)| is offer2 equal to offer1 ?
                    |<------------------------------|(<- Wait until 491)
                    |                               |
                    |PRACK(answer2)                 |
                    |------------------------------>|
                    |                               |


2. re-INVITE Request during the UPDATE transaction
it seems a similar case but I think it's another issue.
I think 491 for re-INVITE is the simplest, but wait-until-2xx
is not bad.

example 4.
                    A                               B
                    |                               |
                    |UPDATE(offer1)                 |
                    |==============================>|
                    |                               |
should not send ->  |re-INVITE(noSDP)               |
                    |------------------------------>| 491 is the simplest ...?
                    |                               |
                    |            2xx-UPDATE(answer1)|
                    |<==============================|
                    |                               |
                    |                1xx-rel(offer2)| offer2 should include answer1
                    |<------------------------------| <- Wait until 2xx-UPDATE
                    |                               |
                    |PRACK(answer2)                 |
                    |------------------------------>|
                    |                               |

example 5.
                    A                               B
                    |                               |
                    |                 UPDATE(offer1)|
                    |<==============================|
                    |                               |
should not send ->  |re-INVITE(noSDP)               |
                    |------------------------------>| 491 is the simplest ...?
                    |                               |
                    |2xx-UPDATE(answer1)            |
                    |==============================>| <- should prepare to 491
                    |                               |
                    |                1xx-rel(offer2)|
                    |<------------------------------| <- Wait until 2xx-UPDATE
                    |                               |
                    |PRACK(answer2)                 |
                    |------------------------------>|
                    |                               |


example 6. Glare Case for exsample 5

                    A                               B
                    |                               |
                    |                 UPDATE(offer1)|
                    |                  /============|
should not send ->  |re-INVITE(noSDP) /             |
                    |----------------/------------->|
                    |               /               |
                    |<=============/                |
                    |                               |
                    |491-UPDATE                     |
                    |==============================>| <- should prepare to 2xx
                    |                               |
                    |                1xx-rel(offer2)|
                    |<------------------------------| <- Wait until 491-UPDATE
                    |                               |
                    |PRACK(answer2)                 |
                    |------------------------------>|
                    |                               |

Regards,
Shinji

Paul Kyzivat <pkyzivat@xxxxxxxxx>
>I just submitted a revised version of the offeranswer draft.
>This addresses AD review comments from Jon. Most were superficial. But 
>Jon had a lot of difficulty with section 4.1, and he wasn't the only 
>one. So I elected to rewrite it completely. Its now so different that it 
>needs careful scrutiny technically and editorially.
>
>I intended to address comments by OKUMURA Shinji, but I didn't get to it.
>
>I expect there will be yet another update to capture resolution of the 
>remaining issues that will hopefully be negotiated at the upcoming meeting.
>
>	Thanks,
>	Paul
>
>-------- Original Message --------
>Subject:  I-D Action:draft-ietf-sipping-sip-offeranswer-09.txt
>Date: Mon,  3 Nov 2008 06:15:01 -0800 (PST)
>From: Internet-Drafts@xxxxxxxx
>To: i-d-announce@xxxxxxxx
>CC: sipping@xxxxxxxx
>
>A New Internet-Draft is available from the on-line Internet-Drafts 
>directories.
>This draft is a work item of the Session Initiation Proposal 
>Investigation Working Group of the IETF.
>
>
>	Title           : SIP (Session Initiation Protocol) Usage of the Offer/Answer Model
>	Author(s)       : P. Kyzivat
>	Filename        : draft-ietf-sipping-sip-offeranswer-09.txt
>	Pages           : 27
>	Date            : 2008-11-03
>
>The Session Initiation Protocol (SIP) utilizes the offer/answer
>   model to establish and update multimedia sessions using the Session
>   Description Protocol (SDP). The description of the offer/answer
>   model in SIP is dispersed across multiple RFCs. This document
>   summarizes all the current usages of the offer/answer model in SIP
>   communication.
>
>A URL for this Internet-Draft is:
>http://www.ietf.org/internet-drafts/draft-ietf-sipping-sip-offeranswer-09.txt
>
>Internet-Drafts are also available by anonymous FTP at:
>ftp://ftp.ietf.org/internet-drafts/
>
>Below is the data which will enable a MIME compliant mail reader
>implementation to automatically retrieve the ASCII version of the
>Internet-Draft.
_______________________________________________
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

[Index of Archives]     [IETF Announce]     [IETF Discussion]     [Linux SCSI]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Big List of Linux Books]

  Powered by Linux