|
|
|
@ -2638,9 +2638,9 @@ static void __call_monologue_init_from_flags(struct call_monologue *ml, struct c
|
|
|
|
|
: call->media_rec_slots;
|
|
|
|
|
|
|
|
|
|
// consume session attributes
|
|
|
|
|
t_queue_clear_full(&ml->sdp_attributes, sdp_attr_free);
|
|
|
|
|
ml->sdp_attributes = flags->session_attributes;
|
|
|
|
|
t_queue_init(&flags->session_attributes);
|
|
|
|
|
t_queue_clear_full(&ml->generic_attributes, sdp_attr_free);
|
|
|
|
|
ml->generic_attributes = flags->generic_attributes;
|
|
|
|
|
t_queue_init(&flags->generic_attributes);
|
|
|
|
|
|
|
|
|
|
/* consume sdp session parts */
|
|
|
|
|
{
|
|
|
|
@ -2769,7 +2769,6 @@ static void __media_init_from_flags(struct call_media *other_media, struct call_
|
|
|
|
|
struct stream_params *sp, sdp_ng_flags *flags)
|
|
|
|
|
{
|
|
|
|
|
call_t *call = other_media->call;
|
|
|
|
|
__auto_type additional_attributes = &sp->attributes; /* attributes in str format */
|
|
|
|
|
|
|
|
|
|
if (flags->opmode == OP_OFFER && flags->reset) {
|
|
|
|
|
if (media)
|
|
|
|
@ -2855,9 +2854,9 @@ static void __media_init_from_flags(struct call_media *other_media, struct call_
|
|
|
|
|
* extmap
|
|
|
|
|
* other (unknown type)
|
|
|
|
|
*/
|
|
|
|
|
t_queue_clear_full(&other_media->sdp_attributes, sdp_attr_free);
|
|
|
|
|
other_media->sdp_attributes = *additional_attributes;
|
|
|
|
|
t_queue_init(additional_attributes);
|
|
|
|
|
t_queue_clear_full(&other_media->generic_attributes, sdp_attr_free);
|
|
|
|
|
other_media->generic_attributes = sp->generic_attributes;
|
|
|
|
|
t_queue_init(&sp->generic_attributes);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// codec and RTP payload types handling
|
|
|
|
@ -4014,7 +4013,7 @@ void call_media_free(struct call_media **mdp) {
|
|
|
|
|
codec_handlers_free(md);
|
|
|
|
|
codec_handler_free(&md->t38_handler);
|
|
|
|
|
t38_gateway_put(&md->t38_gateway);
|
|
|
|
|
t_queue_clear_full(&md->sdp_attributes, sdp_attr_free);
|
|
|
|
|
t_queue_clear_full(&md->generic_attributes, sdp_attr_free);
|
|
|
|
|
t_queue_clear_full(&md->dtmf_recv, dtmf_event_free);
|
|
|
|
|
t_queue_clear_full(&md->dtmf_send, dtmf_event_free);
|
|
|
|
|
t_hash_table_destroy(md->media_subscribers_ht);
|
|
|
|
@ -4039,7 +4038,7 @@ void __monologue_free(struct call_monologue *m) {
|
|
|
|
|
if (m->session_last_sdp_orig)
|
|
|
|
|
sdp_orig_free(m->session_last_sdp_orig);
|
|
|
|
|
sdp_sessions_clear(&m->last_in_sdp_parsed);
|
|
|
|
|
t_queue_clear_full(&m->sdp_attributes, sdp_attr_free);
|
|
|
|
|
t_queue_clear_full(&m->generic_attributes, sdp_attr_free);
|
|
|
|
|
sdp_streams_clear(&m->last_in_sdp_streams);
|
|
|
|
|
g_slice_free1(sizeof(*m), m);
|
|
|
|
|
}
|
|
|
|
|