openvidu-server: rollback MediaEndpoint transaction

pull/469/head
pabloFuente 2020-05-14 18:11:52 +02:00
parent 50ab460f1d
commit 54b20665f3
1 changed files with 14 additions and 25 deletions

View File

@ -39,15 +39,15 @@ import org.kurento.client.MediaPipeline;
import org.kurento.client.PlayerEndpoint; import org.kurento.client.PlayerEndpoint;
import org.kurento.client.RtpEndpoint; import org.kurento.client.RtpEndpoint;
import org.kurento.client.SdpEndpoint; import org.kurento.client.SdpEndpoint;
import org.kurento.client.TFuture;
import org.kurento.client.Transaction;
import org.kurento.client.WebRtcEndpoint; import org.kurento.client.WebRtcEndpoint;
import org.kurento.client.internal.server.KurentoServerException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray; import com.google.gson.JsonArray;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import io.openvidu.client.OpenViduException; import io.openvidu.client.OpenViduException;
@ -597,29 +597,18 @@ public abstract class MediaEndpoint {
json.addProperty("webrtcEndpointName", this.getEndpointName()); json.addProperty("webrtcEndpointName", this.getEndpointName());
if (!this.isPlayerEndpoint()) { if (!this.isPlayerEndpoint()) {
try { try {
Transaction tx = this.getEndpoint().getMediaPipeline().beginTransaction(); json.addProperty("remoteSdp", ((SdpEndpoint) this.getEndpoint()).getRemoteSessionDescriptor());
TFuture<String> future1 = ((SdpEndpoint) this.getEndpoint()).getRemoteSessionDescriptor(tx); } catch (KurentoServerException e) {
TFuture<String> future2 = ((SdpEndpoint) this.getEndpoint()).getLocalSessionDescriptor(tx); log.error("Error retrieving remote SDP for endpoint {} of stream {}: {}", this.endpointName,
TFuture<String> future3 = this.getWebEndpoint().getExternalAddress(tx); this.streamId, e.getMessage());
TFuture<String> future4 = this.getWebEndpoint().getNetworkInterfaces(tx); json.add("remoteSdp", JsonNull.INSTANCE);
TFuture<String> future5 = this.getWebEndpoint().getStunServerAddress(tx); }
TFuture<Integer> future6 = this.getWebEndpoint().getStunServerPort(tx); try {
TFuture<String> future7 = this.getWebEndpoint().getTurnUrl(tx); json.addProperty("localSdp", ((SdpEndpoint) this.getEndpoint()).getLocalSessionDescriptor());
TFuture<String> future8 = this.getWebEndpoint().getId(tx); } catch (KurentoServerException e) {
tx.commit(); log.error("Error retrieving local SDP for endpoint {} of stream {}: {}", this.endpointName,
this.streamId, e.getMessage());
json.addProperty("externalAddress", future3.get()); json.add("localSdp", JsonNull.INSTANCE);
json.addProperty("networkInterfaces", future4.get());
json.addProperty("stunServerAddress", future5.get());
json.addProperty("stunServerPort", future6.get());
json.addProperty("turnUrl", future7.get());
json.addProperty("mediaObjectId", future8.get());
json.addProperty("remoteSdp", future1.get());
json.addProperty("localSdp", future2.get());
} catch (Exception e) {
log.error("Exception while getting remote information of WebRtcEndpoint {}: {} - {}", this.streamId,
e.getClass().getName(), e.getMessage());
} }
} }
Gson gson = new GsonBuilder().create(); Gson gson = new GsonBuilder().create();