|
|
|
|
@ -1941,9 +1941,11 @@ bool sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_
|
|
|
|
|
flags->session_email = session->email;
|
|
|
|
|
flags->session_phone = session->phone;
|
|
|
|
|
|
|
|
|
|
attr = attr_get_by_id(&session->attributes, ATTR_GROUP);
|
|
|
|
|
if (attr)
|
|
|
|
|
flags->session_group = attr->strs.value;
|
|
|
|
|
__auto_type attrs = attr_list_get_by_id(&session->attributes, ATTR_GROUP);
|
|
|
|
|
for (__auto_type ll = attrs ? attrs->head : NULL; ll; ll = ll->next) {
|
|
|
|
|
attr = ll->data;
|
|
|
|
|
t_queue_push_tail(&flags->groups_other, &attr->strs.value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (rtpe_config.moh_prevent_double_hold) {
|
|
|
|
|
attr = attr_get_by_id(&session->attributes, ATTR_MOH_ATTR_NAME);
|
|
|
|
|
@ -2009,7 +2011,7 @@ bool sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_
|
|
|
|
|
goto error;
|
|
|
|
|
|
|
|
|
|
/* a=crypto */
|
|
|
|
|
attributes_q *attrs = attr_list_get_by_id(&media->attributes, ATTR_CRYPTO);
|
|
|
|
|
attrs = attr_list_get_by_id(&media->attributes, ATTR_CRYPTO);
|
|
|
|
|
for (__auto_type ll = attrs ? attrs->head : NULL; ll; ll = ll->next) {
|
|
|
|
|
attr = ll->data;
|
|
|
|
|
struct crypto_params_sdes *cps = g_new0(__typeof(*cps), 1);
|
|
|
|
|
@ -3036,8 +3038,10 @@ static void sdp_out_add_other(GString *out, struct call_monologue *monologue,
|
|
|
|
|
append_null_attr_to_gstring(out, "ice-lite", flags, media->type_id);
|
|
|
|
|
|
|
|
|
|
/* group */
|
|
|
|
|
if (source_ml && source_ml->sdp_session_group.len && flags->ice_option == ICE_FORCE_RELAY)
|
|
|
|
|
append_attr_to_gstring(out, "group", &source_ml->sdp_session_group, flags, media->type_id);
|
|
|
|
|
if (source_ml && flags->ice_option == ICE_FORCE_RELAY) {
|
|
|
|
|
for (__auto_type ll = source_ml->groups_other.head; ll; ll = ll->next)
|
|
|
|
|
append_attr_to_gstring(out, "group", ll->data, flags, media->type_id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* carry other session level a= attributes to the outgoing SDP */
|
|
|
|
|
monologue->sdp_attr_print(out, monologue, flags);
|
|
|
|
|
|