|
|
|
@ -3994,6 +3994,7 @@ static void __call_cleanup(call_t *c) { |
|
|
|
ps->selected_sfd = NULL; |
|
|
|
t_queue_clear(&ps->sfds); |
|
|
|
crypto_cleanup(&ps->crypto); |
|
|
|
mutex_destroy(&ps->lock); |
|
|
|
|
|
|
|
t_queue_clear_full(&ps->rtp_sinks, free_sink_handler); |
|
|
|
t_queue_clear_full(&ps->rtcp_sinks, free_sink_handler); |
|
|
|
@ -4006,6 +4007,7 @@ static void __call_cleanup(call_t *c) { |
|
|
|
media_stop(md); |
|
|
|
t38_gateway_put(&md->t38_gateway); |
|
|
|
audio_player_free(md); |
|
|
|
mutex_destroy(&md->dtmf_lock); |
|
|
|
} |
|
|
|
|
|
|
|
for (__auto_type l = c->monologues.head; l; l = l->next) { |
|
|
|
@ -4025,6 +4027,7 @@ static void __call_cleanup(call_t *c) { |
|
|
|
} |
|
|
|
|
|
|
|
recording_finish(c, false); |
|
|
|
rwlock_destroy(&c->master_lock); |
|
|
|
} |
|
|
|
|
|
|
|
// rtpe_callhash_lock must be held |
|
|
|
|