From b2554a0be361505641c1ea09dff397761684a771 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Tue, 14 Apr 2026 09:56:59 -0400 Subject: [PATCH] MT#55283 move inject flags into struct Change-Id: Ib7b42091db3a2d8d20fd04a7d1db38c4f8e3abed --- daemon/call_flags.c | 10 ++++++++++ daemon/call_interfaces.c | 32 +++++++++++--------------------- include/call_flags.h | 2 ++ 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/daemon/call_flags.c b/daemon/call_flags.c index 6db436265..dea662fbe 100644 --- a/daemon/call_flags.c +++ b/daemon/call_flags.c @@ -1910,6 +1910,16 @@ void call_ng_main_flags(const ng_parser_t *parser, str *key, parser_arg value, h STR_FMT(&s)); } break; + case CSH_LOOKUP("source-tag"): + case CSH_LOOKUP("source tag"): + out->source_tag = s; + break; + case CSH_LOOKUP("source-call-id"): + case CSH_LOOKUP("source call id"): + case CSH_LOOKUP("source-call-ID"): + case CSH_LOOKUP("source call ID"): + out->source_call_id = s; + break; case CSH_LOOKUP("start-pos"): case CSH_LOOKUP("start pos"): out->start_pos = parser->get_int_str(value, out->start_pos); diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 22c476186..ea05c07f4 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -1244,12 +1244,10 @@ static const char *call_recording_common_ng(ng_command_ctx_t *ctx, { g_auto(sdp_ng_flags) flags; g_autoptr(call_t) call = NULL; - parser_arg input = ctx->req; - const ng_parser_t *parser = ctx->parser_ctx.parser; call_ng_process_flags(&flags, ctx); - if (!parser->dict_get_str(input, "call-id", &flags.call_id)) + if (!flags.call_id.len) return "No call-id in message"; call = call_get(&flags.call_id); if (!call) @@ -1257,13 +1255,11 @@ static const char *call_recording_common_ng(ng_command_ctx_t *ctx, struct call_monologue *ml = NULL; - if (parser->dict_get_str(input, "from-tag", &flags.from_tag)) { - if (flags.from_tag.s) { - ml = call_get_monologue(call, &flags.from_tag); - if (!ml) - ilog(LOG_WARN, "Given from-tag " STR_FORMAT_M " not found", - STR_FMT_M(&flags.from_tag)); - } + if (flags.from_tag.len) { + ml = call_get_monologue(call, &flags.from_tag); + if (!ml) + ilog(LOG_WARN, "Given from-tag " STR_FORMAT_M " not found", + STR_FMT_M(&flags.from_tag)); } if (ml) @@ -2335,29 +2331,23 @@ const char *call_unsubscribe_ng(ng_command_ctx_t *ctx) { static const char *call_inject_ng(ng_command_ctx_t *ctx, bool start) { g_auto(sdp_ng_flags) flags; - parser_arg input = ctx->req; - const ng_parser_t *parser = ctx->parser_ctx.parser; call_ng_process_flags(&flags, ctx); - str source_call_id = STR_NULL; - str source_tag = STR_NULL; - if (!flags.call_id.s) return "No call-id in message"; if (!flags.to_tag.s) return "No to-tag in message"; - parser->dict_get_str(input, "source-tag", &source_tag); - if (!source_tag.s) + if (!flags.source_tag.len) return "No source-tag in message"; - if (!parser->dict_get_str(input, "source-call-id", &source_call_id)) - source_call_id = flags.call_id; + if (!flags.source_call_id.len) + flags.source_call_id = flags.call_id; g_auto(str_q) call_ids = TYPED_GQUEUE_INIT; t_queue_push_tail(&call_ids, &flags.call_id); - t_queue_push_tail(&call_ids, &source_call_id); + t_queue_push_tail(&call_ids, &flags.source_call_id); g_auto(call_q) calls = calls_get(&call_ids); if (!calls.length) @@ -2371,7 +2361,7 @@ static const char *call_inject_ng(ng_command_ctx_t *ctx, bool start) { if (!dst_ml) return "To-tag not found"; - struct call_monologue *src_ml = call_get_monologue(call, &source_tag); + struct call_monologue *src_ml = call_get_monologue(call, &flags.source_tag); if (!src_ml) return "Source-tag not found"; diff --git a/include/call_flags.h b/include/call_flags.h index cdc6c1d95..c93e08a0b 100644 --- a/include/call_flags.h +++ b/include/call_flags.h @@ -57,6 +57,8 @@ struct sdp_ng_flags { str from_tag; str to_tag; str via_branch; + str source_tag; + str source_call_id; str sdp; str received_from_family; str received_from_address;