<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>20816</bug_id>
          
          <creation_ts>2013-01-29 18:17:46 +0000</creation_ts>
          <short_desc>&quot;Hold&quot; unspecified</short_desc>
          <delta_ts>2014-12-15 10:39:39 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebRTC Working Group</product>
          <component>WebRTC API</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows NT</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matthew Kaufman">matthew.kaufman</reporter>
          <assigned_to name="Justin Uberti">juberti</assigned_to>
          <cc>harald</cc>
    
    <cc>ibc</cc>
    
    <cc>public-webrtc</cc>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>82298</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Kaufman">matthew.kaufman</who>
    <bug_when>2013-01-29 18:17:46 +0000</bug_when>
    <thetext>The WebRTC draft and its normative references do not define a mechanism for applications for placing a session on hold.   Similarly, no mechanism is defined for receivers to use in requesting that a sender stop the transmission of a specific stream for the purposes of muting that stream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85943</commentid>
    <comment_count>1</comment_count>
    <who name="Iñaki Baz Castillo">ibc</who>
    <bug_when>2013-04-11 11:25:26 +0000</bug_when>
    <thetext>Something is needed, otherwise a simple hold/unhold process becomes really hard.

Let&apos;s suppose an established audio/video session between Alice and Bob using SIP/XMPP over HTTP/WebSocket. Alice wants to put Bob on hold.

1) Alice mutes its local streams.

2) Alice gets the last SDP sent to Bob and *mangles* it by adding &quot;a:sendonly&quot; within the audio and video &quot;m&quot; sections.

3) Alice sends a re-INVITE with the modified SDP.

4) Bob receives it and updates its PeerConnection with it.

5) Bob (optionally) parses/searches in the SDP from Alice for &quot;a=sendonly&quot; to known whether Alice is putting him on hold and notify it in the web somehow.

6) If so, Bob retrieves his new SDP and manually adds &quot;a=recvonly&quot; or &quot;a=inactive&quot;, and sends it to Alice.

7) Alice sets the received SDP as the remote SDP in the existing PC.

This becomes really complex and manual, even more when we have to *manuall* mangle and parse an SDP.

I strongly expect that, given that SDP is the &quot;WebRTC information exchange unit&quot; it should offer some kind of API to deal with hold/unhold SDP features. Otherwise the usage of SDP seems a bad choice (IMHO).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86391</commentid>
    <comment_count>2</comment_count>
    <who name="Harald Alvestrand">harald</who>
    <bug_when>2013-04-19 15:10:28 +0000</bug_when>
    <thetext>From Inaki Baz Castillo, on the list:
-----------------------------------
&quot;Putting a peer on hold&quot; means:

1) Muting my local streams.
2) And tell the peer about it.
3) And ask the remote not to send media to me.

or:

1) Ask the remote not to send media to me (since I will stop rendering
it right now).
2) but I could send media to the remote.
-------------------------------------------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86393</commentid>
    <comment_count>3</comment_count>
    <who name="Iñaki Baz Castillo">ibc</who>
    <bug_when>2013-04-19 15:59:27 +0000</bug_when>
    <thetext>By Randell Jesus in public-webrtc maillist:

--------------------
Let&apos;s avoid the term &quot;hold&quot;. We need:

1) Mute (on a track level)
(optionally) Mute on a stream level (Mute all tracks)
(where &quot;Mute&quot; means replace with silence/black)

2) Replace track with other media (muzak, slate, etc)

3) change directionality of a stream
     sendonly, sendrecv, recvonly, inactive

4) notification of directionality changes

From those, an application can compose whatever they want.
-------------------

IMHO notifications in 4) could be replaced with JS attributes in mediaStream instances (this is: instead of firing events let the developer inspect those mediaStream attributes when a new SDP is received and passed to the local PeerConnection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114335</commentid>
    <comment_count>4</comment_count>
    <who name="Harald Alvestrand">harald</who>
    <bug_when>2014-10-31 16:07:04 +0000</bug_when>
    <thetext>Muting a track (ceasing to send data) is a local event, and will be covered by the RTPSender proposal.

Using SDP to cause the other party to cease sending data isn&apos;t clear about how it is done today, or should be done; this can likely be done in the RTPReceiver API, but this is a post-1.0 feature.

Bug will be marked as &quot;later&quot; once RTPSender muting lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116327</commentid>
    <comment_count>5</comment_count>
    <who name="Dominique Hazael-Massieux">dom</who>
    <bug_when>2014-12-15 10:39:39 +0000</bug_when>
    <thetext>WebRTC API bugs have been moved to github issues: https://github.com/w3c/webrtc-pc/issues

Please subscribe to the issues you want to keep watching.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>