@ -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 ) ;
}
}
}
}