|  |  | 
 |  |  | import javax.validation.constraints.NotNull; | 
 |  |  | import java.text.ParseException; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.UUID; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  |     | 
 |  |  |    @Autowired | 
 |  |  |    private SipFactory sipFactory; | 
 |  |  | 	 | 
 |  |  | //   @Autowired | 
 |  |  | //   @Qualifier(value="tcpSipProvider") | 
 |  |  | //   private SipProvider tcpSipProvider; | 
 |  |  | // | 
 |  |  | //   @Autowired | 
 |  |  | //   @Qualifier(value="udpSipProvider") | 
 |  |  | //   private SipProvider udpSipProvider; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    public Request createKeetpaliveMessageRequest(ParentPlatform parentPlatform, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 
 |  |  | 
 |  |  |       SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); | 
 |  |  |       // via | 
 |  |  |       ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 
 |  |  |       ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), | 
 |  |  |       ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), | 
 |  |  |             parentPlatform.getTransport(), viaTag); | 
 |  |  |       viaHeader.setRPort(); | 
 |  |  |       viaHeaders.add(viaHeader); | 
 |  |  |       // from | 
 |  |  |       SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), | 
 |  |  |             sipConfig.getSipIp() + ":" + sipConfig.getSipPort()); | 
 |  |  |             sipConfig.getIp() + ":" + sipConfig.getPort()); | 
 |  |  |       Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 
 |  |  |       FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); | 
 |  |  |       // to | 
 |  |  | 
 |  |  |  | 
 |  |  |       request = sipFactory.createMessageFactory().createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader, | 
 |  |  |             toHeader, viaHeaders, maxForwards); | 
 |  |  |  | 
 |  |  |       List<String> agentParam = new ArrayList<>(); | 
 |  |  |       agentParam.add("wvp-pro"); | 
 |  |  |       UserAgentHeader userAgentHeader = sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); | 
 |  |  |       request.addHeader(userAgentHeader); | 
 |  |  |  | 
 |  |  |       ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml"); | 
 |  |  |       request.setContent(content, contentTypeHeader); | 
 |  |  |       return request; | 
 |  |  | 
 |  |  |  | 
 |  |  |    public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 
 |  |  |       Request request = null; | 
 |  |  |       String sipAddress = sipConfig.getSipIp() + ":" + sipConfig.getSipPort(); | 
 |  |  |       String sipAddress = sipConfig.getIp() + ":" + sipConfig.getPort(); | 
 |  |  |       //请求行 | 
 |  |  |       SipURI requestLine = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(), | 
 |  |  |       SipURI requestLine = sipFactory.createAddressFactory().createSipURI(platform.getServerGBId(), | 
 |  |  |             platform.getServerIP() + ":" + platform.getServerPort()); | 
 |  |  |       //via | 
 |  |  |       ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 
 |  |  | 
 |  |  |  | 
 |  |  |       ExpiresHeader expires = sipFactory.createHeaderFactory().createExpiresHeader(Integer.parseInt(platform.getExpires())); | 
 |  |  |       request.addHeader(expires); | 
 |  |  |  | 
 |  |  |       List<String> agentParam = new ArrayList<>(); | 
 |  |  |       agentParam.add("wvp-pro"); | 
 |  |  |       UserAgentHeader userAgentHeader = sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); | 
 |  |  |       request.addHeader(userAgentHeader); | 
 |  |  |  | 
 |  |  |       return request; | 
 |  |  |    } | 
 |  |  | 
 |  |  |       viaHeader.setRPort(); | 
 |  |  |       viaHeaders.add(viaHeader); | 
 |  |  |       // from | 
 |  |  |       SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), | 
 |  |  |       SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), | 
 |  |  |             parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort()); | 
 |  |  |       Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 
 |  |  |       FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); | 
 |  |  |       // to | 
 |  |  |       SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), parentPlatform.getServerGBDomain()); | 
 |  |  |       SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerGBDomain()); | 
 |  |  |       Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 
 |  |  |       ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, null); | 
 |  |  |  | 
 |  |  | 
 |  |  |       messageFactory.setDefaultContentEncodingCharset("gb2312"); | 
 |  |  |       request = messageFactory.createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader, | 
 |  |  |             toHeader, viaHeaders, maxForwards); | 
 |  |  |       List<String> agentParam = new ArrayList<>(); | 
 |  |  |       agentParam.add("wvp-pro"); | 
 |  |  |       UserAgentHeader userAgentHeader = sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); | 
 |  |  |       request.addHeader(userAgentHeader); | 
 |  |  |  | 
 |  |  |       ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "MANSCDP+xml"); | 
 |  |  |       request.setContent(content, contentTypeHeader); | 
 |  |  |       return request; |