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", "proxy.example.com:5060/udp");
SipStack sipStack = sipFactory.createSipStack(properties);
ListeningPoint listeningPoint = sipStack.createListeningPoint("127.0.0.1", 5060, "udp");
SipProvider sipProvider = sipStack.createSipProvider(listeningPoint);
SipURI fromAddress = addressFactory.createSipURI("alice", "example.com");
Address fromNameAddress = addressFactory.createAddress(fromAddress);
fromNameAddress.setDisplayName("Alice");
FromHeader fromHeader = headerFactory.createFromHeader(fromNameAddress, "12345");
SipURI toAddress = addressFactory.createSipURI("bob", "example.com");
Address toNameAddress = addressFactory.createAddress(toAddress);
toNameAddress.setDisplayName("Bob");
ToHeader toHeader = headerFactory.createToHeader(toNameAddress, null);
SipURI requestURI = addressFactory.createSipURI("bob", "example.com");
requestURI.setTransportParam("udp");
CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(1L, Request.INVITE);
CallIdHeader callIdHeader = sipProvider.getNewCallId();
Request inviteRequest = messageFactory.createRequest(requestURI, Request.INVITE, callIdHeader, cSeqHeader, fromHeader, toHeader, viaHeaders, maxForwards);
SipListenerImpl sipListener = new SipListenerImpl();
sipProvider.addSipListener(sipListener);
class SipListenerImpl implements SipListener {
public void processRequest(RequestEvent requestEvent) {
}
public void processResponse(ResponseEvent responseEvent) {
}
}