From 027768f425c58aef764036477833b82dacaf2ba8 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 13 Feb 2026 10:37:16 -0400 Subject: [PATCH] MT#55283 combine sub-ans logic Change-Id: I787d3782cba07410d4a6c7ea8640ab98bcb5c6d2 --- daemon/call.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index c9f83abc9..708b91d53 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -4538,26 +4538,15 @@ int monologue_subscribe_answer(struct call_monologue *dst_ml, sdp_ng_flags *flag MEDIA_SET(dst_media, INITIALIZED); update_init_subscribers(dst_media, sp, flags, flags->opmode); + update_init_subscribers(src_media, NULL, NULL, flags->opmode); + __media_unconfirm(dst_media, "subscribe answer event"); - } + __media_unconfirm(src_media, "subscribe answer event"); - /* TODO: move inside the cycle above, to reduce iterations amount */ - g_auto(GQueue) mls = G_QUEUE_INIT; /* to avoid duplications */ - for (int i = 0; i < dst_ml->medias->len; i++) - { - struct call_media * dst_media = dst_ml->medias->pdata[i]; - if (!dst_media) - continue; + sdp_sp_move(&dst_media->sp, sp); - /* TODO: probably we should take care about subscribers as well? */ - IQUEUE_FOREACH(&dst_media->media_subscriptions, ms) { - if (!g_queue_find(&mls, ms->monologue)) { - media_update_transcoding_flag(ms->media); - update_init_subscribers(ms->media, NULL, NULL, flags->opmode); - __media_unconfirm(ms->media, "subscribe answer event"); - g_queue_push_tail(&mls, ms->monologue); - } - } + media_update_transcoding_flag(dst_media); + media_update_transcoding_flag(src_media); } monologue_media_start(dst_ml);