udpListeningPoint = sipStack.createListeningPoint(5060, "udp");
udpListeningPoint = sipStack.createListeningPoint(sipStack.getIPAddress(), 5060, "udp");
    public void init() {        SipFactory sipFactory = null;        sipStack = null;        sipFactory = SipFactory.getInstance();        sipFactory.setPathName("gov.nist");        Properties properties = new Properties();        // If you want to try TCP transport change the following to        String transport = "udp";        String peerHostPort = "127.0.0.1:5070";        properties.setProperty("javax.sip.IP_ADDRESS", "127.0.0.1");        properties.setProperty("javax.sip.OUTBOUND_PROXY", peerHostPort + "/"                + transport);        properties.setProperty("javax.sip.STACK_NAME", "shootist");        properties.setProperty("javax.sip.RETRANSMISSION_FILTER", "on");        // The following properties are specific to nist-sip        // and are not necessarily part of any other jain-sip        // implementation.        // You can set a max message size for tcp transport to        // guard against denial of service attack.        properties                .setProperty("gov.nist.javax.sip.MAX_MESSAGE_SIZE", "1048576");        properties.setProperty("gov.nist.javax.sip.DEBUG_LOG",                "shootistdebug.txt");        properties.setProperty("gov.nist.javax.sip.SERVER_LOG",                "shootistlog.txt");        // Drop the client connection after we are done with the transaction.        properties.setProperty("gov.nist.javax.sip.CACHE_CLIENT_CONNECTIONS",                "false");        // 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", "0");        try {            // Create SipStack object            sipStack = sipFactory.createSipStack(properties);            System.out.println("createSipStack " + sipStack);        } catch (PeerUnavailableException e) {            // could not find            // gov.nist.jain.protocol.ip.sip.SipStackImpl            // in the classpath            e.printStackTrace();            System.err.println(e.getMessage());            System.exit(0);        }        try {            headerFactory = sipFactory.createHeaderFactory();            addressFactory = sipFactory.createAddressFactory();            messageFactory = sipFactory.createMessageFactory();            udpListeningPoint = sipStack.createListeningPoint(5060, "udp");            udpProvider = sipStack.createSipProvider(udpListeningPoint);            Shootist listener = this;            udpProvider.addSipListener(listener);            tcpListeningPoint = sipStack.createListeningPoint(5060, "tcp");            tcpProvider = sipStack.createSipProvider(tcpListeningPoint);            tcpProvider.addSipListener(listener);            SipProvider sipProvider = transport.equalsIgnoreCase("udp") ? udpProvider                    : tcpProvider;            String fromName = "BigGuy";            String fromSipAddress = "here.com";            String fromDisplayName = "The Master Blaster";            String toSipAddress = "there.com";            String toUser = "LittleGuy";            String toDisplayName = "The Little Blister";            // send the request out.            for (int i = 0; i < 100; i++) {                // create >From Header                SipURI fromAddress = addressFactory.createSipURI(fromName,                        fromSipAddress);                Address fromNameAddress = addressFactory                        .createAddress(fromAddress);                fromNameAddress.setDisplayName(fromDisplayName);                FromHeader fromHeader = headerFactory.createFromHeader(                        fromNameAddress, "12345" + i);                // create To Header                SipURI toAddress = addressFactory.createSipURI(toUser,                        toSipAddress);                Address toNameAddress = addressFactory.createAddress(toAddress);                toNameAddress.setDisplayName(toDisplayName);                ToHeader toHeader = headerFactory.createToHeader(toNameAddress,                        null);                // create Request URI                SipURI requestURI = addressFactory.createSipURI(toUser,                        peerHostPort);                // Create ViaHeaders                ArrayList viaHeaders = new ArrayList();                int port = sipProvider.getListeningPoint().getPort();                ViaHeader viaHeader = headerFactory.createViaHeader(sipStack                        .getIPAddress(), sipProvider.getListeningPoint()                        .getPort(), transport, null);                // add via headers                viaHeaders.add(viaHeader);                // Create ContentTypeHeader                ContentTypeHeader contentTypeHeader = headerFactory                        .createContentTypeHeader("application", "sdp");                // Create a new CallId header                CallIdHeader callIdHeader = sipProvider.getNewCallId();                // Create a new Cseq header                CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(1,                        Request.INVITE);                // Create a new MaxForwardsHeader                MaxForwardsHeader maxForwards = headerFactory                        .createMaxForwardsHeader(70);                // Create the request.                Request request = messageFactory.createRequest(requestURI,                        Request.INVITE, callIdHeader, cSeqHeader, fromHeader,                        toHeader, viaHeaders, maxForwards);                // Create contact headers                String host = sipStack.getIPAddress();                SipURI contactUrl = addressFactory.createSipURI(fromName, host);                contactUrl.setPort(tcpListeningPoint.getPort());                // Create the contact name address.                SipURI contactURI = addressFactory.createSipURI(fromName, host);                contactURI.setPort(sipProvider.getListeningPoint().getPort());                Address contactAddress = addressFactory                        .createAddress(contactURI);                // Add the contact address.                contactAddress.setDisplayName(fromName);                contactHeader = headerFactory                        .createContactHeader(contactAddress);                request.addHeader(contactHeader);                // Add the extension header.                Header extensionHeader = headerFactory.createHeader(                        "My-Header", "my header value");                request.addHeader(extensionHeader);                String sdpData = "v=0\r\n"                        + "o=4855 13760799956958020 13760799956958020"                        + " IN IP4  129.6.55.78\r\n"                        + "s=mysession session\r\n" + "p=+46 8 52018010\r\n"                        + "c=IN IP4  129.6.55.78\r\n" + "t=0 0\r\n"                        + "m=audio 6022 RTP/AVP 0 4 18\r\n"                        + "a=rtpmap:0 PCMU/8000\r\n"                        + "a=rtpmap:4 G723/8000\r\n"                        + "a=rtpmap:18 G729A/8000\r\n" + "a=ptime:20\r\n";                byte[] contents = sdpData.getBytes();                request.setContent(contents, contentTypeHeader);                extensionHeader = headerFactory.createHeader("My-Other-Header",                        "my new header value ");                request.addHeader(extensionHeader);                Header callInfoHeader = headerFactory.createHeader("Call-Info",                        "<http://www.antd.nist.gov>");                request.addHeader(callInfoHeader);                // Create the client transaction.                ClientTransaction inviteTid = sipProvider                        .getNewClientTransaction(request);                inviteTid.sendRequest();            }        } catch (Exception ex) {            System.out.println(ex.getMessage());            ex.printStackTrace();            usage();        }    }