X-Git-Url: https://git.toastfreeware.priv.at/toast/stream2beamer.git/blobdiff_plain/d1b00874c77741642f5266cfa3221056964c0ba4..21bdceeeabb9466cccd6a74fffd4875663b6e93b:/laplace_client.py diff --git a/laplace_client.py b/laplace_client.py index 6ec2bb8..1b9c8f0 100755 --- a/laplace_client.py +++ b/laplace_client.py @@ -31,6 +31,7 @@ class WebRTCClient: self.ssl_context.verify_mode = ssl.CERT_NONE self.websocket = None self.session_id = None + self.userfragments = [] def send_sdp_offer(self, offer): text = offer.sdp.as_text() @@ -57,6 +58,9 @@ class WebRTCClient: promise.interrupt() self.send_sdp_offer(offer) + sdp = offer.sdp + self.userfragments = [sdp.get_media(i).get_attribute_val('ice-ufrag') for i in range(sdp.medias_len())] + def on_negotiation_needed(self, element): log.info('on_negotiation_needed') promise = Gst.Promise.new_with_change_func(self.on_offer_created, element, None) @@ -68,8 +72,9 @@ class WebRTCClient: 'Type': 'addCalleeIceCandidate', 'Value': json.dumps({ "candidate": candidate, - "sdpMid": "0", + "sdpMid": f"{mlineindex}", "sdpMLineIndex": mlineindex, + "usernameFragment": self.userfragments[mlineindex], }) }) log.info(f'send_ice_candidate_message with {icemsg}')