From 6ecd801c2365feb4e65f6684065aa97f11615797 Mon Sep 17 00:00:00 2001 From: songww <songww@inspur.com> Date: 星期三, 13 五月 2020 20:38:32 +0800 Subject: [PATCH] 增加设备删除接口,只允许删除离线设备;增加视频停止播放接口 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 53 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java index 5adbf66..b4eb4d2 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java @@ -46,14 +46,15 @@ ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); + viaHeader.setRPort(); viaHeaders.add(viaHeader); // from - SipURI fromSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(), + SipURI fromSipURI = layer.getAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp() + ":" + sipConfig.getSipPort()); Address fromAddress = layer.getAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = layer.getHeaderFactory().createFromHeader(fromAddress, fromTag); // to - SipURI toSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(), host.getAddress()); + SipURI toSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); Address toAddress = layer.getAddressFactory().createAddress(toSipURI); ToHeader toHeader = layer.getHeaderFactory().createToHeader(toAddress, toTag); // callid @@ -71,6 +72,49 @@ return request; } +// public Request createInviteRequest(Device device, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException { +// Request request = null; +// Host host = device.getHost(); +// //璇锋眰琛� +// SipURI requestLine = layer.getAddressFactory().createSipURI(device.getDeviceId(), host.getAddress()); +// //via +// ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); +// ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); +// viaHeader.setRPort(); +// viaHeaders.add(viaHeader); +// //from +// SipURI fromSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(),sipConfig.getSipIp()+":"+sipConfig.getSipPort()); +// Address fromAddress = layer.getAddressFactory().createAddress(fromSipURI); +// FromHeader fromHeader = layer.getHeaderFactory().createFromHeader(fromAddress, fromTag); //蹇呴』瑕佹湁鏍囪锛屽惁鍒欐棤娉曞垱寤轰細璇濓紝鏃犳硶鍥炲簲ack +// //to +// SipURI toSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(),host.getAddress()); +// Address toAddress = layer.getAddressFactory().createAddress(toSipURI); +// ToHeader toHeader = layer.getHeaderFactory().createToHeader(toAddress,null); +// +// //callid +// CallIdHeader callIdHeader = null; +// if(device.getTransport().equals("TCP")) { +// callIdHeader = layer.getTcpSipProvider().getNewCallId(); +// } +// if(device.getTransport().equals("UDP")) { +// callIdHeader = layer.getUdpSipProvider().getNewCallId(); +// } +// +// //Forwards +// MaxForwardsHeader maxForwards = layer.getHeaderFactory().createMaxForwardsHeader(70); +// +// //ceq +// CSeqHeader cSeqHeader = layer.getHeaderFactory().createCSeqHeader(1L, Request.INVITE); +// request = layer.getMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); +// +// Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); +// request.addHeader(layer.getHeaderFactory().createContactHeader(concatAddress)); +// +// ContentTypeHeader contentTypeHeader = layer.getHeaderFactory().createContentTypeHeader("Application", "SDP"); +// request.setContent(content, contentTypeHeader); +// return request; +// } + public Request createInviteRequest(Device device, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException { Request request = null; Host host = device.getHost(); @@ -82,11 +126,11 @@ viaHeader.setRPort(); viaHeaders.add(viaHeader); //from - SipURI fromSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(),sipConfig.getSipIp()+":"+sipConfig.getSipPort()); + SipURI fromSipURI = layer.getAddressFactory().createSipURI(sipConfig.getSipId(),sipConfig.getSipDomain()); Address fromAddress = layer.getAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = layer.getHeaderFactory().createFromHeader(fromAddress, fromTag); //蹇呴』瑕佹湁鏍囪锛屽惁鍒欐棤娉曞垱寤轰細璇濓紝鏃犳硶鍥炲簲ack //to - SipURI toSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(),host.getAddress()); + SipURI toSipURI = layer.getAddressFactory().createSipURI(device.getDeviceId(),sipConfig.getSipDomain()); Address toAddress = layer.getAddressFactory().createAddress(toSipURI); ToHeader toHeader = layer.getHeaderFactory().createToHeader(toAddress,null); @@ -101,9 +145,14 @@ //Forwards MaxForwardsHeader maxForwards = layer.getHeaderFactory().createMaxForwardsHeader(70); + //ceq CSeqHeader cSeqHeader = layer.getHeaderFactory().createCSeqHeader(1L, Request.INVITE); request = layer.getMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); + + Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); + request.addHeader(layer.getHeaderFactory().createContactHeader(concatAddress)); + ContentTypeHeader contentTypeHeader = layer.getHeaderFactory().createContentTypeHeader("Application", "SDP"); request.setContent(content, contentTypeHeader); return request; -- Gitblit v1.8.0