package org.mobicents.tools.sip.balancer; import static org.junit.Assert.assertTrue; import javax.sip.ListeningPoint; import javax.sip.address.SipURI; import javax.sip.message.Response; import org.junit.After; import org.junit.Test; import org.mobicents.tools.configuration.LoadBalancerConfiguration; import org.mobicents.tools.sip.balancer.operation.Shootist; public class Ipv6Test { BalancerRunner balancer; Shootist shootistipv4; Shootist shootistipv6; AppServer ipv4Server; AppServer ipv6Server; public void setUp() throws Exception { shootistipv4 = new Shootist(ListeningPoint.TCP,5060,5033); shootistipv6 = new Shootist(ListeningPoint.TCP,5070,5034,true); LoadBalancerConfiguration lbConfig = new LoadBalancerConfiguration(); lbConfig.getSipStackConfiguration().getSipStackProperies().setProperty("javax.sip.AUTOMATIC_DIALOG_SUPPORT", "off"); lbConfig.getSipStackConfiguration().getSipStackProperies().setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32"); lbConfig.getSipStackConfiguration().getSipStackProperies().setProperty("gov.nist.javax.sip.DEBUG_LOG","logs/sipbalancerforwarderdebug.txt"); lbConfig.getSipStackConfiguration().getSipStackProperies().setProperty("gov.nist.javax.sip.SERVER_LOG","logs/sipbalancerforwarder.xml"); lbConfig.getSipStackConfiguration().getSipStackProperies().setProperty("gov.nist.javax.sip.THREAD_POOL_SIZE", "2"); lbConfig.getSipStackConfiguration().getSipStackProperies().setProperty("gov.nist.javax.sip.REENTRANT_LISTENER", "true"); lbConfig.getCommonConfiguration().setIpv6Host("::1"); lbConfig.getSipConfiguration().getExternalLegConfiguration().setTcpPort(5060); lbConfig.getSipConfiguration().getInternalLegConfiguration().setTcpPort(5065); lbConfig.getSipConfiguration().getExternalLegConfiguration().setIpv6TcpPort(5070); lbConfig.getSipConfiguration().getInternalLegConfiguration().setIpv6TcpPort(5075); balancer = new BalancerRunner(); balancer.start(lbConfig); Thread.sleep(2000); ipv6Server = new AppServer(true , "node" ,4060 , "127.0.0.1", 2000, 5070, 5075, "0", ListeningPoint.TCP); ipv6Server.start(); ipv4Server = new AppServer("node" ,4061 , "127.0.0.1", 2000, 5060, 5065, "0", ListeningPoint.TCP,2223); ipv4Server.start(); Thread.sleep(5000); } @After public void tearDown() throws Exception { shootistipv4.stop(); shootistipv6.stop(); ipv4Server.stop(); ipv6Server.stop(); balancer.stop(); } @Test public void testExternalTcpRequest() throws Exception { boolean isShootistipv4GetOK = false; boolean isShootistipv6GetOK = false; setUp(); shootistipv6.sendInitialInvite(); Thread.sleep(5000); shootistipv6.sendBye(); Thread.sleep(5000); shootistipv4.sendInitialInvite(); Thread.sleep(5000); shootistipv4.sendBye(); Thread.sleep(5000); for(Response res : shootistipv4.responses) if(res.getStatusCode() == Response.OK) isShootistipv4GetOK = true; for(Response res : shootistipv6.responses) if(res.getStatusCode() == Response.OK) isShootistipv6GetOK = true; assertTrue(isShootistipv4GetOK); assertTrue(isShootistipv6GetOK); assertTrue(ipv6Server.getTestSipListener().isInviteReceived()); assertTrue(ipv6Server.getTestSipListener().isAckReceived()); assertTrue(ipv6Server.getTestSipListener().getByeReceived()); assertTrue(ipv4Server.getTestSipListener().isInviteReceived()); assertTrue(ipv4Server.getTestSipListener().isAckReceived()); assertTrue(ipv4Server.getTestSipListener().getByeReceived()); } @Test public void testInternalTcpRequest() throws Exception { setUp(); String fromName = "sender"; String fromHost = "sip-servlets.com"; SipURI fromAddress6 = ipv6Server.protocolObjects.addressFactory.createSipURI(fromName, fromHost); String toUser = "replaces"; String toHost = "sip-servlets.com"; SipURI toAddress6 = ipv6Server.protocolObjects.addressFactory.createSipURI(toUser, toHost); SipURI ruriIpv6 = ipv6Server.protocolObjects.addressFactory.createSipURI("usera", "[::1]:5034"); ruriIpv6.setLrParam(); SipURI routeIpv6 = ipv6Server.protocolObjects.addressFactory.createSipURI("lbint", "[::1]:5075"); routeIpv6.setParameter("node_host", "::1"); routeIpv6.setParameter("node_port", "4060"); routeIpv6.setTransportParam(ListeningPoint.TCP); //ipv4 SipURI fromAddress4 = ipv4Server.protocolObjects.addressFactory.createSipURI(fromName, fromHost); String toUser4 = "replaces"; String toHost4 = "sip-servlets.com"; SipURI toAddress4 = ipv6Server.protocolObjects.addressFactory.createSipURI(toUser4, toHost4); SipURI ruriIpv4 = ipv6Server.protocolObjects.addressFactory.createSipURI("usera", "127.0.0.1:5033"); ruriIpv4.setLrParam(); SipURI routeIpv4 = ipv6Server.protocolObjects.addressFactory.createSipURI("lbint", "127.0.0.1:5065"); routeIpv4.setParameter("node_host", "127.0.0.1"); routeIpv4.setParameter("node_port", "4061"); routeIpv4.setTransportParam(ListeningPoint.TCP); routeIpv4.setLrParam(); shootistipv4.start(); shootistipv6.start(); ipv4Server.sipListener.sendSipRequest("INVITE", fromAddress4, toAddress4, null, routeIpv4, false, null, null, ruriIpv4); ipv6Server.sipListener.sendSipRequest("INVITE", fromAddress6, toAddress6, null, routeIpv6, false, null, null, ruriIpv6); Thread.sleep(10000); } }