Internet Engineering Task Force MMUSIC WG Internet Draft J.Rosenberg,H.Schulzrinne draft-rosenberg-mmusic-sdp-offer-answer-00.txt dynamicsoft,Columbia U. October 26, 2001 Expires: April 2002 An Offer/Answer Model with SDP STATUS OF THIS MEMO This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress". The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt To view the list Internet-Draft Shadow Directories, see http://www.ietf.org/shadow.html. Abstract This document defines a mechanism by which two entities can make use of SDP arrive at a common view of a multimedia session between them. In the model, one participant offers the other a description of the desired session from their perspective, and the other participant answers with the desired session from their perspective. This offer/answer model is most useful in unicast sessions where information from both participants is needed for the complete view of the session. The offer/answer model is used by protocols like SIP. 1 Introduction The Session Description Protocol (SDP) [1] was originally conceived as a way to describe multicast sessions carried on the Mbone. The Session Announcement Protocol (SAP) [2] was devised as a multicast J.Rosenberg,H.Schulzrinne [Page 1] Internet Draft offer-answer October 26, 2001 mechanism to carry SDP messages. Although the SDP specification allows for unicast operation, it is not complete. Unlike multicast, where there is a global view of the session that is used by all participants, unicast sessions involve two participants, and a complete view of the session requires information from both participants, and agreement on parameters between them. As an example, a multicast session requires conveying a single multicast address for a particular media stream. However, for a unicast session, two addresses are needed - one for each participant. As another example, a multicast session requires indication of which codecs will be used in the session. However, for unicast, the set of codecs needs to be determined by finding an overlap in the set supported by each participant. As a result, even though SDP has the expressiveness to describe unicast sessions, it is missing the semantics and operational details of how it is actually done. In this draft, we remedy that by defining a simple offer/answer model based on SDP. In this model, one participant in the session generates an SDP that constitutes the offer - the set of media streams and codecs the offerer wishes to use, along with the IP addresses and ports the offer would like to use to receive the media. The offer is conveyed to the other participant, called the answerer. The answerer generates an answer, which is an SDP that responds to offer provided it. The answer has a matching media stream for each one in the offer, indicating whether the stream is accepted or not, along with the codecs that will be used and the IP addresses and ports that the answerer wants to use to receive media. We also define guidelines for how the offer/answer model is used to update a session once it has begun. The means by which the offers and answers are conveyed are outside the scope of this document. The offer/answer model defined here is the mandatory baseline mechanism used by the Session Initiation Protocol (SIP) [3]. 2 Generating the initial offer The offer (and answer) MUST be a valid SDP, as defined by RFC 2327 [1]. This means it MUST contain a v line, o line, s line and t line. Either an e line or p line MUST be present. However, it is RECOMMENDED that all implementations accept SDP without e, p, or s lines. The numeric value of the session id and version in the o line MUST be representable with a 64 bit signed integer. Although the SDP specification allows for multiple session descriptions to be concatenated together into a large SDP message, an SDP message used J.Rosenberg,H.Schulzrinne [Page 2] Internet Draft offer-answer October 26, 2001 in the offer/answer model MUST contain only a single session description. The SDP "s=" line and the SIP Subject header field have different meanings when inviting to a multicast session. The session description line describes the subject of the multicast session, while the SIP Subject header field describes the reason for the invitation. For invitations to two-party sessions, the SDP "s=" line MAY consist of a single space character (0x20). Unfortunately, SDP does not allow to leave the "s=" line empty. Once the offerer has sent the offer, it MUST be prepared to receive media described by that offer. 2.1 Unicast The offer MUST contain zero or more media sections. Zero media sessions implies that the offerer wishes to communicate, but that the streams for the session will be added at a later time through re- INVITEs. If a session description from an offerer contains a media stream which is listed as send (receive) only, it means that the offerer is only willing to send (receive) this stream, not receive (send). Media streams are marked as send-only or receive-only media streams using the SDP "a=sendonly" and "a=recvonly" attributes, respectively. If neither attribute is present, the default is both send and receive (which MAY be explicitly indicated with the "a=sendrecv" attribute). For recvonly and sendrecv streams, the port number and address in the session description indicate where the media stream should be sent to. For send-only RTP streams, the address and port number indicate where RTCP reports are to be sent to. Specifically, RTCP reports are sent to the port number one higher than the number indicated. The IP address and port present in the offer indicate nothing about the source IP address and source port of RTP and RTCP packets that will be sent by the offerer. A port number of zero in the offer indicates that the stream is offered but should never be used. This has no useful semantics in an initial INVITE, but is allowed for reasons of completeness, since the response can contain a zero port indicating a rejected stream (Section 3. Furthermore, existing streams can be terminated by setting the port to zero (Section 4. In general, a port number of zero indicates that the media stream is not wanted. The list of payload types for each media stream conveys two pieces of J.Rosenberg,H.Schulzrinne [Page 3] Internet Draft offer-answer October 26, 2001 information, namely the set of codecs that the offerer is capable of sending and/or receiving (depending on the direction attributes), and the RTP payload type numbers used to identify those codecs. If multiple codecs are listed, it means that the offerer is capable of making use of any of those codecs during the call. In other words, the answerer MAY change codecs in the middle of the call, without sending a SIP message, to make use of any of those listed. For a send-only stream, the offer SHOULD indicate those codecs the offerer is willing to send for this stream. For a receive-only stream, the offer SHOULD indicate those codecs the offerer is willing to receive for this stream. For a send and receive stream, the offer SHOULD indicate those codecs that the offerer is willing to send and receive with. For receive-only streams, the payload type numbers indicate the value of the payload type field in RTP packets the offerer is expecting to receive for that codec. For send-only streams, the payload type numbers indicate the value of the payload type field in RTP packets the offerer is planning to send for that codec type. For send-and- receive streams, the payload type numbers indicate the value of the payload type field the offerer expects to both send and receive. This means that the payload type for a codec is the same in both directions. All media descriptions SHOULD contain "a=rtpmap" mappings from RTP payload types to encodings. If there is no "a=rtpmap", the static payload type table from RFC 1890 [4] is to be used. This allows easier migration away from static payload types. In all cases, the codecs in the m line are listed in order of preference, with the first codec listed being preferred. In this case, preferred means that the recipient of the offer SHOULD use the codec with the highest preference that is acceptable to it. If the ptime attribute is present for a stream, it indicates the desired packetization interval that the offerer would like to receive. If multiple media streams of different types are present, it means that the offerer wishes to use those streams at the same time. A typical case is an audio and video stream as part of a videoconference. If multiple media streams of the same type are present, it means that the offerer wishes to send (and/or receive), multiple streams at the same time. When sending multiple streams of the same type, the source J.Rosenberg,H.Schulzrinne [Page 4] Internet Draft offer-answer October 26, 2001 of the stream (such as the microphone or circuit on a gateway) is sent multiple times, once for each stream. Each stream MAY use different encodings. When receiving multiple streams of the same type, the streams MUST be mixed before playing them out. A typical usage example is a pre-paid calling card application, where the user can enter in a "long pound" at any time during a call to hangup and make a new call on the same card. This requires media from the user to the remote gateway, and to a system that looks for the long pound. There are some codecs, such as the RTP payload format for DTMF tones and digits [5] and comfort noise codecs, which can only encode specific types of media content. When one of these codecs is present in an offered stream that is send-only or send-and-receive, it means that the offerer will send using that codec only when the content of the media stream is of a type that can be encoded with that codec. When the content of the media stream cannot be encoded with that codec, another codec indicated in the m line can be used. If there are no other codecs in the m line, nothing is sent. This is useful for handling the case where a UA would like to send DTMF only, using RFC 2833, to a remote server. This is indicated with a single media line containing only the DTMF codec. 2.2 Multicast Construction of a session description for a multicast offer follows the procedures above, with a few exceptions. The address listed in the c line MUST be a multicast address. It indicates the address that the offerer wishes to receive packets on. The interpretation of send-only and receive-only for multicast media sessions differs from that for unicast sessions. For multicast, send-only means that the recipient of the session description (caller or callee) SHOULD only send media streams to the address and port indicated. Receive-only means that the recipient of the session description SHOULD only receive media on the address and port indicated. 3 Generating the answer The answer to an offered SDP is based on the offered SDP. If the answer is different in any way (different IP addresses, ports, etc.), the origin line MUST be different in the answer, since the answer is generated by a different entity. In that case, the version number in the o line of the answer is unrelated to the version number in the o line of the offer. For each m line in the offer, there MUST be a corresponding m line in J.Rosenberg,H.Schulzrinne [Page 5] Internet Draft offer-answer October 26, 2001 the answer. The answer MUST contain exactly the same number of m lines as the offer. This allows for streams to be matched up based on their order. This implies that if the offer contained zero m lines, the answer MUST contain zero m lines. An offered stream MAY be rejected in the answer, for any reason. The definition of rejected is both neither offerer and answerer MUST NOT generate media (or RTCP packets) for that stream. To reject an offered stream, the port number in the corresponding stream in the answer is set to zero. Any media formats listed are ignored. At least one MUST be present, as specified by SDP. Once the answer has been sent, the answerer MUST be prepared to receive media as described in the answer. 3.1 Unicast If a stream is offered with a unicast address, the answer MUST contain a unicast address. If a stream is offered as sendonly, the corresponding stream MUST be marked as recvonly in the answer. Furthermore, the corresponding stream in the answer MUST contain at least one codec the answerer is willing to receive with from amongst those listed in the offer. The stream MAY indicate additional codecs, not listed in the corresponding stream in the offer, that the answerer is willing to receive with. The connection address and port indicate the address where the answerer wishes to receive RTP (RTCP will be received on the port which is one higher). If a media stream is listed as recvonly in the offer, the answer MUST be marked as sendonly. Furthermore, the corresponding stream in the answer MUST contain at least one codec the answerer is willing to send with from amongst those listed in the offer. The IP address and port indicate the address where the answerer wishes to receive RTCP (RTCP will be received on the port number one higher than the one listed in the SDP). If an offered media stream is listed as sendrecv (or contains no direction attribute, in which case it is sendrecv by default), the corresponding stream in the answer MAY be marked as sendonly, recvonly, or sendrecv. The default is sendrecv. If the stream in the answer is marked as sendonly, it MUST contain at least one codec the answerer is willing to send with from amongst those listed in the offer. The IP address and port indicate the address where the answerer wishes to receive RTCP. If the stream in the answer is marked as recvonly, it MUST contain at least one codec the answerer is willing to receive with from amongst those listed in the offer. J.Rosenberg,H.Schulzrinne [Page 6] Internet Draft offer-answer October 26, 2001 The stream MAY indicate additional codecs, not listed in the corresponding stream in the offer, that the answerer is willing to receive with. The connection address and port in the answer indicate the address where the answerer wishes to receive RTP and RTCP (RTCP will be received on the port number one higher than the one listed in the SDP). If the stream in the answer is marked as sendrecv, it MUST contain at least one codec the answerer is willing to both send and receive with, from amongst those listed in the offer. The stream MAY indicate additional codecs, not listed in the corresponding stream in the offer, that the answerer is willing to receive with. The connection address and port indicate the address where the answerer wishes to receive RTP (RTCP will be received on the port which is one higher). The payload type numbers for a particular codec within a stream MUST be the same in offer and answer. In other words, a different dynamic payload type number for the same codec cannot be used in each direction. In all cases, the codecs in the m line are listed in order of preference, with the first codec listed being preferred. In this case, preferred means that the recipient of the answer SHOULD use the codec with the highest preference that is acceptable to it. The answerer MAY include a ptime attribute for any media stream; this indicates the packetization interval that the answerer would like to receive. There is no requirement that the packetization interval be the same in each direction for a particular stream. Although the answerer MAY list the codecs in their desired order of preference, it is RECOMMENDED that unless there is a specific reason, the answer list codecs in the same relative order they were present in the offer. In other words, if a stream in the offer lists codecs 8, 22 and 48, in that order, and the answerer only supports codecs 8 and 48, it is RECOMMENDED that, if the answerer has no reason to change it, the ordering of codecs in the answer be 8, 48, and not 48, 8. This helps ensure that the same codec is used in both directions. If the answerer has no media formats in common for a particular offered stream, the answerer MUST reject that media stream. If there are no media formats in common for all streams, the entire offered session is rejected. 3.2 Multicast For multicast, receive and send multicast addresses are the same and all parties use the same port numbers to receive media data. If the J.Rosenberg,H.Schulzrinne [Page 7] Internet Draft offer-answer October 26, 2001 session description provided by the offerer is acceptable to the answerer, the answerer can choose not to include a session description or MAY echo the description in the response. An answerer MAY return a session description with some of the payload types removed, or port numbers set to zero (but no other value). This indicates to the offerer that the answerer does not support the given stream or media types which were removed. An answerer MUST NOT change whether a given stream is send-only, receive-only, or send-and- receive. If an answerer does not support multicast at all, it SHOULD reject the session description. 4 Modifying the session At any point during the call, either participant MAY issue a re- INVITE to modify characteristics of the session. It is fundamental to the operation of SIP that the exact same offer-answer procedure defined above is used for re-INVITE. This means that a re-INVITE MAY contain no SDP, so that the 200 OK to the re-INVITE contains the offer. In this case, the offerer MUST offer the same SDP it provided previously. This is to ensure that the offered SDP in the 2xx will be acceptable to the UAC, as there is no way to reject it. The offer in a re-INVITE MAY be identical to the last SDP provided to the other party (which may have been provided in an offer or an answer), or it MAY be different. We refer to the last SDP provided as the "previous SDP". If the offer is the same, the answer MAY be the same as the previous SDP from the answerer, or it MAY be different. If the offered SDP is different from the previous SDP, some constraints are placed on its construction, discussed below. Nearly all aspects of the session can be modified. New streams can be added, existing streams can be deleted, and parameters of existing streams can change. When issuing an offer that modifies the session, the o line of the new SDP MUST be identical to that in the previous SDP, except that the version in the origin field MUST increment from the previous SDP. If the version in the origin line does not increment, the SDP MUST be identical to the SDP with that version number. The answerer MUST be prepared to receive an offer that contains SDP with a version that has not changed; this is effectively a no-op. However, the answerer MUST generate a valid answer (which MAY be the same as the previous SDP from the answerer, or MAY be different), according to the procedures defined in Section 3. If an SDP is offered which is different from the previous SDP, the new SDP MUST have a matching media section for each media section in J.Rosenberg,H.Schulzrinne [Page 8] Internet Draft offer-answer October 26, 2001 the previous SDP. In other words, if the previous SDP had N media lines, the new SDP MUST have at least N media lines. The ith media stream in the previous SDP, counting from the top, matches the ith media stream in the new SDP, counting from the top. This matching is necessary in order for the answerer to determine which stream in the new SDP corresponds to a stream in the previous SDP. Because of these requirements, the number of m lines in a stream never decreases, but only increases. Deleted media streams from a previous SDP MUST NOT be removed from a new SDP. 4.1 Adding a media stream New media streams are created by adding additional media descriptions below the existing ones. New media sections MUST appear below any existing media sections. The rules for formatting this media section are identical to those described in Section 2. When the answerer receives an SDP with more media descriptions than the previous SDP from the offerer, the answerer knows that new media streams are being added. These can be rejected or accepted by placing a matching media description in the answer. The procedures for constructing the new media description in the answer are described in Section 3. 4.2 Removing a media stream Existing media streams are removed by creating a new SDP with the port number for that stream set to zero. Otherwise, the media description SHOULD be formatted identically to the corresponding stream in the previous SDP. A stream that is offered with a port of zero MUST be marked with port zero in the answer. Otherwise, the media description for the removed stream SHOULD be formatted identically to the corresponding stream in the previous SDP. 4.3 Modifying a media stream Nearly all characteristics of a media stream can be modified. The port number for a stream MAY be changed. To do this, the offerer creates a new media description, with the port number in the m line different from the corresponding stream in the previous SDP. If only the port number is to be changed, the rest of the media stream description SHOULD remain unchanged. The offerer MUST be prepared to receive media on both the old and new ports as soon as the offer is sent. The offerer MUST NOT cease listening for media on the old port until media arrives on the new port. At that time, it MAY cease J.Rosenberg,H.Schulzrinne [Page 9] Internet Draft offer-answer October 26, 2001 listening for media on the old port. The corresponding media stream in the answer MAY be the same as the stream in the previous SDP from the answerer, or MAY be different. If the updated stream is accepted by the answerer, the answerer SHOULD begin sending traffic for that stream to the new port immediately. If the answerer changes the port from the previous SDP, it MUST be prepared to receive media on both the old and new ports as soon as the answer is sent. The answerer MUST NOT cease listening for media on the old port until media arrives on the new port. At that time, it MAY cease listening for media on the old port. To change the IP address where media is sent to, the same procedure is followed for changing the port number. The only difference is that the connection line is updated, not the port number. The list of codecs used in the session MAY be changed. To do this, the offerer creates a new media description, with the list of media formats in the m line different from the corresponding stream in the previous SDP. This list MAY include new codecs, and MAY remove codecs present from the previous SDP. When a new codec is used with a dynamic payload type number, it MUST NOT reuse a dynamic payload type number used previously in the session. The stream of RTP packets is only loosely synchronized with the SIP/SDP that controls them. So, if a user agent A sends media with dynamic payload type 10, and then performs a re-INVITE that removes codec 10, and then later another re-INVITE that adds a new codec, reusing dynamic payload type 10, an old packet might arrive at the recipient. It would have no way to know whether payload type 10 indicates the old codec or the new. Rather than attempting to synchronize by passing RTP sequence numbers in SDP (which requires additional state), we simply disallow reuse. The corresponding media stream in the answer is formulated as described in Section 3. If the new list of codecs for a stream changes the choice of which codec is used, the new codec SHOULD be used immediately. That means the offerer MUST be prepared to receive media with a new codec as soon as it sends the offer, and the answerer MUST be prepared to receive media with a new codec as soon as it sends the answer. The media type (audio, video, etc.) for a stream MAY be changed. This is particularly useful for changing between voice and fax in a single stream, which are both separate media types. To do this, the offerer creates a new media description, with a new media type, in place of the description in the previous SDP which is to be changed. The IP address and port for the stream MAY change, or MAY remain the same. However, the list of payload type numbers for the new codecs MUST be different than any used previously for this stream. J.Rosenberg,H.Schulzrinne [Page 10] Internet Draft offer-answer October 26, 2001 The corresponding media stream in the answer is formulated as described in Section 3. Assuming the stream is acceptable, the answerer SHOULD begin sending with the new media type and codecs as soon as it receives the offer. The transport for a stream MAY be changed. The process for doing this is identical to changing the port, excepting the transport is updated, not the port. Any other attributes in a media description MAY be updated in an offer. 4.4 Putting a media stream on hold If a party in a call wants to put the other party "on hold", i.e., request that it temporarily stops sending one or more media streams, a party offers the other an updated SDP. If the stream to be placed on hold was previously a sendrecv media stream, it is placed on hold by marking it as sendonly. If the stream to be placed on hold was previously a recvonly media stream, it is placed on hold by marking it inactive. The inactive direction attribute is specified in RFC 3108 [6]. This means that a stream is placed "on hold" separately in each direction. Each stream is placed "on hold" independently. The recipient of an offer for a stream on-hold SHOULD NOT automatically return an answer with the corresponding stream on hold. An SDP with all streams "on hold" is referred to as held SDP Certain third party call control scenarios do not work when a UA responds to held SDP with held SDP. Typically, when a user "presses" hold, the UA will generate a re- INVITE with all streams in the SDP indicating a direction of sendonly, and it will also locally mute, so that no media is sent to the far end, and no media is played out. RFC2543 specified that placing a user on hold was accomplished by setting the connection address to 0.0.0.0. This has been deprecated, since it doesn't allow for RTCP to be used with held streams, and breaks with connection oriented media. However, a UA MUST be capable of receiving SDP with a connection address of 0.0.0.0, in which case it means that neither RTP nor RTCP should be sent to the peer. 5 Example J.Rosenberg,H.Schulzrinne [Page 11] Internet Draft offer-answer October 26, 2001 For example, assume that the caller Alice has included the following description in her INVITE request. It includes a bidirectional audio stream and two bidirectional video streams, using H.261 (payload type 31) and MPEG (payload type 32). The offered SDP is: v=0 o=alice 2890844526 2890844526 IN IP4 host.anywhere.com s=New board design e=alice@foo.org t=0 0 c=IN IP4 host.anywhere.com m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 m=video 53000 RTP/AVP 32 a=rtpmap:32 MPV/90000 The callee, Bob, does not want to receive or send the first video stream, so it returns the media description below as the answer: v=0 o=bob 2890844730 2890844730 IN IP4 host.example.com s=New board design e=bob@bar.com t=0 0 c=IN IP4 host.example.com m=audio 47920 RTP/AVP 0 1 a=rtpmap:0 PCMU/8000 m=video 0 RTP/AVP 31 m=video 53000 RTP/AVP 32 a=rtpmap:32 MPV/90000 At some point later, Bob decides to change the port where he will receive the audio stream (from 47920 to 6400), and at the same time, add an additional audio stream as receive only, using the RTP payload format for events. Bob offers the following SDP in the INVITE: v=0 J.Rosenberg,H.Schulzrinne [Page 12] Internet Draft offer-answer October 26, 2001 o=bob 2890844730 2890844731 IN IP4 host.example.com s=New board design e=bob@bar.com t=0 0 c=IN IP4 host.example.com m=audio 6400 RTP/AVP 0 1 a=rtpmap:0 PCMU/8000 m=video 0 RTP/AVP 31 m=video 53000 RTP/AVP 32 a=rtpmap:32 MPV/90000 m=audio 8864 RTP/AVP 110 a=rtpmap:110 telephone-events a=recvonly Alice accepts the additional media stream, and so generates the following answer: v=0 o=alice 2890844526 2890844527 IN IP4 host.anywhere.com s=New board design e=alice@foo.org t=0 0 c=IN IP4 host.anywhere.com m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 m=video 53000 RTP/AVP 32 a=rtpmap:32 MPV/90000 m=audio 4520 RTP/AVP 110 a=rtpmap:110 telephone-events a=sendonly 6 Author's Addresses Jonathan Rosenberg dynamicsoft 72 Eagle Rock Avenue First Floor East Hanover, NJ 07936 J.Rosenberg,H.Schulzrinne [Page 13] Internet Draft offer-answer October 26, 2001 email: jdrosen@dynamicsoft.com Henning Schulzrinne Dept. of Computer Science Columbia University 1214 Amsterdam Avenue New York, NY 10027 USA email: schulzrinne@cs.columbia.edu 7 Bibliography [1] M. Handley and V. Jacobson, "SDP: session description protocol," Request for Comments 2327, Internet Engineering Task Force, Apr. 1998. [2] M. Handley, C. Perkins, and E. Whelan, "Session announcement protocol," Request for Comments 2974, Internet Engineering Task Force, Oct. 2000. [3] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: Session initiation protocol," Internet Draft, Internet Engineering Task Force, Nov. 2000. Work in progress. [4] H. Schulzrinne, "RTP profile for audio and video conferences with minimal control," Request for Comments 1890, Internet Engineering Task Force, Jan. 1996. [5] H. Schulzrinne and S. Petrack, "RTP payload for DTMF digits, telephony tones and telephony signals," Request for Comments 2833, Internet Engineering Task Force, May 2000. [6] R. Kumar and M. Mostafa, "Conventions for the use of the session description protocol (SDP) for ATM bearer connections," Request for Comments 3108, Internet Engineering Task Force, May 2001. Table of Contents 1 Introduction ........................................ 1 J.Rosenberg,H.Schulzrinne [Page 14] Internet Draft offer-answer October 26, 2001 2 Generating the initial offer ........................ 2 2.1 Unicast ............................................. 3 2.2 Multicast ........................................... 5 3 Generating the answer ............................... 5 3.1 Unicast ............................................. 6 3.2 Multicast ........................................... 7 4 Modifying the session ............................... 8 4.1 Adding a media stream ............................... 9 4.2 Removing a media stream ............................. 9 4.3 Modifying a media stream ............................ 9 4.4 Putting a media stream on hold ...................... 11 5 Example ............................................. 11 6 Author's Addresses .................................. 13 7 Bibliography ........................................ 14 J.Rosenberg,H.Schulzrinne [Page 15]