Commit 221f99c764b51c3cd284c6e5a41492c26c5c7ffc
1 parent
b5fb8293
优化sip消息
Showing
10 changed files
with
128 additions
and
199 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
| @@ -2,8 +2,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd; | @@ -2,8 +2,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd; | ||
| 2 | 2 | ||
| 3 | import com.genersoft.iot.vmp.conf.SipConfig; | 3 | import com.genersoft.iot.vmp.conf.SipConfig; |
| 4 | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; | 4 | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; |
| 5 | -import com.genersoft.iot.vmp.gb28181.bean.SubscribeInfo; | ||
| 6 | -import com.genersoft.iot.vmp.gb28181.utils.HeaderUtils; | 5 | +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; |
| 7 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 6 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| 8 | import gov.nist.javax.sip.message.MessageFactoryImpl; | 7 | import gov.nist.javax.sip.message.MessageFactoryImpl; |
| 9 | import org.springframework.beans.factory.annotation.Autowired; | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -38,44 +37,6 @@ public class SIPRequestHeaderPlarformProvider { | @@ -38,44 +37,6 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 38 | @Autowired | 37 | @Autowired |
| 39 | private IRedisCatchStorage redisCatchStorage; | 38 | private IRedisCatchStorage redisCatchStorage; |
| 40 | 39 | ||
| 41 | - | ||
| 42 | - public Request createKeetpaliveMessageRequest(ParentPlatform parentPlatform, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { | ||
| 43 | - Request request = null; | ||
| 44 | - // sipuri | ||
| 45 | - SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); | ||
| 46 | - // via | ||
| 47 | - ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | ||
| 48 | - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), | ||
| 49 | - parentPlatform.getTransport(), viaTag); | ||
| 50 | - viaHeader.setRPort(); | ||
| 51 | - viaHeaders.add(viaHeader); | ||
| 52 | - // from | ||
| 53 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), | ||
| 54 | - sipConfig.getIp() + ":" + sipConfig.getPort()); | ||
| 55 | - Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | ||
| 56 | - FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); | ||
| 57 | - // to | ||
| 58 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort() ); | ||
| 59 | - Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | ||
| 60 | - ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); | ||
| 61 | - | ||
| 62 | - | ||
| 63 | - // Forwards | ||
| 64 | - MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | ||
| 65 | - // ceq | ||
| 66 | - CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.MESSAGE); | ||
| 67 | - | ||
| 68 | - request = sipFactory.createMessageFactory().createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader, | ||
| 69 | - toHeader, viaHeaders, maxForwards); | ||
| 70 | - | ||
| 71 | - List<String> agentParam = new ArrayList<>(); | ||
| 72 | - | ||
| 73 | - ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml"); | ||
| 74 | - request.setContent(content, contentTypeHeader); | ||
| 75 | - return request; | ||
| 76 | - } | ||
| 77 | - | ||
| 78 | - | ||
| 79 | public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag, CallIdHeader callIdHeader, boolean isRegister) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 40 | public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag, CallIdHeader callIdHeader, boolean isRegister) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 80 | Request request = null; | 41 | Request request = null; |
| 81 | String sipAddress = sipConfig.getIp() + ":" + sipConfig.getPort(); | 42 | String sipAddress = sipConfig.getIp() + ":" + sipConfig.getPort(); |
| @@ -88,16 +49,14 @@ public class SIPRequestHeaderPlarformProvider { | @@ -88,16 +49,14 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 88 | viaHeader.setRPort(); | 49 | viaHeader.setRPort(); |
| 89 | viaHeaders.add(viaHeader); | 50 | viaHeaders.add(viaHeader); |
| 90 | //from | 51 | //from |
| 91 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(),sipAddress); | 52 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(), sipConfig.getDomain()); |
| 92 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 53 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 93 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); | 54 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 94 | //to | 55 | //to |
| 95 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(),sipAddress); | 56 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(), sipConfig.getDomain()); |
| 96 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 57 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 97 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); | 58 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 98 | 59 | ||
| 99 | - | ||
| 100 | - | ||
| 101 | //Forwards | 60 | //Forwards |
| 102 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 61 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 103 | 62 | ||
| @@ -113,7 +72,7 @@ public class SIPRequestHeaderPlarformProvider { | @@ -113,7 +72,7 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 113 | ExpiresHeader expires = sipFactory.createHeaderFactory().createExpiresHeader(isRegister ? platform.getExpires() : 0); | 72 | ExpiresHeader expires = sipFactory.createHeaderFactory().createExpiresHeader(isRegister ? platform.getExpires() : 0); |
| 114 | request.addHeader(expires); | 73 | request.addHeader(expires); |
| 115 | 74 | ||
| 116 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | 75 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); |
| 117 | request.addHeader(userAgentHeader); | 76 | request.addHeader(userAgentHeader); |
| 118 | 77 | ||
| 119 | return request; | 78 | return request; |
| @@ -193,23 +152,24 @@ public class SIPRequestHeaderPlarformProvider { | @@ -193,23 +152,24 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 193 | } | 152 | } |
| 194 | 153 | ||
| 195 | 154 | ||
| 196 | - public Request createMessageRequest(ParentPlatform parentPlatform, String content, String fromTag, CallIdHeader callIdHeader) throws PeerUnavailableException, ParseException, InvalidArgumentException { | 155 | + public Request createMessageRequest(ParentPlatform parentPlatform, String content, String fromTag, String viaTag, CallIdHeader callIdHeader) throws PeerUnavailableException, ParseException, InvalidArgumentException { |
| 197 | Request request = null; | 156 | Request request = null; |
| 157 | + String serverAddress = parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort(); | ||
| 198 | // sipuri | 158 | // sipuri |
| 199 | - SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort()); | 159 | + SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress); |
| 200 | // via | 160 | // via |
| 201 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 161 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 202 | ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(parentPlatform.getDeviceIp(), Integer.parseInt(parentPlatform.getDevicePort()), | 162 | ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(parentPlatform.getDeviceIp(), Integer.parseInt(parentPlatform.getDevicePort()), |
| 203 | - parentPlatform.getTransport(), null); | 163 | + parentPlatform.getTransport(), viaTag); |
| 204 | viaHeader.setRPort(); | 164 | viaHeader.setRPort(); |
| 205 | viaHeaders.add(viaHeader); | 165 | viaHeaders.add(viaHeader); |
| 206 | // from | 166 | // from |
| 207 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), | ||
| 208 | - parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort()); | 167 | + // SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), parentPlatform.getDeviceIp() + ":" + parentPlatform.getDeviceIp()); |
| 168 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), sipConfig.getDomain()); | ||
| 209 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 169 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 210 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); | 170 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 211 | // to | 171 | // to |
| 212 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerGBDomain()); | 172 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress); |
| 213 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 173 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 214 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, null); | 174 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, null); |
| 215 | 175 |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
| @@ -2,7 +2,6 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd; | @@ -2,7 +2,6 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd; | ||
| 2 | 2 | ||
| 3 | import java.text.ParseException; | 3 | import java.text.ParseException; |
| 4 | import java.util.ArrayList; | 4 | import java.util.ArrayList; |
| 5 | -import java.util.List; | ||
| 6 | 5 | ||
| 7 | import javax.sip.*; | 6 | import javax.sip.*; |
| 8 | import javax.sip.address.Address; | 7 | import javax.sip.address.Address; |
| @@ -12,7 +11,7 @@ import javax.sip.message.Request; | @@ -12,7 +11,7 @@ import javax.sip.message.Request; | ||
| 12 | 11 | ||
| 13 | import com.genersoft.iot.vmp.common.StreamInfo; | 12 | import com.genersoft.iot.vmp.common.StreamInfo; |
| 14 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; | 13 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; |
| 15 | -import com.genersoft.iot.vmp.gb28181.utils.HeaderUtils; | 14 | +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; |
| 16 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 15 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| 17 | import gov.nist.javax.sip.SipProviderImpl; | 16 | import gov.nist.javax.sip.SipProviderImpl; |
| 18 | import gov.nist.javax.sip.SipStackImpl; | 17 | import gov.nist.javax.sip.SipStackImpl; |
| @@ -62,12 +61,11 @@ public class SIPRequestHeaderProvider { | @@ -62,12 +61,11 @@ public class SIPRequestHeaderProvider { | ||
| 62 | viaHeader.setRPort(); | 61 | viaHeader.setRPort(); |
| 63 | viaHeaders.add(viaHeader); | 62 | viaHeaders.add(viaHeader); |
| 64 | // from | 63 | // from |
| 65 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), | ||
| 66 | - sipConfig.getIp() + ":" + sipConfig.getPort()); | 64 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain()); |
| 67 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 65 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 68 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); | 66 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 69 | // to | 67 | // to |
| 70 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain()); | 68 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| 71 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 69 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 72 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); | 70 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 73 | 71 | ||
| @@ -94,11 +92,11 @@ public class SIPRequestHeaderProvider { | @@ -94,11 +92,11 @@ public class SIPRequestHeaderProvider { | ||
| 94 | viaHeaders.add(viaHeader); | 92 | viaHeaders.add(viaHeader); |
| 95 | 93 | ||
| 96 | //from | 94 | //from |
| 97 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); | 95 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain()); |
| 98 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 96 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 99 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack | 97 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack |
| 100 | //to | 98 | //to |
| 101 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain()); | 99 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| 102 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 100 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 103 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); | 101 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 104 | 102 | ||
| @@ -130,11 +128,11 @@ public class SIPRequestHeaderProvider { | @@ -130,11 +128,11 @@ public class SIPRequestHeaderProvider { | ||
| 130 | viaHeader.setRPort(); | 128 | viaHeader.setRPort(); |
| 131 | viaHeaders.add(viaHeader); | 129 | viaHeaders.add(viaHeader); |
| 132 | //from | 130 | //from |
| 133 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); | 131 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain()); |
| 134 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 132 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 135 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack | 133 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack |
| 136 | //to | 134 | //to |
| 137 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId, sipConfig.getDomain()); | 135 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| 138 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 136 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 139 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); | 137 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 140 | 138 | ||
| @@ -170,7 +168,7 @@ public class SIPRequestHeaderProvider { | @@ -170,7 +168,7 @@ public class SIPRequestHeaderProvider { | ||
| 170 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 168 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 171 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack | 169 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack |
| 172 | //to | 170 | //to |
| 173 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain()); | 171 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,device.getHostAddress()); |
| 174 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 172 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 175 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,toTag); | 173 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,toTag); |
| 176 | 174 | ||
| @@ -198,12 +196,11 @@ public class SIPRequestHeaderProvider { | @@ -198,12 +196,11 @@ public class SIPRequestHeaderProvider { | ||
| 198 | viaHeader.setRPort(); | 196 | viaHeader.setRPort(); |
| 199 | viaHeaders.add(viaHeader); | 197 | viaHeaders.add(viaHeader); |
| 200 | // from | 198 | // from |
| 201 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), | ||
| 202 | - sipConfig.getIp() + ":" + sipConfig.getPort()); | 199 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain()); |
| 203 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); | 200 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 204 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); | 201 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 205 | // to | 202 | // to |
| 206 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain()); | 203 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| 207 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 204 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 208 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); | 205 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 209 | 206 | ||
| @@ -267,7 +264,7 @@ public class SIPRequestHeaderProvider { | @@ -267,7 +264,7 @@ public class SIPRequestHeaderProvider { | ||
| 267 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory() | 264 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory() |
| 268 | .createSipURI(sipConfig.getId(), sipConfig.getIp() + ":" + sipConfig.getPort())); | 265 | .createSipURI(sipConfig.getId(), sipConfig.getIp() + ":" + sipConfig.getPort())); |
| 269 | infoRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); | 266 | infoRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |
| 270 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | 267 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); |
| 271 | infoRequest.addHeader(userAgentHeader); | 268 | infoRequest.addHeader(userAgentHeader); |
| 272 | 269 | ||
| 273 | ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", | 270 | ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| @@ -10,7 +10,7 @@ import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; | @@ -10,7 +10,7 @@ import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; | ||
| 10 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; | 10 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; |
| 11 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander; | 11 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander; |
| 12 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderProvider; | 12 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderProvider; |
| 13 | -import com.genersoft.iot.vmp.gb28181.utils.HeaderUtils; | 13 | +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; |
| 14 | import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory; | 14 | import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory; |
| 15 | import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange; | 15 | import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange; |
| 16 | import com.genersoft.iot.vmp.utils.DateUtil; | 16 | import com.genersoft.iot.vmp.utils.DateUtil; |
| @@ -244,13 +244,11 @@ public class SIPCommander implements ISIPCommander { | @@ -244,13 +244,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 244 | ptzXml.append("<ControlPriority>5</ControlPriority>\r\n"); | 244 | ptzXml.append("<ControlPriority>5</ControlPriority>\r\n"); |
| 245 | ptzXml.append("</Info>\r\n"); | 245 | ptzXml.append("</Info>\r\n"); |
| 246 | ptzXml.append("</Control>\r\n"); | 246 | ptzXml.append("</Control>\r\n"); |
| 247 | - | ||
| 248 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 249 | 247 | ||
| 250 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 248 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 251 | : udpSipProvider.getNewCallId(); | 249 | : udpSipProvider.getNewCallId(); |
| 252 | 250 | ||
| 253 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | 251 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 254 | 252 | ||
| 255 | transmitRequest(device, request); | 253 | transmitRequest(device, request); |
| 256 | return true; | 254 | return true; |
| @@ -288,12 +286,11 @@ public class SIPCommander implements ISIPCommander { | @@ -288,12 +286,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 288 | ptzXml.append("</Info>\r\n"); | 286 | ptzXml.append("</Info>\r\n"); |
| 289 | ptzXml.append("</Control>\r\n"); | 287 | ptzXml.append("</Control>\r\n"); |
| 290 | 288 | ||
| 291 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 292 | 289 | ||
| 293 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 290 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 294 | : udpSipProvider.getNewCallId(); | 291 | : udpSipProvider.getNewCallId(); |
| 295 | 292 | ||
| 296 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | 293 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 297 | transmitRequest(device, request); | 294 | transmitRequest(device, request); |
| 298 | return true; | 295 | return true; |
| 299 | } catch (SipException | ParseException | InvalidArgumentException e) { | 296 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -324,12 +321,11 @@ public class SIPCommander implements ISIPCommander { | @@ -324,12 +321,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 324 | ptzXml.append("</Info>\r\n"); | 321 | ptzXml.append("</Info>\r\n"); |
| 325 | ptzXml.append("</Control>\r\n"); | 322 | ptzXml.append("</Control>\r\n"); |
| 326 | 323 | ||
| 327 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 328 | 324 | ||
| 329 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 325 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 330 | : udpSipProvider.getNewCallId(); | 326 | : udpSipProvider.getNewCallId(); |
| 331 | 327 | ||
| 332 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | 328 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 333 | transmitRequest(device, request, errorEvent, okEvent); | 329 | transmitRequest(device, request, errorEvent, okEvent); |
| 334 | return true; | 330 | return true; |
| 335 | } catch (SipException | ParseException | InvalidArgumentException e) { | 331 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -421,12 +417,10 @@ public class SIPCommander implements ISIPCommander { | @@ -421,12 +417,10 @@ public class SIPCommander implements ISIPCommander { | ||
| 421 | // f字段:f= v/编码格式/分辨率/帧率/码率类型/码率大小a/编码格式/码率大小/采样率 | 417 | // f字段:f= v/编码格式/分辨率/帧率/码率类型/码率大小a/编码格式/码率大小/采样率 |
| 422 | // content.append("f=v/2/5/25/1/4000a/1/8/1" + "\r\n"); // 未发现支持此特性的设备 | 418 | // content.append("f=v/2/5/25/1/4000a/1/8/1" + "\r\n"); // 未发现支持此特性的设备 |
| 423 | 419 | ||
| 424 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 425 | - | ||
| 426 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 420 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 427 | : udpSipProvider.getNewCallId(); | 421 | : udpSipProvider.getNewCallId(); |
| 428 | 422 | ||
| 429 | - Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrcInfo.getSsrc(), callIdHeader); | 423 | + Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, SipUtils.getNewFromTag(), null, ssrcInfo.getSsrc(), callIdHeader); |
| 430 | 424 | ||
| 431 | transmitRequest(device, request, (e -> { | 425 | transmitRequest(device, request, (e -> { |
| 432 | streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); | 426 | streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
| @@ -519,8 +513,6 @@ public class SIPCommander implements ISIPCommander { | @@ -519,8 +513,6 @@ public class SIPCommander implements ISIPCommander { | ||
| 519 | } | 513 | } |
| 520 | 514 | ||
| 521 | content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc | 515 | content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc |
| 522 | - | ||
| 523 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 524 | 516 | ||
| 525 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 517 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 526 | : udpSipProvider.getNewCallId(); | 518 | : udpSipProvider.getNewCallId(); |
| @@ -533,7 +525,7 @@ public class SIPCommander implements ISIPCommander { | @@ -533,7 +525,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 533 | } | 525 | } |
| 534 | subscribe.removeSubscribe(hookSubscribe); | 526 | subscribe.removeSubscribe(hookSubscribe); |
| 535 | }); | 527 | }); |
| 536 | - Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader, ssrcInfo.getSsrc()); | 528 | + Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader, ssrcInfo.getSsrc()); |
| 537 | 529 | ||
| 538 | transmitRequest(device, request, errorEvent, event -> { | 530 | transmitRequest(device, request, errorEvent, event -> { |
| 539 | ResponseEvent responseEvent = (ResponseEvent) event.event; | 531 | ResponseEvent responseEvent = (ResponseEvent) event.event; |
| @@ -625,8 +617,6 @@ public class SIPCommander implements ISIPCommander { | @@ -625,8 +617,6 @@ public class SIPCommander implements ISIPCommander { | ||
| 625 | content.append("a=downloadspeed:" + downloadSpeed + "\r\n"); | 617 | content.append("a=downloadspeed:" + downloadSpeed + "\r\n"); |
| 626 | 618 | ||
| 627 | content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc | 619 | content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc |
| 628 | - | ||
| 629 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 630 | 620 | ||
| 631 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 621 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 632 | : udpSipProvider.getNewCallId(); | 622 | : udpSipProvider.getNewCallId(); |
| @@ -649,7 +639,7 @@ public class SIPCommander implements ISIPCommander { | @@ -649,7 +639,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 649 | }); | 639 | }); |
| 650 | }); | 640 | }); |
| 651 | 641 | ||
| 652 | - Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader, ssrcInfo.getSsrc()); | 642 | + Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader, ssrcInfo.getSsrc()); |
| 653 | if (inviteStreamCallback != null) { | 643 | if (inviteStreamCallback != null) { |
| 654 | inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null, callIdHeader.getCallId(), "rtp", ssrcInfo.getStream())); | 644 | inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null, callIdHeader.getCallId(), "rtp", ssrcInfo.getStream())); |
| 655 | } | 645 | } |
| @@ -737,7 +727,7 @@ public class SIPCommander implements ISIPCommander { | @@ -737,7 +727,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 737 | // 增加Contact header | 727 | // 增加Contact header |
| 738 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); | 728 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); |
| 739 | byeRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); | 729 | byeRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |
| 740 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | 730 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); |
| 741 | byeRequest.addHeader(userAgentHeader); | 731 | byeRequest.addHeader(userAgentHeader); |
| 742 | ClientTransaction clientTransaction = null; | 732 | ClientTransaction clientTransaction = null; |
| 743 | if("TCP".equals(protocol)) { | 733 | if("TCP".equals(protocol)) { |
| @@ -790,13 +780,11 @@ public class SIPCommander implements ISIPCommander { | @@ -790,13 +780,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 790 | broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); | 780 | broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); |
| 791 | broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); | 781 | broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); |
| 792 | broadcastXml.append("</Notify>\r\n"); | 782 | broadcastXml.append("</Notify>\r\n"); |
| 793 | - | ||
| 794 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 795 | - | 783 | + |
| 796 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 784 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 797 | : udpSipProvider.getNewCallId(); | 785 | : udpSipProvider.getNewCallId(); |
| 798 | 786 | ||
| 799 | - Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), "z9hG4bK-ViaBcst-" + tm, "FromBcst" + tm, null, callIdHeader); | 787 | + Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 800 | transmitRequest(device, request); | 788 | transmitRequest(device, request); |
| 801 | return true; | 789 | return true; |
| 802 | } catch (SipException | ParseException | InvalidArgumentException e) { | 790 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -816,13 +804,11 @@ public class SIPCommander implements ISIPCommander { | @@ -816,13 +804,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 816 | broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); | 804 | broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); |
| 817 | broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); | 805 | broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); |
| 818 | broadcastXml.append("</Notify>\r\n"); | 806 | broadcastXml.append("</Notify>\r\n"); |
| 819 | - | ||
| 820 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 821 | 807 | ||
| 822 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 808 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 823 | : udpSipProvider.getNewCallId(); | 809 | : udpSipProvider.getNewCallId(); |
| 824 | 810 | ||
| 825 | - Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), "z9hG4bK-ViaBcst-" + tm, "FromBcst" + tm, null, callIdHeader); | 811 | + Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 826 | transmitRequest(device, request, errorEvent); | 812 | transmitRequest(device, request, errorEvent); |
| 827 | } catch (SipException | ParseException | InvalidArgumentException e) { | 813 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| 828 | e.printStackTrace(); | 814 | e.printStackTrace(); |
| @@ -853,13 +839,11 @@ public class SIPCommander implements ISIPCommander { | @@ -853,13 +839,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 853 | } | 839 | } |
| 854 | cmdXml.append("<RecordCmd>" + recordCmdStr + "</RecordCmd>\r\n"); | 840 | cmdXml.append("<RecordCmd>" + recordCmdStr + "</RecordCmd>\r\n"); |
| 855 | cmdXml.append("</Control>\r\n"); | 841 | cmdXml.append("</Control>\r\n"); |
| 856 | - | ||
| 857 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 858 | 842 | ||
| 859 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 843 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 860 | : udpSipProvider.getNewCallId(); | 844 | : udpSipProvider.getNewCallId(); |
| 861 | 845 | ||
| 862 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromRecord" + tm, null, callIdHeader); | 846 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 863 | transmitRequest(device, request, errorEvent); | 847 | transmitRequest(device, request, errorEvent); |
| 864 | return true; | 848 | return true; |
| 865 | } catch (SipException | ParseException | InvalidArgumentException e) { | 849 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -885,13 +869,11 @@ public class SIPCommander implements ISIPCommander { | @@ -885,13 +869,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 885 | cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); | 869 | cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 886 | cmdXml.append("<TeleBoot>Boot</TeleBoot>\r\n"); | 870 | cmdXml.append("<TeleBoot>Boot</TeleBoot>\r\n"); |
| 887 | cmdXml.append("</Control>\r\n"); | 871 | cmdXml.append("</Control>\r\n"); |
| 888 | - | ||
| 889 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 890 | 872 | ||
| 891 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 873 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 892 | : udpSipProvider.getNewCallId(); | 874 | : udpSipProvider.getNewCallId(); |
| 893 | 875 | ||
| 894 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null, callIdHeader); | 876 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 895 | transmitRequest(device, request); | 877 | transmitRequest(device, request); |
| 896 | return true; | 878 | return true; |
| 897 | } catch (SipException | ParseException | InvalidArgumentException e) { | 879 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -918,13 +900,11 @@ public class SIPCommander implements ISIPCommander { | @@ -918,13 +900,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 918 | cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); | 900 | cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 919 | cmdXml.append("<GuardCmd>" + guardCmdStr + "</GuardCmd>\r\n"); | 901 | cmdXml.append("<GuardCmd>" + guardCmdStr + "</GuardCmd>\r\n"); |
| 920 | cmdXml.append("</Control>\r\n"); | 902 | cmdXml.append("</Control>\r\n"); |
| 921 | - | ||
| 922 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 923 | 903 | ||
| 924 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 904 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 925 | : udpSipProvider.getNewCallId(); | 905 | : udpSipProvider.getNewCallId(); |
| 926 | 906 | ||
| 927 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null, callIdHeader); | 907 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 928 | transmitRequest(device, request, errorEvent); | 908 | transmitRequest(device, request, errorEvent); |
| 929 | return true; | 909 | return true; |
| 930 | } catch (SipException | ParseException | InvalidArgumentException e) { | 910 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -962,13 +942,11 @@ public class SIPCommander implements ISIPCommander { | @@ -962,13 +942,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 962 | cmdXml.append("</Info>\r\n"); | 942 | cmdXml.append("</Info>\r\n"); |
| 963 | } | 943 | } |
| 964 | cmdXml.append("</Control>\r\n"); | 944 | cmdXml.append("</Control>\r\n"); |
| 965 | - | ||
| 966 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 967 | 945 | ||
| 968 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 946 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 969 | : udpSipProvider.getNewCallId(); | 947 | : udpSipProvider.getNewCallId(); |
| 970 | 948 | ||
| 971 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromAlarm" + tm, null, callIdHeader); | 949 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 972 | transmitRequest(device, request, errorEvent); | 950 | transmitRequest(device, request, errorEvent); |
| 973 | return true; | 951 | return true; |
| 974 | } catch (SipException | ParseException | InvalidArgumentException e) { | 952 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -999,13 +977,11 @@ public class SIPCommander implements ISIPCommander { | @@ -999,13 +977,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 999 | } | 977 | } |
| 1000 | cmdXml.append("<IFameCmd>Send</IFameCmd>\r\n"); | 978 | cmdXml.append("<IFameCmd>Send</IFameCmd>\r\n"); |
| 1001 | cmdXml.append("</Control>\r\n"); | 979 | cmdXml.append("</Control>\r\n"); |
| 1002 | - | ||
| 1003 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1004 | 980 | ||
| 1005 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 981 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1006 | : udpSipProvider.getNewCallId(); | 982 | : udpSipProvider.getNewCallId(); |
| 1007 | 983 | ||
| 1008 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null, callIdHeader); | 984 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 1009 | transmitRequest(device, request); | 985 | transmitRequest(device, request); |
| 1010 | return true; | 986 | return true; |
| 1011 | } catch (SipException | ParseException | InvalidArgumentException e) { | 987 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1054,13 +1030,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1054,13 +1030,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1054 | } | 1030 | } |
| 1055 | cmdXml.append("</HomePosition>\r\n"); | 1031 | cmdXml.append("</HomePosition>\r\n"); |
| 1056 | cmdXml.append("</Control>\r\n"); | 1032 | cmdXml.append("</Control>\r\n"); |
| 1057 | - | ||
| 1058 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1059 | 1033 | ||
| 1060 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1034 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1061 | : udpSipProvider.getNewCallId(); | 1035 | : udpSipProvider.getNewCallId(); |
| 1062 | 1036 | ||
| 1063 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null, callIdHeader); | 1037 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 1064 | transmitRequest(device, request, errorEvent); | 1038 | transmitRequest(device, request, errorEvent); |
| 1065 | return true; | 1039 | return true; |
| 1066 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1040 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1126,13 +1100,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1126,13 +1100,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1126 | } | 1100 | } |
| 1127 | cmdXml.append("</BasicParam>\r\n"); | 1101 | cmdXml.append("</BasicParam>\r\n"); |
| 1128 | cmdXml.append("</Control>\r\n"); | 1102 | cmdXml.append("</Control>\r\n"); |
| 1129 | - | ||
| 1130 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1131 | 1103 | ||
| 1132 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1104 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1133 | : udpSipProvider.getNewCallId(); | 1105 | : udpSipProvider.getNewCallId(); |
| 1134 | 1106 | ||
| 1135 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null, callIdHeader); | 1107 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 1136 | transmitRequest(device, request, errorEvent); | 1108 | transmitRequest(device, request, errorEvent); |
| 1137 | return true; | 1109 | return true; |
| 1138 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1110 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1157,13 +1129,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1157,13 +1129,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1157 | catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); | 1129 | catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); |
| 1158 | catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); | 1130 | catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 1159 | catalogXml.append("</Query>\r\n"); | 1131 | catalogXml.append("</Query>\r\n"); |
| 1160 | - | ||
| 1161 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1162 | 1132 | ||
| 1163 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1133 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1164 | : udpSipProvider.getNewCallId(); | 1134 | : udpSipProvider.getNewCallId(); |
| 1165 | 1135 | ||
| 1166 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), null, "FromStatus" + tm, null, callIdHeader); | 1136 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 1167 | 1137 | ||
| 1168 | transmitRequest(device, request, errorEvent); | 1138 | transmitRequest(device, request, errorEvent); |
| 1169 | return true; | 1139 | return true; |
| @@ -1190,13 +1160,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1190,13 +1160,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1190 | catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); | 1160 | catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); |
| 1191 | catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); | 1161 | catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 1192 | catalogXml.append("</Query>\r\n"); | 1162 | catalogXml.append("</Query>\r\n"); |
| 1193 | - | ||
| 1194 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1195 | 1163 | ||
| 1196 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1164 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1197 | : udpSipProvider.getNewCallId(); | 1165 | : udpSipProvider.getNewCallId(); |
| 1198 | 1166 | ||
| 1199 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaDeviceInfo-" + tm, "FromDev" + tm, null, callIdHeader); | 1167 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 1200 | 1168 | ||
| 1201 | transmitRequest(device, request); | 1169 | transmitRequest(device, request); |
| 1202 | 1170 | ||
| @@ -1223,13 +1191,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1223,13 +1191,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1223 | catalogXml.append(" <SN>" + sn + "</SN>\r\n"); | 1191 | catalogXml.append(" <SN>" + sn + "</SN>\r\n"); |
| 1224 | catalogXml.append(" <DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); | 1192 | catalogXml.append(" <DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 1225 | catalogXml.append("</Query>\r\n"); | 1193 | catalogXml.append("</Query>\r\n"); |
| 1226 | - | ||
| 1227 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1228 | 1194 | ||
| 1229 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1195 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1230 | : udpSipProvider.getNewCallId(); | 1196 | : udpSipProvider.getNewCallId(); |
| 1231 | 1197 | ||
| 1232 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK" + tm, tm, null, callIdHeader); | 1198 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 1233 | 1199 | ||
| 1234 | transmitRequest(device, request, errorEvent); | 1200 | transmitRequest(device, request, errorEvent); |
| 1235 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1201 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1277,13 +1243,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1277,13 +1243,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1277 | } | 1243 | } |
| 1278 | recordInfoXml.append("</Query>\r\n"); | 1244 | recordInfoXml.append("</Query>\r\n"); |
| 1279 | 1245 | ||
| 1280 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1281 | - | ||
| 1282 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1246 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1283 | : udpSipProvider.getNewCallId(); | 1247 | : udpSipProvider.getNewCallId(); |
| 1284 | 1248 | ||
| 1285 | Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), | 1249 | Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), |
| 1286 | - "z9hG4bK-ViaRecordInfo-" + tm, "fromRec" + tm, null, callIdHeader); | 1250 | + SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 1287 | 1251 | ||
| 1288 | transmitRequest(device, request, errorEvent, okEvent); | 1252 | transmitRequest(device, request, errorEvent, okEvent); |
| 1289 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1253 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1336,12 +1300,10 @@ public class SIPCommander implements ISIPCommander { | @@ -1336,12 +1300,10 @@ public class SIPCommander implements ISIPCommander { | ||
| 1336 | } | 1300 | } |
| 1337 | cmdXml.append("</Query>\r\n"); | 1301 | cmdXml.append("</Query>\r\n"); |
| 1338 | 1302 | ||
| 1339 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1340 | - | ||
| 1341 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1303 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1342 | : udpSipProvider.getNewCallId(); | 1304 | : udpSipProvider.getNewCallId(); |
| 1343 | 1305 | ||
| 1344 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromAlarm" + tm, null, callIdHeader); | 1306 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 1345 | transmitRequest(device, request, errorEvent); | 1307 | transmitRequest(device, request, errorEvent); |
| 1346 | return true; | 1308 | return true; |
| 1347 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1309 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1374,12 +1336,10 @@ public class SIPCommander implements ISIPCommander { | @@ -1374,12 +1336,10 @@ public class SIPCommander implements ISIPCommander { | ||
| 1374 | cmdXml.append("<ConfigType>" + configType + "</ConfigType>\r\n"); | 1336 | cmdXml.append("<ConfigType>" + configType + "</ConfigType>\r\n"); |
| 1375 | cmdXml.append("</Query>\r\n"); | 1337 | cmdXml.append("</Query>\r\n"); |
| 1376 | 1338 | ||
| 1377 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1378 | - | ||
| 1379 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1339 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1380 | : udpSipProvider.getNewCallId(); | 1340 | : udpSipProvider.getNewCallId(); |
| 1381 | 1341 | ||
| 1382 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null, callIdHeader); | 1342 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 1383 | transmitRequest(device, request, errorEvent); | 1343 | transmitRequest(device, request, errorEvent); |
| 1384 | return true; | 1344 | return true; |
| 1385 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1345 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1409,12 +1369,10 @@ public class SIPCommander implements ISIPCommander { | @@ -1409,12 +1369,10 @@ public class SIPCommander implements ISIPCommander { | ||
| 1409 | } | 1369 | } |
| 1410 | cmdXml.append("</Query>\r\n"); | 1370 | cmdXml.append("</Query>\r\n"); |
| 1411 | 1371 | ||
| 1412 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1413 | - | ||
| 1414 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1372 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1415 | : udpSipProvider.getNewCallId(); | 1373 | : udpSipProvider.getNewCallId(); |
| 1416 | 1374 | ||
| 1417 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null, callIdHeader); | 1375 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null, callIdHeader); |
| 1418 | transmitRequest(device, request, errorEvent); | 1376 | transmitRequest(device, request, errorEvent); |
| 1419 | return true; | 1377 | return true; |
| 1420 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1378 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1441,12 +1399,10 @@ public class SIPCommander implements ISIPCommander { | @@ -1441,12 +1399,10 @@ public class SIPCommander implements ISIPCommander { | ||
| 1441 | mobilePostitionXml.append("<Interval>60</Interval>\r\n"); | 1399 | mobilePostitionXml.append("<Interval>60</Interval>\r\n"); |
| 1442 | mobilePostitionXml.append("</Query>\r\n"); | 1400 | mobilePostitionXml.append("</Query>\r\n"); |
| 1443 | 1401 | ||
| 1444 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1445 | - | ||
| 1446 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1402 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1447 | : udpSipProvider.getNewCallId(); | 1403 | : udpSipProvider.getNewCallId(); |
| 1448 | 1404 | ||
| 1449 | - Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, callIdHeader); | 1405 | + Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 1450 | 1406 | ||
| 1451 | transmitRequest(device, request, errorEvent); | 1407 | transmitRequest(device, request, errorEvent); |
| 1452 | 1408 | ||
| @@ -1495,10 +1451,9 @@ public class SIPCommander implements ISIPCommander { | @@ -1495,10 +1451,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 1495 | request.removeHeader(CSeqHeader.NAME); | 1451 | request.removeHeader(CSeqHeader.NAME); |
| 1496 | request.addHeader(cSeqHeader); | 1452 | request.addHeader(cSeqHeader); |
| 1497 | }else { | 1453 | }else { |
| 1498 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1499 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1454 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1500 | : udpSipProvider.getNewCallId(); | 1455 | : udpSipProvider.getNewCallId(); |
| 1501 | - request = headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, device.getSubscribeCycleForMobilePosition(), "presence" ,callIdHeader); //Position;id=" + tm.substring(tm.length() - 4)); | 1456 | + request = headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, device.getSubscribeCycleForMobilePosition(), "presence" ,callIdHeader); //Position;id=" + tm.substring(tm.length() - 4)); |
| 1502 | } | 1457 | } |
| 1503 | transmitRequest(device, request, errorEvent, okEvent); | 1458 | transmitRequest(device, request, errorEvent, okEvent); |
| 1504 | 1459 | ||
| @@ -1553,12 +1508,10 @@ public class SIPCommander implements ISIPCommander { | @@ -1553,12 +1508,10 @@ public class SIPCommander implements ISIPCommander { | ||
| 1553 | } | 1508 | } |
| 1554 | cmdXml.append("</Query>\r\n"); | 1509 | cmdXml.append("</Query>\r\n"); |
| 1555 | 1510 | ||
| 1556 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1557 | - | ||
| 1558 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1511 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1559 | : udpSipProvider.getNewCallId(); | 1512 | : udpSipProvider.getNewCallId(); |
| 1560 | 1513 | ||
| 1561 | - Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, expires, "presence" , callIdHeader); | 1514 | + Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, expires, "presence" , callIdHeader); |
| 1562 | transmitRequest(device, request); | 1515 | transmitRequest(device, request); |
| 1563 | 1516 | ||
| 1564 | return true; | 1517 | return true; |
| @@ -1600,14 +1553,12 @@ public class SIPCommander implements ISIPCommander { | @@ -1600,14 +1553,12 @@ public class SIPCommander implements ISIPCommander { | ||
| 1600 | request.addHeader(cSeqHeader); | 1553 | request.addHeader(cSeqHeader); |
| 1601 | 1554 | ||
| 1602 | }else { | 1555 | }else { |
| 1603 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1604 | - | ||
| 1605 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1556 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1606 | : udpSipProvider.getNewCallId(); | 1557 | : udpSipProvider.getNewCallId(); |
| 1607 | 1558 | ||
| 1608 | // 有效时间默认为60秒以上 | 1559 | // 有效时间默认为60秒以上 |
| 1609 | - request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), "z9hG4bK-viaPos-" + tm, | ||
| 1610 | - "fromTagPos" + tm, null, device.getSubscribeCycleForCatalog(), "Catalog" , | 1560 | + request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), SipUtils.getNewViaTag(), |
| 1561 | + SipUtils.getNewFromTag(), null, device.getSubscribeCycleForCatalog(), "Catalog" , | ||
| 1611 | callIdHeader); | 1562 | callIdHeader); |
| 1612 | 1563 | ||
| 1613 | } | 1564 | } |
| @@ -1636,10 +1587,9 @@ public class SIPCommander implements ISIPCommander { | @@ -1636,10 +1587,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 1636 | } | 1587 | } |
| 1637 | dragXml.append(cmdString); | 1588 | dragXml.append(cmdString); |
| 1638 | dragXml.append("</Control>\r\n"); | 1589 | dragXml.append("</Control>\r\n"); |
| 1639 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1640 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1590 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1641 | : udpSipProvider.getNewCallId(); | 1591 | : udpSipProvider.getNewCallId(); |
| 1642 | - Request request = headerProvider.createMessageRequest(device, dragXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | 1592 | + Request request = headerProvider.createMessageRequest(device, dragXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 1643 | logger.debug("拉框信令: " + request.toString()); | 1593 | logger.debug("拉框信令: " + request.toString()); |
| 1644 | transmitRequest(device, request); | 1594 | transmitRequest(device, request); |
| 1645 | return true; | 1595 | return true; |
| @@ -1668,7 +1618,7 @@ public class SIPCommander implements ISIPCommander { | @@ -1668,7 +1618,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 1668 | if (request.getHeader(UserAgentHeader.NAME) == null) { | 1618 | if (request.getHeader(UserAgentHeader.NAME) == null) { |
| 1669 | UserAgentHeader userAgentHeader = null; | 1619 | UserAgentHeader userAgentHeader = null; |
| 1670 | try { | 1620 | try { |
| 1671 | - userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | 1621 | + userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); |
| 1672 | } catch (ParseException e) { | 1622 | } catch (ParseException e) { |
| 1673 | logger.error("添加UserAgentHeader失败", e); | 1623 | logger.error("添加UserAgentHeader失败", e); |
| 1674 | } | 1624 | } |
| @@ -1883,8 +1833,7 @@ public class SIPCommander implements ISIPCommander { | @@ -1883,8 +1833,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 1883 | 1833 | ||
| 1884 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 1834 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1885 | : udpSipProvider.getNewCallId(); | 1835 | : udpSipProvider.getNewCallId(); |
| 1886 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 1887 | - Request request = headerProvider.createMessageRequest(device, deviceStatusXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | 1836 | + Request request = headerProvider.createMessageRequest(device, deviceStatusXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, callIdHeader); |
| 1888 | transmitRequest(device, request); | 1837 | transmitRequest(device, request); |
| 1889 | 1838 | ||
| 1890 | 1839 |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
| @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.*; | @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.*; | ||
| 4 | import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; | 4 | import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; |
| 5 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; | 5 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; |
| 6 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderPlarformProvider; | 6 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderPlarformProvider; |
| 7 | +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; | ||
| 7 | import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo; | 8 | import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo; |
| 8 | import com.genersoft.iot.vmp.utils.DateUtil; | 9 | import com.genersoft.iot.vmp.utils.DateUtil; |
| 9 | import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; | 10 | import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; |
| @@ -26,19 +27,16 @@ import org.springframework.context.annotation.Lazy; | @@ -26,19 +27,16 @@ import org.springframework.context.annotation.Lazy; | ||
| 26 | import org.springframework.lang.Nullable; | 27 | import org.springframework.lang.Nullable; |
| 27 | import org.springframework.stereotype.Component; | 28 | import org.springframework.stereotype.Component; |
| 28 | import org.springframework.util.ObjectUtils; | 29 | import org.springframework.util.ObjectUtils; |
| 29 | -import org.springframework.util.StringUtils; | ||
| 30 | 30 | ||
| 31 | import javax.sip.*; | 31 | import javax.sip.*; |
| 32 | import javax.sip.address.SipURI; | 32 | import javax.sip.address.SipURI; |
| 33 | import javax.sip.header.*; | 33 | import javax.sip.header.*; |
| 34 | import javax.sip.message.Request; | 34 | import javax.sip.message.Request; |
| 35 | import java.lang.reflect.Field; | 35 | import java.lang.reflect.Field; |
| 36 | -import java.net.InetAddress; | ||
| 37 | import java.text.ParseException; | 36 | import java.text.ParseException; |
| 38 | import java.util.ArrayList; | 37 | import java.util.ArrayList; |
| 39 | import java.util.HashSet; | 38 | import java.util.HashSet; |
| 40 | import java.util.List; | 39 | import java.util.List; |
| 41 | -import java.util.UUID; | ||
| 42 | 40 | ||
| 43 | @Component | 41 | @Component |
| 44 | @DependsOn("sipLayer") | 42 | @DependsOn("sipLayer") |
| @@ -89,7 +87,6 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -89,7 +87,6 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 89 | SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) { | 87 | SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) { |
| 90 | try { | 88 | try { |
| 91 | Request request; | 89 | Request request; |
| 92 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 93 | if (!registerAgain ) { | 90 | if (!registerAgain ) { |
| 94 | CallIdHeader callIdHeader = null; | 91 | CallIdHeader callIdHeader = null; |
| 95 | if(parentPlatform.getTransport().equalsIgnoreCase("TCP")) { | 92 | if(parentPlatform.getTransport().equalsIgnoreCase("TCP")) { |
| @@ -100,8 +97,8 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -100,8 +97,8 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 100 | } | 97 | } |
| 101 | 98 | ||
| 102 | request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, | 99 | request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, |
| 103 | - redisCatchStorage.getCSEQ(), "FromRegister" + tm, | ||
| 104 | - "z9hG4bK-" + UUID.randomUUID().toString().replace("-", ""), callIdHeader, isRegister); | 100 | + redisCatchStorage.getCSEQ(), SipUtils.getNewFromTag(), |
| 101 | + SipUtils.getNewViaTag(), callIdHeader, isRegister); | ||
| 105 | // 将 callid 写入缓存, 等注册成功可以更新状态 | 102 | // 将 callid 写入缓存, 等注册成功可以更新状态 |
| 106 | String callIdFromHeader = callIdHeader.getCallId(); | 103 | String callIdFromHeader = callIdHeader.getCallId(); |
| 107 | redisCatchStorage.updatePlatformRegisterInfo(callIdFromHeader, PlatformRegisterInfo.getInstance(parentPlatform.getServerGBId(), isRegister)); | 104 | redisCatchStorage.updatePlatformRegisterInfo(callIdFromHeader, PlatformRegisterInfo.getInstance(parentPlatform.getServerGBId(), isRegister)); |
| @@ -121,7 +118,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -121,7 +118,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 121 | }else { | 118 | }else { |
| 122 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 119 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 123 | : udpSipProvider.getNewCallId(); | 120 | : udpSipProvider.getNewCallId(); |
| 124 | - request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, "FromRegister" + tm, null, callId, www, callIdHeader, isRegister); | 121 | + request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, SipUtils.getNewFromTag(), null, callId, www, callIdHeader, isRegister); |
| 125 | } | 122 | } |
| 126 | 123 | ||
| 127 | transmitRequest(parentPlatform, request, null, okEvent); | 124 | transmitRequest(parentPlatform, request, null, okEvent); |
| @@ -155,12 +152,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -155,12 +152,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 155 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 152 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 156 | : udpSipProvider.getNewCallId(); | 153 | : udpSipProvider.getNewCallId(); |
| 157 | 154 | ||
| 158 | - Request request = headerProviderPlarformProvider.createKeetpaliveMessageRequest( | 155 | + Request request = headerProviderPlarformProvider.createMessageRequest( |
| 159 | parentPlatform, | 156 | parentPlatform, |
| 160 | keepaliveXml.toString(), | 157 | keepaliveXml.toString(), |
| 161 | - "z9hG4bK-" + UUID.randomUUID().toString().replace("-", ""), | ||
| 162 | - UUID.randomUUID().toString().replace("-", ""), | ||
| 163 | - null, | 158 | + SipUtils.getNewFromTag(), |
| 159 | + SipUtils.getNewViaTag(), | ||
| 164 | callIdHeader); | 160 | callIdHeader); |
| 165 | transmitRequest(parentPlatform, request, errorEvent, okEvent); | 161 | transmitRequest(parentPlatform, request, errorEvent, okEvent); |
| 166 | callId = callIdHeader.getCallId(); | 162 | callId = callIdHeader.getCallId(); |
| @@ -222,7 +218,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -222,7 +218,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 222 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 218 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 223 | : udpSipProvider.getNewCallId(); | 219 | : udpSipProvider.getNewCallId(); |
| 224 | 220 | ||
| 225 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, catalogXml.toString(), fromTag, callIdHeader); | 221 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, catalogXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); |
| 226 | transmitRequest(parentPlatform, request); | 222 | transmitRequest(parentPlatform, request); |
| 227 | 223 | ||
| 228 | } catch (SipException | ParseException | InvalidArgumentException e) { | 224 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -267,13 +263,18 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -267,13 +263,18 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 267 | // 虚拟组织增加BusinessGroupID字段 | 263 | // 虚拟组织增加BusinessGroupID字段 |
| 268 | catalogXml.append("<BusinessGroupID>" + channel.getParentId() + "</BusinessGroupID>\r\n"); | 264 | catalogXml.append("<BusinessGroupID>" + channel.getParentId() + "</BusinessGroupID>\r\n"); |
| 269 | } | 265 | } |
| 270 | - catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n"); | 266 | + if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) { |
| 267 | + catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n"); | ||
| 268 | + if (channel.getParental() == 0) { | ||
| 269 | + catalogXml.append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n"); | ||
| 270 | + } | ||
| 271 | + | ||
| 272 | + } | ||
| 271 | if (channel.getParental() == 0) { | 273 | if (channel.getParental() == 0) { |
| 272 | // 通道项 | 274 | // 通道项 |
| 273 | catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n"); | 275 | catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n"); |
| 274 | catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n"); | 276 | catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n"); |
| 275 | catalogXml.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n"); | 277 | catalogXml.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n"); |
| 276 | - catalogXml.append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n"); | ||
| 277 | 278 | ||
| 278 | if (channel.getChannelType() != 2) { // 业务分组/虚拟组织/行政区划 不设置以下属性 | 279 | if (channel.getChannelType() != 2) { // 业务分组/虚拟组织/行政区划 不设置以下属性 |
| 279 | catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n"); | 280 | catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n"); |
| @@ -308,7 +309,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -308,7 +309,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 308 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 309 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 309 | : udpSipProvider.getNewCallId(); | 310 | : udpSipProvider.getNewCallId(); |
| 310 | 311 | ||
| 311 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, catalogXml, fromTag, callIdHeader); | 312 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, catalogXml, fromTag, SipUtils.getNewViaTag(), callIdHeader); |
| 312 | transmitRequest(parentPlatform, request, null, eventResult -> { | 313 | transmitRequest(parentPlatform, request, null, eventResult -> { |
| 313 | int indexNext = index + parentPlatform.getCatalogGroup(); | 314 | int indexNext = index + parentPlatform.getCatalogGroup(); |
| 314 | sendCatalogResponse(channels, parentPlatform, sn, fromTag, indexNext); | 315 | sendCatalogResponse(channels, parentPlatform, sn, fromTag, indexNext); |
| @@ -348,7 +349,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -348,7 +349,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 348 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 349 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 349 | : udpSipProvider.getNewCallId(); | 350 | : udpSipProvider.getNewCallId(); |
| 350 | 351 | ||
| 351 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceInfoXml.toString(), fromTag, callIdHeader); | 352 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceInfoXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); |
| 352 | transmitRequest(parentPlatform, request); | 353 | transmitRequest(parentPlatform, request); |
| 353 | 354 | ||
| 354 | } catch (SipException | ParseException | InvalidArgumentException e) { | 355 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -386,7 +387,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -386,7 +387,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 386 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 387 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 387 | : udpSipProvider.getNewCallId(); | 388 | : udpSipProvider.getNewCallId(); |
| 388 | 389 | ||
| 389 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), fromTag, callIdHeader); | 390 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); |
| 390 | transmitRequest(parentPlatform, request); | 391 | transmitRequest(parentPlatform, request); |
| 391 | 392 | ||
| 392 | } catch (SipException | ParseException | InvalidArgumentException e) { | 393 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -471,8 +472,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -471,8 +472,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 471 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() | 472 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 472 | : udpSipProvider.getNewCallId(); | 473 | : udpSipProvider.getNewCallId(); |
| 473 | 474 | ||
| 474 | - String tm = Long.toString(System.currentTimeMillis()); | ||
| 475 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), "FromPtz" + tm, callIdHeader); | 475 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), SipUtils.getNewFromTag(), SipUtils.getNewViaTag(), callIdHeader); |
| 476 | transmitRequest(parentPlatform, request); | 476 | transmitRequest(parentPlatform, request); |
| 477 | 477 | ||
| 478 | } catch (SipException | ParseException e) { | 478 | } catch (SipException | ParseException e) { |
| @@ -750,7 +750,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -750,7 +750,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 750 | // callid | 750 | // callid |
| 751 | CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | 751 | CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 752 | : udpSipProvider.getNewCallId(); | 752 | : udpSipProvider.getNewCallId(); |
| 753 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, recordXml.toString(), fromTag, callIdHeader); | 753 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, recordXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); |
| 754 | transmitRequest(parentPlatform, request); | 754 | transmitRequest(parentPlatform, request); |
| 755 | 755 | ||
| 756 | } catch (SipException | ParseException | InvalidArgumentException e) { | 756 | } catch (SipException | ParseException | InvalidArgumentException e) { |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/CatalogQueryMessageHandler.java
| @@ -78,6 +78,11 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem | @@ -78,6 +78,11 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem | ||
| 78 | 78 | ||
| 79 | List<DeviceChannel> allChannels = new ArrayList<>(); | 79 | List<DeviceChannel> allChannels = new ArrayList<>(); |
| 80 | 80 | ||
| 81 | + // 回复平台 | ||
| 82 | + DeviceChannel deviceChannel = getChannelForPlatform(parentPlatform); | ||
| 83 | + allChannels.add(deviceChannel); | ||
| 84 | + | ||
| 85 | + // 回复目录 | ||
| 81 | if (catalogs.size() > 0) { | 86 | if (catalogs.size() > 0) { |
| 82 | allChannels.addAll(catalogs); | 87 | allChannels.addAll(catalogs); |
| 83 | } | 88 | } |
| @@ -104,4 +109,19 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem | @@ -104,4 +109,19 @@ public class CatalogQueryMessageHandler extends SIPRequestProcessorParent implem | ||
| 104 | } | 109 | } |
| 105 | 110 | ||
| 106 | } | 111 | } |
| 112 | + | ||
| 113 | + private DeviceChannel getChannelForPlatform(ParentPlatform platform) { | ||
| 114 | + DeviceChannel deviceChannel = new DeviceChannel(); | ||
| 115 | + | ||
| 116 | + deviceChannel.setChannelId(platform.getDeviceGBId()); | ||
| 117 | + deviceChannel.setName(platform.getName()); | ||
| 118 | + deviceChannel.setManufacture("wvp-pro"); | ||
| 119 | + deviceChannel.setOwner("wvp-pro"); | ||
| 120 | + deviceChannel.setCivilCode(platform.getAdministrativeDivision()); | ||
| 121 | + deviceChannel.setAddress("wvp-pro"); | ||
| 122 | + deviceChannel.setRegisterWay(0); | ||
| 123 | + deviceChannel.setSecrecy("0"); | ||
| 124 | + | ||
| 125 | + return deviceChannel; | ||
| 126 | + } | ||
| 107 | } | 127 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/InviteResponseProcessor.java
| 1 | package com.genersoft.iot.vmp.gb28181.transmit.event.response.impl; | 1 | package com.genersoft.iot.vmp.gb28181.transmit.event.response.impl; |
| 2 | 2 | ||
| 3 | import com.genersoft.iot.vmp.conf.SipConfig; | 3 | import com.genersoft.iot.vmp.conf.SipConfig; |
| 4 | -import com.genersoft.iot.vmp.gb28181.SipLayer; | ||
| 5 | -import com.genersoft.iot.vmp.gb28181.bean.SsrcTransaction; | ||
| 6 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; | 4 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; |
| 7 | import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; | 5 | import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; |
| 8 | import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract; | 6 | import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract; |
| 9 | -import com.genersoft.iot.vmp.gb28181.utils.HeaderUtils; | 7 | +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; |
| 10 | import gov.nist.javax.sip.ResponseEventExt; | 8 | import gov.nist.javax.sip.ResponseEventExt; |
| 11 | -import gov.nist.javax.sip.message.SIPResponse; | ||
| 12 | import gov.nist.javax.sip.stack.SIPDialog; | 9 | import gov.nist.javax.sip.stack.SIPDialog; |
| 13 | import org.slf4j.Logger; | 10 | import org.slf4j.Logger; |
| 14 | import org.slf4j.LoggerFactory; | 11 | import org.slf4j.LoggerFactory; |
| @@ -22,13 +19,10 @@ import javax.sip.*; | @@ -22,13 +19,10 @@ import javax.sip.*; | ||
| 22 | import javax.sip.address.Address; | 19 | import javax.sip.address.Address; |
| 23 | import javax.sip.address.SipURI; | 20 | import javax.sip.address.SipURI; |
| 24 | import javax.sip.header.CSeqHeader; | 21 | import javax.sip.header.CSeqHeader; |
| 25 | -import javax.sip.header.CallIdHeader; | ||
| 26 | import javax.sip.header.UserAgentHeader; | 22 | import javax.sip.header.UserAgentHeader; |
| 27 | import javax.sip.message.Request; | 23 | import javax.sip.message.Request; |
| 28 | import javax.sip.message.Response; | 24 | import javax.sip.message.Response; |
| 29 | import java.text.ParseException; | 25 | import java.text.ParseException; |
| 30 | -import java.util.ArrayList; | ||
| 31 | -import java.util.List; | ||
| 32 | 26 | ||
| 33 | 27 | ||
| 34 | /** | 28 | /** |
| @@ -104,7 +98,7 @@ public class InviteResponseProcessor extends SIPResponseProcessorAbstract { | @@ -104,7 +98,7 @@ public class InviteResponseProcessor extends SIPResponseProcessorAbstract { | ||
| 104 | } | 98 | } |
| 105 | requestURI.setPort(event.getRemotePort()); | 99 | requestURI.setPort(event.getRemotePort()); |
| 106 | reqAck.setRequestURI(requestURI); | 100 | reqAck.setRequestURI(requestURI); |
| 107 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | 101 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); |
| 108 | reqAck.addHeader(userAgentHeader); | 102 | reqAck.addHeader(userAgentHeader); |
| 109 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); | 103 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); |
| 110 | reqAck.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); | 104 | reqAck.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |
src/main/java/com/genersoft/iot/vmp/gb28181/utils/HeaderUtils.java deleted
100644 → 0
| 1 | -package com.genersoft.iot.vmp.gb28181.utils; | ||
| 2 | - | ||
| 3 | -import javax.sip.PeerUnavailableException; | ||
| 4 | -import javax.sip.SipFactory; | ||
| 5 | -import javax.sip.header.UserAgentHeader; | ||
| 6 | -import java.text.ParseException; | ||
| 7 | -import java.util.ArrayList; | ||
| 8 | -import java.util.List; | ||
| 9 | - | ||
| 10 | -/** | ||
| 11 | - * 生成header的工具类 | ||
| 12 | - * @author lin | ||
| 13 | - */ | ||
| 14 | -public class HeaderUtils { | ||
| 15 | - | ||
| 16 | - public static UserAgentHeader createUserAgentHeader(SipFactory sipFactory) throws PeerUnavailableException, ParseException { | ||
| 17 | - List<String> agentParam = new ArrayList<>(); | ||
| 18 | - agentParam.add("WVP PRO"); | ||
| 19 | - // TODO 添加版本信息以及日期 | ||
| 20 | - return sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); | ||
| 21 | - } | ||
| 22 | -} |
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
| @@ -4,9 +4,16 @@ import gov.nist.javax.sip.address.AddressImpl; | @@ -4,9 +4,16 @@ import gov.nist.javax.sip.address.AddressImpl; | ||
| 4 | import gov.nist.javax.sip.address.SipUri; | 4 | import gov.nist.javax.sip.address.SipUri; |
| 5 | import gov.nist.javax.sip.header.Subject; | 5 | import gov.nist.javax.sip.header.Subject; |
| 6 | 6 | ||
| 7 | +import javax.sip.PeerUnavailableException; | ||
| 8 | +import javax.sip.SipFactory; | ||
| 7 | import javax.sip.header.FromHeader; | 9 | import javax.sip.header.FromHeader; |
| 8 | import javax.sip.header.Header; | 10 | import javax.sip.header.Header; |
| 11 | +import javax.sip.header.UserAgentHeader; | ||
| 9 | import javax.sip.message.Request; | 12 | import javax.sip.message.Request; |
| 13 | +import java.text.ParseException; | ||
| 14 | +import java.util.ArrayList; | ||
| 15 | +import java.util.List; | ||
| 16 | +import java.util.UUID; | ||
| 10 | 17 | ||
| 11 | /** | 18 | /** |
| 12 | * @author panlinlin | 19 | * @author panlinlin |
| @@ -38,4 +45,25 @@ public class SipUtils { | @@ -38,4 +45,25 @@ public class SipUtils { | ||
| 38 | return uri.getUser(); | 45 | return uri.getUser(); |
| 39 | } | 46 | } |
| 40 | 47 | ||
| 48 | + public static String getNewViaTag() { | ||
| 49 | + return "z9hG4bK" + System.currentTimeMillis(); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + public static UserAgentHeader createUserAgentHeader(SipFactory sipFactory) throws PeerUnavailableException, ParseException { | ||
| 53 | + List<String> agentParam = new ArrayList<>(); | ||
| 54 | + agentParam.add("WVP PRO"); | ||
| 55 | + // TODO 添加版本信息以及日期 | ||
| 56 | + return sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + public static String getNewFromTag(){ | ||
| 60 | + return UUID.randomUUID().toString().replace("-", ""); | ||
| 61 | + | ||
| 62 | +// return getNewTag(); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + public static String getNewTag(){ | ||
| 66 | + return String.valueOf(System.currentTimeMillis()); | ||
| 67 | + } | ||
| 68 | + | ||
| 41 | } | 69 | } |
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
| @@ -257,6 +257,7 @@ public class PlayServiceImpl implements IPlayService { | @@ -257,6 +257,7 @@ public class PlayServiceImpl implements IPlayService { | ||
| 257 | // 超时处理 | 257 | // 超时处理 |
| 258 | String timeOutTaskKey = UUID.randomUUID().toString(); | 258 | String timeOutTaskKey = UUID.randomUUID().toString(); |
| 259 | SSRCInfo finalSsrcInfo = ssrcInfo; | 259 | SSRCInfo finalSsrcInfo = ssrcInfo; |
| 260 | + System.out.println("设置超时任务: " + timeOutTaskKey); | ||
| 260 | dynamicTask.startDelay( timeOutTaskKey,()->{ | 261 | dynamicTask.startDelay( timeOutTaskKey,()->{ |
| 261 | 262 | ||
| 262 | SIPDialog dialog = streamSession.getDialogByStream(device.getDeviceId(), channelId, finalSsrcInfo.getStream()); | 263 | SIPDialog dialog = streamSession.getDialogByStream(device.getDeviceId(), channelId, finalSsrcInfo.getStream()); |
| @@ -282,6 +283,7 @@ public class PlayServiceImpl implements IPlayService { | @@ -282,6 +283,7 @@ public class PlayServiceImpl implements IPlayService { | ||
| 282 | } | 283 | } |
| 283 | cmder.playStreamCmd(mediaServerItem, ssrcInfo, device, channelId, (MediaServerItem mediaServerItemInuse, JSONObject response) -> { | 284 | cmder.playStreamCmd(mediaServerItem, ssrcInfo, device, channelId, (MediaServerItem mediaServerItemInuse, JSONObject response) -> { |
| 284 | logger.info("收到订阅消息: " + response.toJSONString()); | 285 | logger.info("收到订阅消息: " + response.toJSONString()); |
| 286 | + System.out.println("停止超时任务: " + timeOutTaskKey); | ||
| 285 | dynamicTask.stop(timeOutTaskKey); | 287 | dynamicTask.stop(timeOutTaskKey); |
| 286 | // hook响应 | 288 | // hook响应 |
| 287 | onPublishHandlerForPlay(mediaServerItemInuse, response, device.getDeviceId(), channelId, uuid); | 289 | onPublishHandlerForPlay(mediaServerItemInuse, response, device.getDeviceId(), channelId, uuid); |
web_src/src/components/channelList.vue
| @@ -250,6 +250,7 @@ export default { | @@ -250,6 +250,7 @@ export default { | ||
| 250 | that.loadSnap[deviceId + channelId] = 0; | 250 | that.loadSnap[deviceId + channelId] = 0; |
| 251 | that.getSnapErrorEvent(snapId) | 251 | that.getSnapErrorEvent(snapId) |
| 252 | }, 5000) | 252 | }, 5000) |
| 253 | + itemData.streamId = res.data.data.stream; | ||
| 253 | that.$refs.devicePlayer.openDialog("media", deviceId, channelId, { | 254 | that.$refs.devicePlayer.openDialog("media", deviceId, channelId, { |
| 254 | streamInfo: res.data.data, | 255 | streamInfo: res.data.data, |
| 255 | hasAudio: itemData.hasAudio | 256 | hasAudio: itemData.hasAudio |