MT#55283 add new connect options

Change-Id: Ic175e5d7cd6138e6e659b982265701aebf65235e
pull/2090/head
Richard Fuchs 1 month ago
parent 812bf1a8c4
commit 61c4cf8052

@ -4224,7 +4224,7 @@ struct media_subscription *__add_media_subscription(struct call_media *which, st
* Returns B's subscription to A, i.e. the same as
* call_get_media_subscription(B->media_subscribers_ht, A) would return.
*/
static struct media_subscription *__subscribe_medias_both_ways(struct call_media * a, struct call_media * b,
static struct media_subscription *__subscribe_medias_both_ways(struct call_media *a, struct call_media *b,
bool is_offer, medias_q *medias)
{
/* retrieve previous subscriptions to retain attributes */
@ -4873,7 +4873,21 @@ void dialogue_connect(struct call_monologue *src_ml, struct call_monologue *dst_
g_auto(medias_q) medias = TYPED_GQUEUE_INIT;
__subscribe_medias_both_ways(src_media, dst_media, false, &medias);
if (!flags->directional)
__subscribe_medias_both_ways(src_media, dst_media, false, &medias);
else {
__auto_type ms = call_get_media_subscription(dst_media->media_subscriptions_ht,
src_media);
if (!ms)
__add_media_subscription(dst_media, src_media, &(struct sink_attrs) { });
if (flags->bidirectional) {
ms = call_get_media_subscription(src_media->media_subscriptions_ht,
dst_media);
if (!ms)
__add_media_subscription(src_media, dst_media, &(struct sink_attrs) { });
}
}
__medias_unconfirm(&medias, "connect");
codec_update_medias_handlers(&medias);

Loading…
Cancel
Save