Commit e5c66a63 authored by Thiago Camargo's avatar Thiago Camargo Committed by thiago

Added UDP Echo Support

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@7236 b35dd754-fafc-0310-a699-88a17e54d16e
parent cdef560e
......@@ -29,6 +29,8 @@ import org.xmpp.packet.Packet;
import org.xmpp.packet.PacketError;
import java.util.*;
import java.net.UnknownHostException;
import java.net.SocketException;
/**
* A proxy service for UDP traffic such as RTP. It provides Jingle transport candidates
......@@ -43,6 +45,8 @@ public class MediaProxyService extends BasicModule
private String serviceName;
private RoutingTable routingTable;
private PacketRouter router;
private Echo echo = null;
private int echoPort = 10020;
private MediaProxy mediaProxy = null;
private boolean enabled = true;
......@@ -65,6 +69,8 @@ public class MediaProxyService extends BasicModule
serviceName = JiveGlobals.getProperty("mediaproxy.serviceName", defaultName);
serviceName = serviceName.equals("") ? defaultName : serviceName;
echoPort = JiveGlobals.getIntProperty("mediaproxy.echoPort", echoPort);
routingTable = server.getRoutingTable();
router = server.getPacketRouter();
......@@ -73,9 +79,19 @@ public class MediaProxyService extends BasicModule
public void start() {
if (isEnabled()) {
try {
echo = new Echo(echoPort);
Thread t = new Thread(echo);
t.start();
} catch (UnknownHostException e) {
} catch (SocketException e) {
}
routingTable.addRoute(getAddress(), this);
XMPPServer.getInstance().getIQDiscoItemsHandler().addServerItemsProvider(this);
} else {
if(echo!=null) echo.cancel();
XMPPServer.getInstance().getIQDiscoItemsHandler().removeComponentItem(getAddress().toString());
}
}
......@@ -85,6 +101,7 @@ public class MediaProxyService extends BasicModule
mediaProxy.stopProxy();
XMPPServer.getInstance().getIQDiscoItemsHandler().removeComponentItem(getAddress().toString());
routingTable.removeRoute(getAddress());
if(echo!=null) echo.cancel();
}
// Component Interface
......@@ -402,17 +419,19 @@ public class MediaProxyService extends BasicModule
/**
* Get the Life Time of Sessions
*
* @return lifetime in seconds
*/
public long getLifetime(){
public long getLifetime() {
return mediaProxy.getLifetime();
}
/**
* Set the Life time of Sessions
*
* @param lifetime lifetime in seconds
*/
public void setLifetime(long lifetime){
public void setLifetime(long lifetime) {
mediaProxy.setLifetime(lifetime);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment