test.unit.gov.nist.javax.sip.stack.timeoutontermineted.SipObjects Maven / Gradle / Ivy
package test.unit.gov.nist.javax.sip.stack.timeoutontermineted;
import gov.nist.javax.sip.SipStackImpl;
import gov.nist.javax.sip.stack.NioMessageProcessorFactory;
import java.util.Properties;
import javax.sip.SipException;
import javax.sip.SipFactory;
import javax.sip.SipStack;
import javax.sip.address.AddressFactory;
import javax.sip.header.HeaderFactory;
import javax.sip.message.MessageFactory;
// import org.sipfoundry.commons.log4j.SipFoundryAppender;
// import org.sipfoundry.commons.log4j.SipFoundryLayout;
// import org.sipfoundry.commons.log4j.SipFoundryLogRecordFactory;
public class SipObjects {
SipStack sipStack;
HeaderFactory headerFactory;
AddressFactory addressFactory;
MessageFactory messageFactory;
public SipObjects(int myPort, String stackName, String automaticDialog) {
SipFactory sipFactory = SipFactory.getInstance();
sipFactory.resetFactory();
sipFactory.setPathName("gov.nist");
Properties properties = new Properties();
String stackname = stackName + myPort;
properties.setProperty("javax.sip.STACK_NAME", stackname);
// The following properties are specific to nist-sip
// and are not necessarily part of any other jain-sip
// implementation.
properties.setProperty("javax.sip.AUTOMATIC_DIALOG_SUPPORT", automaticDialog);
/* properties.setProperty("gov.nist.javax.sip.LOG_FACTORY", SipFoundryLogRecordFactory.class
.getName()); */
// Set to 0 in your production code for max speed.
// You need 16 for logging traces. 32 for debug + traces.
// Your code will limp at 32 but it is best for debugging.
properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32");
String logFile = "logs/" + stackname + ".txt";
properties.setProperty("gov.nist.javax.sip.DEBUG_LOG", logFile);
if(System.getProperty("enableNIO") != null && System.getProperty("enableNIO").equalsIgnoreCase("true")) {
properties.setProperty("gov.nist.javax.sip.MESSAGE_PROCESSOR_FACTORY", NioMessageProcessorFactory.class.getName());
}
try {
// Create SipStack object
sipStack = sipFactory.createSipStack(properties);
String logFileDirectory = "./target/logs/";
/* SipFoundryAppender sfa = new SipFoundryAppender(new SipFoundryLayout(),
logFileDirectory + "sip" + stackname + ".log");
((SipStackImpl) sipStack).addLogAppender(sfa);*/
System.out.println("createSipStack " + sipStack);
} catch (Exception e) {
// could not find
// gov.nist.jain.protocol.ip.sip.SipStackImpl
// in the classpath
e.printStackTrace();
System.err.println(e.getMessage());
throw new RuntimeException("Stack failed to initialize");
}
try {
headerFactory = sipFactory.createHeaderFactory();
addressFactory = sipFactory.createAddressFactory();
messageFactory = sipFactory.createMessageFactory();
} catch (SipException ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
}