diff --git a/samples/js/apprtc/apprtc.py b/samples/js/apprtc/apprtc.py index 30dfb46d4a..8c5d3eafff 100644 --- a/samples/js/apprtc/apprtc.py +++ b/samples/js/apprtc/apprtc.py @@ -144,7 +144,7 @@ def make_media_stream_constraints(audio, video): logging.info('Applying media constraints: ' + str(stream_constraints)) return stream_constraints -def make_pc_constraints(compat): +def make_pc_constraints(compat, dscp): constraints = { 'optional': [] } # For interop with FireFox. Enable DTLS in peerConnection ctor. if compat.lower() == 'true': @@ -153,6 +153,11 @@ def make_pc_constraints(compat): # of compat is false for loopback mode. else: constraints['optional'].append({'DtlsSrtpKeyAgreement': False}) + + # DSCP for QoS support + if dscp.lower() == 'true': + constraints['optional'].append({'googDscp': True}) + return constraints def make_offer_constraints(): @@ -377,6 +382,9 @@ class MainPage(webapp2.RequestHandler): # Set compat to false as DTLS does not work for loopback. compat = 'false' + # Set DSCP for QoS support in WebRTC + dscp = self.request.get('dscp') + # token_timeout for channel creation, default 30min, max 2 days, min 3min. token_timeout = self.request.get_range('tt', min_value = 3, @@ -428,7 +436,7 @@ class MainPage(webapp2.RequestHandler): turn_url = turn_url + 'turn?' + 'username=' + user + '&key=4080218913' token = create_channel(room, user, token_timeout) pc_config = make_pc_config(stun_server, turn_server, ts_pwd) - pc_constraints = make_pc_constraints(compat) + pc_constraints = make_pc_constraints(compat, dscp) offer_constraints = make_offer_constraints() media_constraints = make_media_stream_constraints(audio, video) template_values = {'error_messages': error_messages,