|
|
|
@ -2605,6 +2605,13 @@ static void __update_init_subscribers(struct call_media *media, struct stream_pa |
|
|
|
/* we are now ready to fire up ICE if so desired and requested */ |
|
|
|
ice_update(media->ice_agent, sp, opmode == OP_OFFER); /* sp == NULL: update in case rtcp-mux changed */ |
|
|
|
|
|
|
|
if (sp) { |
|
|
|
// take over and store received ICE candidates |
|
|
|
ice_candidates_free(&media->ice_candidates); |
|
|
|
media->ice_candidates = sp->ice_candidates; |
|
|
|
t_queue_init(&sp->ice_candidates); |
|
|
|
} |
|
|
|
|
|
|
|
recording_setup_media(media); |
|
|
|
t38_gateway_start(media->t38_gateway, flags ? flags->codec_set : str_case_value_ht_null()); |
|
|
|
audio_player_start(media); |
|
|
|
@ -4022,6 +4029,7 @@ void call_media_free(struct call_media **mdp) { |
|
|
|
t_hash_table_destroy(md->media_subscriptions_ht); |
|
|
|
t_queue_clear_full(&md->media_subscribers, media_subscription_free); |
|
|
|
t_queue_clear_full(&md->media_subscriptions, media_subscription_free); |
|
|
|
ice_candidates_free(&md->ice_candidates); |
|
|
|
mutex_destroy(&md->dtmf_lock); |
|
|
|
g_slice_free1(sizeof(*md), md); |
|
|
|
*mdp = NULL; |
|
|
|
|