|
|
|
@ -1142,12 +1142,17 @@ static void __sdp_ice(struct stream_params *sp, struct sdp_media *media) { |
|
|
|
GQueue *q; |
|
|
|
GList *ql; |
|
|
|
|
|
|
|
q = attr_list_get_by_id(&media->attributes, ATTR_CANDIDATE); |
|
|
|
if (!q) |
|
|
|
attr = attr_get_by_id_m_s(media, ATTR_ICE_UFRAG); |
|
|
|
if (!attr) |
|
|
|
return; |
|
|
|
sp->ice_ufrag = attr->value; |
|
|
|
|
|
|
|
SP_SET(sp, ICE); |
|
|
|
|
|
|
|
q = attr_list_get_by_id(&media->attributes, ATTR_CANDIDATE); |
|
|
|
if (!q) |
|
|
|
goto no_cand; |
|
|
|
|
|
|
|
for (ql = q->head; ql; ql = ql->next) { |
|
|
|
attr = ql->data; |
|
|
|
ac = &attr->u.candidate; |
|
|
|
@ -1158,6 +1163,7 @@ static void __sdp_ice(struct stream_params *sp, struct sdp_media *media) { |
|
|
|
g_queue_push_tail(&sp->ice_candidates, cand); |
|
|
|
} |
|
|
|
|
|
|
|
no_cand: |
|
|
|
if ((attr = attr_get_by_id(&media->attributes, ATTR_ICE_OPTIONS))) { |
|
|
|
if (str_str(&attr->value, "trickle") >= 0) |
|
|
|
SP_SET(sp, TRICKLE_ICE); |
|
|
|
@ -1168,10 +1174,6 @@ static void __sdp_ice(struct stream_params *sp, struct sdp_media *media) { |
|
|
|
if (attr_get_by_id(&media->attributes, ATTR_ICE_LITE)) |
|
|
|
SP_SET(sp, ICE_LITE); |
|
|
|
|
|
|
|
attr = attr_get_by_id_m_s(media, ATTR_ICE_UFRAG); |
|
|
|
if (attr) |
|
|
|
sp->ice_ufrag = attr->value; |
|
|
|
|
|
|
|
attr = attr_get_by_id_m_s(media, ATTR_ICE_PWD); |
|
|
|
if (attr) |
|
|
|
sp->ice_pwd = attr->value; |
|
|
|
|