use of org.mobicents.tools.sip.balancer.AppServer in project load-balancer by RestComm.
the class NodeGracefulShutdownTest method testGracefulRemovingNode.
@Test
public void testGracefulRemovingNode() throws Exception {
int okNumber1 = 0;
int okNumber2 = 0;
shootist1.sendInitialInvite();
Thread.sleep(500);
for (AppServer server : servers) if (server.sipListener.getInviteRequest() != null)
server.gracefulShutdown();
Thread.sleep(5000);
shootist1.sendBye();
Thread.sleep(2000);
shootist2.sendInitialInvite();
Thread.sleep(5000);
shootist2.sendBye();
Thread.sleep(2000);
for (Response res : shootist1.responses) if (res.getStatusCode() == Response.OK)
okNumber1++;
for (Response res : shootist2.responses) if (res.getStatusCode() == Response.OK)
okNumber2++;
for (AppServer server : servers) assertNotNull(server.sipListener.getInviteRequest());
assertEquals(2, okNumber1);
assertEquals(2, okNumber2);
}
use of org.mobicents.tools.sip.balancer.AppServer in project load-balancer by RestComm.
the class HeaderConsistentHashAlgorithmTest method testOKRingingLandOnDifferentNode.
@Test
public void testOKRingingLandOnDifferentNode() throws Exception {
EventListener failureEventListener = new EventListener() {
@Override
public void uasAfterResponse(int statusCode, AppServer source) {
}
@Override
public void uasAfterRequestReceived(String method, AppServer source) {
// TODO Auto-generated method stub
}
@Override
public void uacAfterRequestSent(String method, AppServer source) {
// TODO Auto-generated method stub
}
@Override
public void uacAfterResponse(int statusCode, AppServer source) {
if (statusCode == 180) {
ringingAppServer = source;
// source.sendCleanShutdownToBalancers();
source.stop();
} else {
okAppServer = source;
}
}
};
for (AppServer as : servers) as.setEventListener(failureEventListener);
shootist.callerSendsBye = true;
String fromName = "sender";
String fromHost = "sip-servlets.com";
SipURI fromAddress = servers[0].protocolObjects.addressFactory.createSipURI(fromName, fromHost);
String toUser = "replaces";
String toHost = "sip-servlets.com";
SipURI toAddress = servers[0].protocolObjects.addressFactory.createSipURI(toUser, toHost);
SipURI ruri = servers[0].protocolObjects.addressFactory.createSipURI("usera", "127.0.0.1:5033");
ruri.setLrParam();
SipURI route = servers[0].protocolObjects.addressFactory.createSipURI("lbint", "127.0.0.1:5065");
route.setParameter("node_host", "127.0.0.1");
route.setParameter("node_port", "4060");
route.setLrParam();
shootist.start();
// servers[0].sipListener.sendSipRequest("INVITE", fromAddress, toAddress, null, null, false);
servers[0].sipListener.sendSipRequest("INVITE", fromAddress, toAddress, null, route, false, null, null, ruri);
Thread.sleep(20000);
assertTrue(shootist.inviteRequest.getHeader(RecordRouteHeader.NAME).toString().contains("node_host"));
assertNotSame(ringingAppServer, okAppServer);
assertNotNull(ringingAppServer);
assertNotNull(okAppServer);
}
use of org.mobicents.tools.sip.balancer.AppServer in project load-balancer by RestComm.
the class HeaderConsistentHashAlgorithmTest method setUp.
@Before
public void setUp() throws Exception {
shootist = new Shootist();
balancer = new BalancerRunner();
LoadBalancerConfiguration lbConfig = new LoadBalancerConfiguration();
lbConfig.getSipConfiguration().getInternalLegConfiguration().setUdpPort(5065);
lbConfig.getSipConfiguration().getAlgorithmConfiguration().setAlgorithmClass(HeaderConsistentHashBalancerAlgorithm.class.getName());
balancer.start(lbConfig);
for (int q = 0; q < servers.length; q++) {
servers[q] = new AppServer("node" + q, 4060 + q, "127.0.0.1", 2000, 5060, 5065, "0", ListeningPoint.UDP, 2222 + q);
servers[q].start();
}
Thread.sleep(5000);
}
use of org.mobicents.tools.sip.balancer.AppServer in project load-balancer by RestComm.
the class PureConsistentHashNodeDeathTest method testRegister.
@Test
public void testRegister() throws Exception {
EventListener failureEventListener = new EventListener() {
@Override
public void uasAfterResponse(int statusCode, AppServer source) {
}
@Override
public void uasAfterRequestReceived(String method, AppServer source) {
if (method.equals("REGISTER"))
register = source;
}
@Override
public void uacAfterRequestSent(String method, AppServer source) {
// TODO Auto-generated method stub
}
@Override
public void uacAfterResponse(int statusCode, AppServer source) {
// TODO Auto-generated method stub
}
};
for (AppServer as : servers) as.setEventListener(failureEventListener);
shootist.sendInitial("REGISTER");
Thread.sleep(5000);
assertNotNull(register);
}
use of org.mobicents.tools.sip.balancer.AppServer in project load-balancer by RestComm.
the class PureConsistentHashNodeDeathTest method testAllNodesDead.
@Test
public void testAllNodesDead() throws Exception {
for (AppServer as : servers) {
// as.sendCleanShutdownToBalancers();
as.stop();
// as.sendHeartbeat=false;
}
Thread.sleep(3000);
assertTrue(balancer.getNodes().isEmpty());
shootist.callerSendsBye = true;
shootist.sendInitialInvite();
Thread.sleep(15000);
assertEquals(500, shootist.responses.get(0).getStatusCode());
}
Aggregations