|
|
@ -164,4 +164,51 @@ public class SIPRequestHeaderProvider { |
|
|
|
request.setContent(content, contentTypeHeader); |
|
|
|
return request; |
|
|
|
} |
|
|
|
|
|
|
|
public Request createSubscribeRequest(Device device, String content, String viaTag, String fromTag, String toTag, Integer expires, String event) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
|
|
|
Request request = null; |
|
|
|
// sipuri
|
|
|
|
SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
|
|
|
// via
|
|
|
|
ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
|
|
|
ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), |
|
|
|
device.getTransport(), viaTag); |
|
|
|
viaHeader.setRPort(); |
|
|
|
viaHeaders.add(viaHeader); |
|
|
|
// from
|
|
|
|
SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), |
|
|
|
sipConfig.getSipIp() + ":" + sipConfig.getSipPort()); |
|
|
|
Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
|
|
|
FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
|
|
|
// to
|
|
|
|
SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); |
|
|
|
Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
|
|
|
ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
|
|
|
// callid
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
|
|
|
: udpSipProvider.getNewCallId(); |
|
|
|
// Forwards
|
|
|
|
MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
|
|
|
// ceq
|
|
|
|
CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(1L, Request.SUBSCRIBE); |
|
|
|
|
|
|
|
request = sipFactory.createMessageFactory().createRequest(requestURI, Request.SUBSCRIBE, callIdHeader, cSeqHeader, fromHeader, |
|
|
|
toHeader, viaHeaders, maxForwards); |
|
|
|
|
|
|
|
|
|
|
|
Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); |
|
|
|
request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |
|
|
|
|
|
|
|
// Expires
|
|
|
|
ExpiresHeader expireHeader = sipFactory.createHeaderFactory().createExpiresHeader(expires); |
|
|
|
request.addHeader(expireHeader); |
|
|
|
|
|
|
|
// Event
|
|
|
|
EventHeader eventHeader = sipFactory.createHeaderFactory().createEventHeader(event); |
|
|
|
request.addHeader(eventHeader); |
|
|
|
|
|
|
|
ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "MANSCDP+xml"); |
|
|
|
request.setContent(content, contentTypeHeader); |
|
|
|
return request; |
|
|
|
} |
|
|
|
} |
|
|
|