|
|
|
@ -2716,10 +2716,14 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
bool media_has_ice = MEDIA_ISSET(call_media, ICE); |
|
|
|
bool keep_zero_address = ! media_has_ice; |
|
|
|
|
|
|
|
if (session->connection.parsed && sess_conn && |
|
|
|
flags->ice_option != ICE_FORCE_RELAY) { |
|
|
|
err = "failed to replace network address"; |
|
|
|
if (replace_network_address(chop, &session->connection.address, ps, flags, true)) |
|
|
|
if (replace_network_address(chop, &session->connection.address, ps, flags, |
|
|
|
keep_zero_address)) |
|
|
|
goto error; |
|
|
|
} |
|
|
|
|
|
|
|
@ -2737,7 +2741,7 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu |
|
|
|
chopper_append_c(chop, "\r\n"); |
|
|
|
} |
|
|
|
|
|
|
|
if (MEDIA_ISSET(call_media, ICE) && MEDIA_ISSET(call_media, ICE_LITE_SELF)) |
|
|
|
if (media_has_ice && MEDIA_ISSET(call_media, ICE_LITE_SELF)) |
|
|
|
chopper_append_c(chop, "a=ice-lite\r\n"); |
|
|
|
|
|
|
|
|
|
|
|
@ -2778,7 +2782,7 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu |
|
|
|
if (sdp_media->connection.parsed) { |
|
|
|
err = "failed to replace media network address"; |
|
|
|
if (replace_network_address(chop, &sdp_media->connection.address, ps, |
|
|
|
flags, true)) |
|
|
|
flags, keep_zero_address)) |
|
|
|
goto error; |
|
|
|
} |
|
|
|
} |
|
|
|
|