diff --git a/xep-0167.xml b/xep-0167.xml index 5211ab4b..8e4c98da 100644 --- a/xep-0167.xml +++ b/xep-0167.xml @@ -28,6 +28,12 @@ &seanegan; &robmcqueen; &diana; + + 0.30 + 2009-04-08 + psa +

Further adjusted session flows for two scenarios scenario; added unhold and unmute messages.

+
0.29 2009-03-20 @@ -673,7 +679,23 @@ delivery-method=inline; configuration=somebase16string; action='session-info' initiator='romeo@montague.lit/orchard' sid='a73sjjvkla37jfea'> - + + + + ]]> +

When the holder wishes to end the hold state, it sends an informational payload of <unhold/> or <active/>.

+ + + ]]> @@ -692,6 +714,21 @@ delivery-method=inline; configuration=somebase16string; + + ]]> +

To end the mute state, the party sends an informational payload of <unmute/> or <active/>.

+ + + + ]]> @@ -784,10 +821,6 @@ Romeo Juliet |---------------------------->| | ack | |<----------------------------| - | session-info (ringing) | - |<----------------------------| - | ack | - |---------------------------->| | terminate | | (reason = busy) | |<----------------------------| @@ -849,27 +882,7 @@ Romeo Juliet to='romeo@montague.lit/orchard' type='result'/> ]]> - - - - - - ]]> - - ]]> -

Now the responder immediately terminates the session.

-

Note: It might be wondered why the responder does not accept the session and then terminate. That order would be acceptable, too, but here we assume that the responder's client has immediate information about the responder's free/busy status (e.g., because the responder is on the phone) and therefore returns an automated busy signal without requiring user interaction.

+

However, the responder immediately terminates the session.

]]> +

Note: It might be wondered why the responder does not accept the session and then terminate. That order would be acceptable, too, but here we assume that the responder's client has immediate information about the responder's free/busy status (e.g., because the responder is on the phone) and therefore returns an automated busy signal without requiring user interaction.

]]> -

Now the gateway sends a content-add message to Romeo while waiting for Juliet to pay attention to her telephony interface.

+

Now the gateway sends a content-add message to Romeo while waiting for Juliet to pay attention to her telephony interface. It specifies a transport method of Raw UDP because it hosts its own media relay.

- ]]> -

Now the gateway sends early media to Romeo.

+

Now the gateway sends early media to Romeo via the media relay that it hosts.

Eventually, the responder sends a session-accept.

| | ack | |<----------------------------| + | content-modify for video | + |<----------------------------| + | ack | + |---------------------------->| | content-accept for video | |<----------------------------| | ack | |---------------------------->| - | session-info (hold) | - |<----------------------------| - | ack | - |---------------------------->| - | session-info (active) | - |<----------------------------| - | ack | - |---------------------------->| + | [optional transport and | + | application negotiation] | + |<--------------------------->| + | STUN connectivity checks | + |<===========================>| | AUDIO + VIDEO (RTP) | |<===========================>| + | content-modify for video | + |<----------------------------| + | ack | + |---------------------------->| | session-terminate | |<----------------------------| | ack | @@ -1685,7 +1704,27 @@ Romeo Juliet to='romeo@montague.lit/orchard' type='result'/> ]]> -

However, Juliet is having a bad hair day, so she sends a content-accept message to Romeo but puts him on hold while she gets her hair in order.

+

However, Juliet is having a bad hair day, so she sends a content-modify message to Romeo that sets the senders to "initiator" (she doesn't mind receiving video but she doesn't want to send video).

+ + + + + + ]]> + + ]]> +

Then Juliet accepts video.

]]> - - - - - - ]]> -

Romeo then acknowledges the content-accept and session-info messages.

+

Romeo then acknowledges the content-accept.

]]> - - ]]> -

After a few minutes, Juliet returns and informs Romeo that she is actively engaged in the call again.

- If necessary, the parties then negotiate transport methods and codec parameters for video, and Romeo starts to send video to Juliet, where the video is exchanged using the Theora codec with a height of 600 pixels, a width of 800 pixels, a bandwidth limit of 128,000 kilobits per second, etc.

+

After some number of minutes, Juliet returns and agrees to start sending video, too.

+ - + ]]> - ]]> -

The media session proceeds. Now they would exchange both audio and video, where the audio is exchanged via the Speex codec at a clockrate of 8000 and the video is exchanged using the Theora codec with a height of 600 pixels, a width of 800 pixels, a bandwidth limit of 128,000 kilobits per second, etc.

+

Now the two parties would exchange audio and video in both directions.

The parties can continue the session as long as desired.

Other events might occur throughout the life of the session. For example, one of the parties might want to tweak the video parameters using a description-info action.

- - - - - - - - - + - + - - - - - - - - - + + + + + + + + + + + + + @@ -2049,6 +2068,6 @@ Romeo Juliet -

Thanks to Milton Chen, Paul Chitescu, Olivier Crête, Tim Julien, Steffen Larsen, Jeff Muller, Mike Ruprecht, Sjoerd Simons, Justin Uberti, and Paul Witty for their feedback.

+

Thanks to Milton Chen, Paul Chitescu, Olivier Crête, Tim Julien, Steffen Larsen, Jeff Muller, Mike Ruprecht, Sjoerd Simons, Will Thompson, Justin Uberti, and Paul Witty for their feedback.