From 9eea6b1fc47532562b942f3991421c35a27343de Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 8 Mar 2019 15:53:32 -0500 Subject: [PATCH] Reverse participant matching logic The from-tag may have been added to the message automatically, so we should first check if any other flags are present, and use it only if nothing else was found Change-Id: Iec95d56812c31185ecd1171d01c922e7af0f5dd4 --- daemon/call_interfaces.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 672fa2619..e0e646a9b 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -1487,12 +1487,7 @@ static const char *media_block_match(struct call **call, struct call_monologue * return "Unknown call-id"; // directional block? - if (bencode_dictionary_get_str(input, "from-tag", &s)) { - *monologue = call_get_mono_dialogue(*call, &s, NULL, NULL); - if (!*monologue) - return "From-tag given, but no such tag exists"; - } - else if (bencode_dictionary_get_str(input, "address", &s)) { + if (bencode_dictionary_get_str(input, "address", &s)) { sockaddr_t addr; if (sockaddr_parse_any_str(&addr, &s)) return "Failed to parse network address"; @@ -1515,6 +1510,11 @@ static const char *media_block_match(struct call **call, struct call_monologue * found: ; } + else if (bencode_dictionary_get_str(input, "from-tag", &s)) { + *monologue = call_get_mono_dialogue(*call, &s, NULL, NULL); + if (!*monologue) + return "From-tag given, but no such tag exists"; + } return NULL; }