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
changes/17/27917/1
Richard Fuchs 7 years ago
parent 9566c05364
commit 34c75d6b08

@ -1486,12 +1486,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";
@ -1514,6 +1509,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;
}

Loading…
Cancel
Save