diff --git a/libervia/backend/plugins/plugin_xep_0167/__init__.py b/libervia/backend/plugins/plugin_xep_0167/__init__.py index 8dbc154c..954e272c 100644 --- a/libervia/backend/plugins/plugin_xep_0167/__init__.py +++ b/libervia/backend/plugins/plugin_xep_0167/__init__.py @@ -180,15 +180,15 @@ class XEP_0167(BaseApplicationHandler): continue to_delete.add(media) media_type, media_data = media, data - call_data[media_type] = media_data["application_data"] + media_type_data = call_data[media_type] = media_data["application_data"] transport_data = media_data["transport_data"] try: - call_data[media_type]["fingerprint"] = transport_data["fingerprint"] + media_type_data["fingerprint"] = transport_data["fingerprint"] except KeyError: log.warning("fingerprint is missing") pass try: - call_data[media_type]["id"] = media_data["id"] + media_type_data["id"] = media_data["id"] except KeyError: log.warning(f"no media ID found for {media_type}: {media_data}") # FIXME: the 2 values below are linked to XEP-0343, they should be added @@ -198,11 +198,12 @@ class XEP_0167(BaseApplicationHandler): if value is not None: metadata[key] = value try: - call_data[media_type]["ice-candidates"] = transport_data.get( + media_type_data["ice-candidates"] = transport_data.get( "candidates", [] ) - metadata["ice-ufrag"] = transport_data["ufrag"] - metadata["ice-pwd"] = transport_data["pwd"] + for data in ("ufrag", "pwd"): + key = f"ice-{data}" + media_type_data[key] = metadata[key] = transport_data[data] except KeyError: log.warning("ICE data are missing from SDP") continue @@ -233,8 +234,8 @@ class XEP_0167(BaseApplicationHandler): "app_kwargs": {"media": media, "media_data": media_data}, "transport_data": { "local_ice_data": { - "ufrag": metadata["ice-ufrag"], - "pwd": metadata["ice-pwd"], + "ufrag": media_data.get("ice-ufrag") or metadata["ice-ufrag"], + "pwd": media_data.get("ice-pwd") or metadata["ice-pwd"], "candidates": media_data.pop("ice-candidates"), "fingerprint": media_data.pop("fingerprint", {}), } diff --git a/libervia/backend/plugins/plugin_xep_0167/mapping.py b/libervia/backend/plugins/plugin_xep_0167/mapping.py index 2a846aae..8c9b910c 100644 --- a/libervia/backend/plugins/plugin_xep_0167/mapping.py +++ b/libervia/backend/plugins/plugin_xep_0167/mapping.py @@ -111,11 +111,8 @@ def generate_sdp_from_session(session: dict, local: bool = False, port: int = 9) sdp_lines, triggers_no_cancel=True, ) - content_names = sorted(contents) - for content_name, content_data in [ - (n, contents[n]) for n in content_names - ]: # contents.items(): + for content_name, content_data in contents.items(): app_data_key = "local_data" if local else "peer_data" application_data = content_data["application_data"] media_data = application_data[app_data_key]