plugin XEP-0167: fix ICE credentials handling.
This commit is contained in:
parent
2fce8ba7d6
commit
cd8516f0bb
2 changed files with 10 additions and 12 deletions
|
|
@ -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", {}),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
Loading…
Reference in a new issue