SipFactory sipFactory = SipFactory.getInstance();
Properties properties = new Properties();
properties.setProperty("javax.sip.STACK_NAME", "mySipStack");
properties.setProperty("javax.sip.IP_ADDRESS", "127.0.0.1");
properties.setProperty("javax.sip.OUTBOUND_PROXY", "127.0.0.1:5060/udp");
properties.setProperty("javax.sip.RETRANSMISSION_FILTER", "on");
properties.setProperty("gov.nist.javax.sip.DEBUG_LOG",
"siplog.txt");
properties.setProperty("gov.nist.javax.sip.SERVER_LOG",
"serverlog.txt");
sipFactory.setPathName("gov.nist");
SipStack sipStack = sipFactory.createSipStack(properties);
ListeningPoint listeningPoint = sipStack.createListeningPoint("127.0.0.1", 5555, "udp");
SipProvider sipProvider = sipStack.createSipProvider(listeningPoint);
SipListenerImpl sipListener = new SipListenerImpl();
sipProvider.addSipListener(sipListener);
MessageFactory messageFactory = sipFactory.createMessageFactory();
AddressFactory addressFactory = sipFactory.createAddressFactory();
SipURI requestUri = addressFactory.createSipURI("alice", "example.com");
SipURI fromUri = addressFactory.createSipURI("bob", "example.com");
SipURI toUri = addressFactory.createSipURI("alice", "example.com");
FromHeader fromHeader = headerFactory.createFromHeader(addressFactory.createAddress(fromUri), "12345");
ToHeader toHeader = headerFactory.createToHeader(addressFactory.createAddress(toUri), null);
CallIdHeader callIdHeader = sipProvider.getNewCallId();
CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(1L, Request.INVITE);
MaxForwardsHeader maxForwardsHeader = headerFactory.createMaxForwardsHeader(70);
Request request = messageFactory.createRequest(requestUri, Request.INVITE, callIdHeader, cSeqHeader, fromHeader, toHeader, Collections.emptyList(), maxForwardsHeader);
ClientTransaction transaction = sipProvider.getNewClientTransaction(request);
transaction.sendRequest();
public class SipListenerImpl implements SipListener {
@Override
public void processRequest(RequestEvent requestEvent) {
}
@Override
public void processResponse(ResponseEvent responseEvent) {
}
@Override
public void processTimeout(TimeoutEvent timeoutEvent) {
}
}