addStatus(request);
addStatus(headerFactory, request);
    protected Request createRequest( String         method,                                     AddressFactory addressFactory,                                     HeaderFactory  headerFactory,                                     MessageFactory messageFactory,                                     SipProvider    srcProvider,                                     SipProvider    dstProvider,                                     String         contentType,                                     String         contentSubType,                                     Object         content) throws Exception    {        //Source SipUri        SipURI srcSipURI = addressFactory.createSipURI(            null,            srcProvider.getSipStack().getIPAddress()            );        srcSipURI.setPort( srcProvider.getListeningPoint().getPort() );        srcSipURI.setTransportParam( srcProvider.getListeningPoint().                                     getTransport() );        //Destination SipURI        SipURI dstSipURI = addressFactory.createSipURI(            null,            dstProvider.getSipStack().getIPAddress()            );        dstSipURI.setPort( dstProvider.getListeningPoint().getPort() );        dstSipURI.setTransportParam( dstProvider.getListeningPoint().                                     getTransport() );        //CallId        CallIdHeader callId = srcProvider.getNewCallId();        //CSeq        CSeqHeader cSeq = headerFactory.createCSeqHeader( 1, method );        //From        Address fromAddress = addressFactory.createAddress( srcSipURI );        FromHeader from = headerFactory.createFromHeader(            fromAddress,            Integer.toString( srcProvider.hashCode() ) );        //To        Address toAddress = addressFactory.createAddress( dstSipURI );        ToHeader to = headerFactory.createToHeader(            toAddress,            null );        //Contact        ContactHeader contact = headerFactory.createContactHeader(fromAddress);        List via = new LinkedList();        ViaHeader viaHeader = headerFactory.createViaHeader(            srcProvider.getSipStack().getIPAddress(),            srcProvider.getListeningPoint().getPort(),            srcProvider.getListeningPoint().getTransport(),            Long.toString(System.currentTimeMillis())//branch id        );        via.add(viaHeader);        MaxForwardsHeader maxForwards = headerFactory.createMaxForwardsHeader(3);        Request request =            messageFactory.createRequest( dstSipURI,                                          method,                                          callId,                                          cSeq,                                          from,                                          to,                                          via,                                          maxForwards                                          );        request.addHeader(contact);        if ( contentType != null             && contentSubType != null             && content != null )        {            ContentTypeHeader contentTypeHdr =                headerFactory.createContentTypeHeader( contentType,                contentSubType );            request.setContent( content, contentTypeHdr );        }	addStatus(request);        return request;    }