MT#57719 cdr: Use media subscriptions in `cdr_update_entry()`

Start using the media subscriptions model
(based on newly introduced `media_subscription` objects)
in scope of `cdr_update_entry()`.

Change-Id: I0618a1ee51ec8ea208839da2de46781242287a12
pull/1722/head
Donat Zenichev 2 years ago
parent 91f16a8221
commit 530a569d1e

@ -42,7 +42,7 @@ void cdr_update_entry(struct call* c) {
int cdrlinecnt = 0;
AUTO_CLEANUP_INIT(GString *cdr, __g_string_free, g_string_new(""));
struct call_media *md;
GList *k, *o;
GList *o;
const struct rtp_payload_type *rtp_pt;
struct packet_stream *ps=0;
@ -82,11 +82,21 @@ void cdr_update_entry(struct call* c) {
cdrlinecnt, ml->tag.s,
cdrlinecnt, get_tag_type_text(ml->tagtype));
for (k = ml->subscriptions.head; k; k = k->next) {
struct call_subscription *cs = k->data;
g_string_append_printf(cdr,
"ml%i_remote_tag=%s, ",
cdrlinecnt, cs->monologue->tag.s);
AUTO_CLEANUP(GQueue mls, g_queue_clear) = G_QUEUE_INIT; /* to avoid duplications */
for (int i = 0; i < ml->medias->len; i++)
{
struct call_media * media = ml->medias->pdata[i];
if (!media)
continue;
for (GList * sub = media->media_subscriptions.head; sub; sub = sub->next)
{
struct media_subscription * ms = sub->data;
if (!g_queue_find(&mls, ms->monologue)) {
g_string_append_printf(cdr, "ml%i_remote_tag=%s, ", cdrlinecnt, ms->monologue->tag.s);
g_queue_push_tail(&mls, ms->monologue);
}
}
}
}

Loading…
Cancel
Save