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 | 2 | |
| 3 | 3 | import com.genersoft.iot.vmp.conf.SipConfig; |
| 4 | 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 | 6 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| 8 | 7 | import gov.nist.javax.sip.message.MessageFactoryImpl; |
| 9 | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -38,44 +37,6 @@ public class SIPRequestHeaderPlarformProvider { |
| 38 | 37 | @Autowired |
| 39 | 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 | 40 | public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag, CallIdHeader callIdHeader, boolean isRegister) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 80 | 41 | Request request = null; |
| 81 | 42 | String sipAddress = sipConfig.getIp() + ":" + sipConfig.getPort(); |
| ... | ... | @@ -88,16 +49,14 @@ public class SIPRequestHeaderPlarformProvider { |
| 88 | 49 | viaHeader.setRPort(); |
| 89 | 50 | viaHeaders.add(viaHeader); |
| 90 | 51 | //from |
| 91 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(),sipAddress); | |
| 52 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(), sipConfig.getDomain()); | |
| 92 | 53 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 93 | 54 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 94 | 55 | //to |
| 95 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(),sipAddress); | |
| 56 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(platform.getDeviceGBId(), sipConfig.getDomain()); | |
| 96 | 57 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 97 | 58 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 98 | 59 | |
| 99 | - | |
| 100 | - | |
| 101 | 60 | //Forwards |
| 102 | 61 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 103 | 62 | |
| ... | ... | @@ -113,7 +72,7 @@ public class SIPRequestHeaderPlarformProvider { |
| 113 | 72 | ExpiresHeader expires = sipFactory.createHeaderFactory().createExpiresHeader(isRegister ? platform.getExpires() : 0); |
| 114 | 73 | request.addHeader(expires); |
| 115 | 74 | |
| 116 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | |
| 75 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); | |
| 117 | 76 | request.addHeader(userAgentHeader); |
| 118 | 77 | |
| 119 | 78 | return request; |
| ... | ... | @@ -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 | 156 | Request request = null; |
| 157 | + String serverAddress = parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort(); | |
| 198 | 158 | // sipuri |
| 199 | - SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort()); | |
| 159 | + SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress); | |
| 200 | 160 | // via |
| 201 | 161 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 202 | 162 | ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(parentPlatform.getDeviceIp(), Integer.parseInt(parentPlatform.getDevicePort()), |
| 203 | - parentPlatform.getTransport(), null); | |
| 163 | + parentPlatform.getTransport(), viaTag); | |
| 204 | 164 | viaHeader.setRPort(); |
| 205 | 165 | viaHeaders.add(viaHeader); |
| 206 | 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 | 169 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 210 | 170 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 211 | 171 | // to |
| 212 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerGBDomain()); | |
| 172 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress); | |
| 213 | 173 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 214 | 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 | 2 | |
| 3 | 3 | import java.text.ParseException; |
| 4 | 4 | import java.util.ArrayList; |
| 5 | -import java.util.List; | |
| 6 | 5 | |
| 7 | 6 | import javax.sip.*; |
| 8 | 7 | import javax.sip.address.Address; |
| ... | ... | @@ -12,7 +11,7 @@ import javax.sip.message.Request; |
| 12 | 11 | |
| 13 | 12 | import com.genersoft.iot.vmp.common.StreamInfo; |
| 14 | 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 | 15 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| 17 | 16 | import gov.nist.javax.sip.SipProviderImpl; |
| 18 | 17 | import gov.nist.javax.sip.SipStackImpl; |
| ... | ... | @@ -62,12 +61,11 @@ public class SIPRequestHeaderProvider { |
| 62 | 61 | viaHeader.setRPort(); |
| 63 | 62 | viaHeaders.add(viaHeader); |
| 64 | 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 | 65 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 68 | 66 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 69 | 67 | // to |
| 70 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain()); | |
| 68 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); | |
| 71 | 69 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 72 | 70 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 73 | 71 | |
| ... | ... | @@ -94,11 +92,11 @@ public class SIPRequestHeaderProvider { |
| 94 | 92 | viaHeaders.add(viaHeader); |
| 95 | 93 | |
| 96 | 94 | //from |
| 97 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); | |
| 95 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain()); | |
| 98 | 96 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 99 | 97 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack |
| 100 | 98 | //to |
| 101 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain()); | |
| 99 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); | |
| 102 | 100 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 103 | 101 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 104 | 102 | |
| ... | ... | @@ -130,11 +128,11 @@ public class SIPRequestHeaderProvider { |
| 130 | 128 | viaHeader.setRPort(); |
| 131 | 129 | viaHeaders.add(viaHeader); |
| 132 | 130 | //from |
| 133 | - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); | |
| 131 | + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain()); | |
| 134 | 132 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 135 | 133 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack |
| 136 | 134 | //to |
| 137 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId, sipConfig.getDomain()); | |
| 135 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); | |
| 138 | 136 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 139 | 137 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 140 | 138 | |
| ... | ... | @@ -170,7 +168,7 @@ public class SIPRequestHeaderProvider { |
| 170 | 168 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 171 | 169 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack |
| 172 | 170 | //to |
| 173 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain()); | |
| 171 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,device.getHostAddress()); | |
| 174 | 172 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 175 | 173 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,toTag); |
| 176 | 174 | |
| ... | ... | @@ -198,12 +196,11 @@ public class SIPRequestHeaderProvider { |
| 198 | 196 | viaHeader.setRPort(); |
| 199 | 197 | viaHeaders.add(viaHeader); |
| 200 | 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 | 200 | Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); |
| 204 | 201 | FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); |
| 205 | 202 | // to |
| 206 | - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain()); | |
| 203 | + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); | |
| 207 | 204 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 208 | 205 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 209 | 206 | |
| ... | ... | @@ -267,7 +264,7 @@ public class SIPRequestHeaderProvider { |
| 267 | 264 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory() |
| 268 | 265 | .createSipURI(sipConfig.getId(), sipConfig.getIp() + ":" + sipConfig.getPort())); |
| 269 | 266 | infoRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |
| 270 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | |
| 267 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); | |
| 271 | 268 | infoRequest.addHeader(userAgentHeader); |
| 272 | 269 | |
| 273 | 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 | 10 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; |
| 11 | 11 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander; |
| 12 | 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 | 14 | import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory; |
| 15 | 15 | import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange; |
| 16 | 16 | import com.genersoft.iot.vmp.utils.DateUtil; |
| ... | ... | @@ -244,13 +244,11 @@ public class SIPCommander implements ISIPCommander { |
| 244 | 244 | ptzXml.append("<ControlPriority>5</ControlPriority>\r\n"); |
| 245 | 245 | ptzXml.append("</Info>\r\n"); |
| 246 | 246 | ptzXml.append("</Control>\r\n"); |
| 247 | - | |
| 248 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 249 | 247 | |
| 250 | 248 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 251 | 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 | 253 | transmitRequest(device, request); |
| 256 | 254 | return true; |
| ... | ... | @@ -288,12 +286,11 @@ public class SIPCommander implements ISIPCommander { |
| 288 | 286 | ptzXml.append("</Info>\r\n"); |
| 289 | 287 | ptzXml.append("</Control>\r\n"); |
| 290 | 288 | |
| 291 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 292 | 289 | |
| 293 | 290 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 294 | 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 | 294 | transmitRequest(device, request); |
| 298 | 295 | return true; |
| 299 | 296 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -324,12 +321,11 @@ public class SIPCommander implements ISIPCommander { |
| 324 | 321 | ptzXml.append("</Info>\r\n"); |
| 325 | 322 | ptzXml.append("</Control>\r\n"); |
| 326 | 323 | |
| 327 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 328 | 324 | |
| 329 | 325 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 330 | 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 | 329 | transmitRequest(device, request, errorEvent, okEvent); |
| 334 | 330 | return true; |
| 335 | 331 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -421,12 +417,10 @@ public class SIPCommander implements ISIPCommander { |
| 421 | 417 | // f字段:f= v/编码格式/分辨率/帧率/码率类型/码率大小a/编码格式/码率大小/采样率 |
| 422 | 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 | 420 | CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 427 | 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 | 425 | transmitRequest(device, request, (e -> { |
| 432 | 426 | streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
| ... | ... | @@ -519,8 +513,6 @@ public class SIPCommander implements ISIPCommander { |
| 519 | 513 | } |
| 520 | 514 | |
| 521 | 515 | content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc |
| 522 | - | |
| 523 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 524 | 516 | |
| 525 | 517 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 526 | 518 | : udpSipProvider.getNewCallId(); |
| ... | ... | @@ -533,7 +525,7 @@ public class SIPCommander implements ISIPCommander { |
| 533 | 525 | } |
| 534 | 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 | 530 | transmitRequest(device, request, errorEvent, event -> { |
| 539 | 531 | ResponseEvent responseEvent = (ResponseEvent) event.event; |
| ... | ... | @@ -625,8 +617,6 @@ public class SIPCommander implements ISIPCommander { |
| 625 | 617 | content.append("a=downloadspeed:" + downloadSpeed + "\r\n"); |
| 626 | 618 | |
| 627 | 619 | content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc |
| 628 | - | |
| 629 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 630 | 620 | |
| 631 | 621 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 632 | 622 | : udpSipProvider.getNewCallId(); |
| ... | ... | @@ -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 | 643 | if (inviteStreamCallback != null) { |
| 654 | 644 | inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null, callIdHeader.getCallId(), "rtp", ssrcInfo.getStream())); |
| 655 | 645 | } |
| ... | ... | @@ -737,7 +727,7 @@ public class SIPCommander implements ISIPCommander { |
| 737 | 727 | // 增加Contact header |
| 738 | 728 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); |
| 739 | 729 | byeRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |
| 740 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | |
| 730 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); | |
| 741 | 731 | byeRequest.addHeader(userAgentHeader); |
| 742 | 732 | ClientTransaction clientTransaction = null; |
| 743 | 733 | if("TCP".equals(protocol)) { |
| ... | ... | @@ -790,13 +780,11 @@ public class SIPCommander implements ISIPCommander { |
| 790 | 780 | broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); |
| 791 | 781 | broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); |
| 792 | 782 | broadcastXml.append("</Notify>\r\n"); |
| 793 | - | |
| 794 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 795 | - | |
| 783 | + | |
| 796 | 784 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 797 | 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 | 788 | transmitRequest(device, request); |
| 801 | 789 | return true; |
| 802 | 790 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -816,13 +804,11 @@ public class SIPCommander implements ISIPCommander { |
| 816 | 804 | broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); |
| 817 | 805 | broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); |
| 818 | 806 | broadcastXml.append("</Notify>\r\n"); |
| 819 | - | |
| 820 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 821 | 807 | |
| 822 | 808 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 823 | 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 | 812 | transmitRequest(device, request, errorEvent); |
| 827 | 813 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| 828 | 814 | e.printStackTrace(); |
| ... | ... | @@ -853,13 +839,11 @@ public class SIPCommander implements ISIPCommander { |
| 853 | 839 | } |
| 854 | 840 | cmdXml.append("<RecordCmd>" + recordCmdStr + "</RecordCmd>\r\n"); |
| 855 | 841 | cmdXml.append("</Control>\r\n"); |
| 856 | - | |
| 857 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 858 | 842 | |
| 859 | 843 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 860 | 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 | 847 | transmitRequest(device, request, errorEvent); |
| 864 | 848 | return true; |
| 865 | 849 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -885,13 +869,11 @@ public class SIPCommander implements ISIPCommander { |
| 885 | 869 | cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 886 | 870 | cmdXml.append("<TeleBoot>Boot</TeleBoot>\r\n"); |
| 887 | 871 | cmdXml.append("</Control>\r\n"); |
| 888 | - | |
| 889 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 890 | 872 | |
| 891 | 873 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 892 | 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 | 877 | transmitRequest(device, request); |
| 896 | 878 | return true; |
| 897 | 879 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -918,13 +900,11 @@ public class SIPCommander implements ISIPCommander { |
| 918 | 900 | cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 919 | 901 | cmdXml.append("<GuardCmd>" + guardCmdStr + "</GuardCmd>\r\n"); |
| 920 | 902 | cmdXml.append("</Control>\r\n"); |
| 921 | - | |
| 922 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 923 | 903 | |
| 924 | 904 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 925 | 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 | 908 | transmitRequest(device, request, errorEvent); |
| 929 | 909 | return true; |
| 930 | 910 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -962,13 +942,11 @@ public class SIPCommander implements ISIPCommander { |
| 962 | 942 | cmdXml.append("</Info>\r\n"); |
| 963 | 943 | } |
| 964 | 944 | cmdXml.append("</Control>\r\n"); |
| 965 | - | |
| 966 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 967 | 945 | |
| 968 | 946 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 969 | 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 | 950 | transmitRequest(device, request, errorEvent); |
| 973 | 951 | return true; |
| 974 | 952 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -999,13 +977,11 @@ public class SIPCommander implements ISIPCommander { |
| 999 | 977 | } |
| 1000 | 978 | cmdXml.append("<IFameCmd>Send</IFameCmd>\r\n"); |
| 1001 | 979 | cmdXml.append("</Control>\r\n"); |
| 1002 | - | |
| 1003 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1004 | 980 | |
| 1005 | 981 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1006 | 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 | 985 | transmitRequest(device, request); |
| 1010 | 986 | return true; |
| 1011 | 987 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1054,13 +1030,11 @@ public class SIPCommander implements ISIPCommander { |
| 1054 | 1030 | } |
| 1055 | 1031 | cmdXml.append("</HomePosition>\r\n"); |
| 1056 | 1032 | cmdXml.append("</Control>\r\n"); |
| 1057 | - | |
| 1058 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1059 | 1033 | |
| 1060 | 1034 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1061 | 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 | 1038 | transmitRequest(device, request, errorEvent); |
| 1065 | 1039 | return true; |
| 1066 | 1040 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1126,13 +1100,11 @@ public class SIPCommander implements ISIPCommander { |
| 1126 | 1100 | } |
| 1127 | 1101 | cmdXml.append("</BasicParam>\r\n"); |
| 1128 | 1102 | cmdXml.append("</Control>\r\n"); |
| 1129 | - | |
| 1130 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1131 | 1103 | |
| 1132 | 1104 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1133 | 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 | 1108 | transmitRequest(device, request, errorEvent); |
| 1137 | 1109 | return true; |
| 1138 | 1110 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1157,13 +1129,11 @@ public class SIPCommander implements ISIPCommander { |
| 1157 | 1129 | catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); |
| 1158 | 1130 | catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 1159 | 1131 | catalogXml.append("</Query>\r\n"); |
| 1160 | - | |
| 1161 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1162 | 1132 | |
| 1163 | 1133 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1164 | 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 | 1138 | transmitRequest(device, request, errorEvent); |
| 1169 | 1139 | return true; |
| ... | ... | @@ -1190,13 +1160,11 @@ public class SIPCommander implements ISIPCommander { |
| 1190 | 1160 | catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); |
| 1191 | 1161 | catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 1192 | 1162 | catalogXml.append("</Query>\r\n"); |
| 1193 | - | |
| 1194 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1195 | 1163 | |
| 1196 | 1164 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1197 | 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 | 1169 | transmitRequest(device, request); |
| 1202 | 1170 | |
| ... | ... | @@ -1223,13 +1191,11 @@ public class SIPCommander implements ISIPCommander { |
| 1223 | 1191 | catalogXml.append(" <SN>" + sn + "</SN>\r\n"); |
| 1224 | 1192 | catalogXml.append(" <DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n"); |
| 1225 | 1193 | catalogXml.append("</Query>\r\n"); |
| 1226 | - | |
| 1227 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1228 | 1194 | |
| 1229 | 1195 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1230 | 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 | 1200 | transmitRequest(device, request, errorEvent); |
| 1235 | 1201 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1277,13 +1243,11 @@ public class SIPCommander implements ISIPCommander { |
| 1277 | 1243 | } |
| 1278 | 1244 | recordInfoXml.append("</Query>\r\n"); |
| 1279 | 1245 | |
| 1280 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1281 | - | |
| 1282 | 1246 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1283 | 1247 | : udpSipProvider.getNewCallId(); |
| 1284 | 1248 | |
| 1285 | 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 | 1252 | transmitRequest(device, request, errorEvent, okEvent); |
| 1289 | 1253 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1336,12 +1300,10 @@ public class SIPCommander implements ISIPCommander { |
| 1336 | 1300 | } |
| 1337 | 1301 | cmdXml.append("</Query>\r\n"); |
| 1338 | 1302 | |
| 1339 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1340 | - | |
| 1341 | 1303 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1342 | 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 | 1307 | transmitRequest(device, request, errorEvent); |
| 1346 | 1308 | return true; |
| 1347 | 1309 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1374,12 +1336,10 @@ public class SIPCommander implements ISIPCommander { |
| 1374 | 1336 | cmdXml.append("<ConfigType>" + configType + "</ConfigType>\r\n"); |
| 1375 | 1337 | cmdXml.append("</Query>\r\n"); |
| 1376 | 1338 | |
| 1377 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1378 | - | |
| 1379 | 1339 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1380 | 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 | 1343 | transmitRequest(device, request, errorEvent); |
| 1384 | 1344 | return true; |
| 1385 | 1345 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1409,12 +1369,10 @@ public class SIPCommander implements ISIPCommander { |
| 1409 | 1369 | } |
| 1410 | 1370 | cmdXml.append("</Query>\r\n"); |
| 1411 | 1371 | |
| 1412 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1413 | - | |
| 1414 | 1372 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1415 | 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 | 1376 | transmitRequest(device, request, errorEvent); |
| 1419 | 1377 | return true; |
| 1420 | 1378 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1441,12 +1399,10 @@ public class SIPCommander implements ISIPCommander { |
| 1441 | 1399 | mobilePostitionXml.append("<Interval>60</Interval>\r\n"); |
| 1442 | 1400 | mobilePostitionXml.append("</Query>\r\n"); |
| 1443 | 1401 | |
| 1444 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1445 | - | |
| 1446 | 1402 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1447 | 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 | 1407 | transmitRequest(device, request, errorEvent); |
| 1452 | 1408 | |
| ... | ... | @@ -1495,10 +1451,9 @@ public class SIPCommander implements ISIPCommander { |
| 1495 | 1451 | request.removeHeader(CSeqHeader.NAME); |
| 1496 | 1452 | request.addHeader(cSeqHeader); |
| 1497 | 1453 | }else { |
| 1498 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1499 | 1454 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1500 | 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 | 1458 | transmitRequest(device, request, errorEvent, okEvent); |
| 1504 | 1459 | |
| ... | ... | @@ -1553,12 +1508,10 @@ public class SIPCommander implements ISIPCommander { |
| 1553 | 1508 | } |
| 1554 | 1509 | cmdXml.append("</Query>\r\n"); |
| 1555 | 1510 | |
| 1556 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1557 | - | |
| 1558 | 1511 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1559 | 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 | 1515 | transmitRequest(device, request); |
| 1563 | 1516 | |
| 1564 | 1517 | return true; |
| ... | ... | @@ -1600,14 +1553,12 @@ public class SIPCommander implements ISIPCommander { |
| 1600 | 1553 | request.addHeader(cSeqHeader); |
| 1601 | 1554 | |
| 1602 | 1555 | }else { |
| 1603 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1604 | - | |
| 1605 | 1556 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1606 | 1557 | : udpSipProvider.getNewCallId(); |
| 1607 | 1558 | |
| 1608 | 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 | 1562 | callIdHeader); |
| 1612 | 1563 | |
| 1613 | 1564 | } |
| ... | ... | @@ -1636,10 +1587,9 @@ public class SIPCommander implements ISIPCommander { |
| 1636 | 1587 | } |
| 1637 | 1588 | dragXml.append(cmdString); |
| 1638 | 1589 | dragXml.append("</Control>\r\n"); |
| 1639 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 1640 | 1590 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1641 | 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 | 1593 | logger.debug("拉框信令: " + request.toString()); |
| 1644 | 1594 | transmitRequest(device, request); |
| 1645 | 1595 | return true; |
| ... | ... | @@ -1668,7 +1618,7 @@ public class SIPCommander implements ISIPCommander { |
| 1668 | 1618 | if (request.getHeader(UserAgentHeader.NAME) == null) { |
| 1669 | 1619 | UserAgentHeader userAgentHeader = null; |
| 1670 | 1620 | try { |
| 1671 | - userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | |
| 1621 | + userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); | |
| 1672 | 1622 | } catch (ParseException e) { |
| 1673 | 1623 | logger.error("添加UserAgentHeader失败", e); |
| 1674 | 1624 | } |
| ... | ... | @@ -1883,8 +1833,7 @@ public class SIPCommander implements ISIPCommander { |
| 1883 | 1833 | |
| 1884 | 1834 | CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 1885 | 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 | 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 | 4 | import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; |
| 5 | 5 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; |
| 6 | 6 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderPlarformProvider; |
| 7 | +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; | |
| 7 | 8 | import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo; |
| 8 | 9 | import com.genersoft.iot.vmp.utils.DateUtil; |
| 9 | 10 | import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; |
| ... | ... | @@ -26,19 +27,16 @@ import org.springframework.context.annotation.Lazy; |
| 26 | 27 | import org.springframework.lang.Nullable; |
| 27 | 28 | import org.springframework.stereotype.Component; |
| 28 | 29 | import org.springframework.util.ObjectUtils; |
| 29 | -import org.springframework.util.StringUtils; | |
| 30 | 30 | |
| 31 | 31 | import javax.sip.*; |
| 32 | 32 | import javax.sip.address.SipURI; |
| 33 | 33 | import javax.sip.header.*; |
| 34 | 34 | import javax.sip.message.Request; |
| 35 | 35 | import java.lang.reflect.Field; |
| 36 | -import java.net.InetAddress; | |
| 37 | 36 | import java.text.ParseException; |
| 38 | 37 | import java.util.ArrayList; |
| 39 | 38 | import java.util.HashSet; |
| 40 | 39 | import java.util.List; |
| 41 | -import java.util.UUID; | |
| 42 | 40 | |
| 43 | 41 | @Component |
| 44 | 42 | @DependsOn("sipLayer") |
| ... | ... | @@ -89,7 +87,6 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 89 | 87 | SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) { |
| 90 | 88 | try { |
| 91 | 89 | Request request; |
| 92 | - String tm = Long.toString(System.currentTimeMillis()); | |
| 93 | 90 | if (!registerAgain ) { |
| 94 | 91 | CallIdHeader callIdHeader = null; |
| 95 | 92 | if(parentPlatform.getTransport().equalsIgnoreCase("TCP")) { |
| ... | ... | @@ -100,8 +97,8 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 100 | 97 | } |
| 101 | 98 | |
| 102 | 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 | 102 | // 将 callid 写入缓存, 等注册成功可以更新状态 |
| 106 | 103 | String callIdFromHeader = callIdHeader.getCallId(); |
| 107 | 104 | redisCatchStorage.updatePlatformRegisterInfo(callIdFromHeader, PlatformRegisterInfo.getInstance(parentPlatform.getServerGBId(), isRegister)); |
| ... | ... | @@ -121,7 +118,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 121 | 118 | }else { |
| 122 | 119 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 123 | 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 | 124 | transmitRequest(parentPlatform, request, null, okEvent); |
| ... | ... | @@ -155,12 +152,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 155 | 152 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 156 | 153 | : udpSipProvider.getNewCallId(); |
| 157 | 154 | |
| 158 | - Request request = headerProviderPlarformProvider.createKeetpaliveMessageRequest( | |
| 155 | + Request request = headerProviderPlarformProvider.createMessageRequest( | |
| 159 | 156 | parentPlatform, |
| 160 | 157 | keepaliveXml.toString(), |
| 161 | - "z9hG4bK-" + UUID.randomUUID().toString().replace("-", ""), | |
| 162 | - UUID.randomUUID().toString().replace("-", ""), | |
| 163 | - null, | |
| 158 | + SipUtils.getNewFromTag(), | |
| 159 | + SipUtils.getNewViaTag(), | |
| 164 | 160 | callIdHeader); |
| 165 | 161 | transmitRequest(parentPlatform, request, errorEvent, okEvent); |
| 166 | 162 | callId = callIdHeader.getCallId(); |
| ... | ... | @@ -222,7 +218,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 222 | 218 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 223 | 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 | 222 | transmitRequest(parentPlatform, request); |
| 227 | 223 | |
| 228 | 224 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -267,13 +263,18 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 267 | 263 | // 虚拟组织增加BusinessGroupID字段 |
| 268 | 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 | 273 | if (channel.getParental() == 0) { |
| 272 | 274 | // 通道项 |
| 273 | 275 | catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n"); |
| 274 | 276 | catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n"); |
| 275 | 277 | catalogXml.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n"); |
| 276 | - catalogXml.append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n"); | |
| 277 | 278 | |
| 278 | 279 | if (channel.getChannelType() != 2) { // 业务分组/虚拟组织/行政区划 不设置以下属性 |
| 279 | 280 | catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n"); |
| ... | ... | @@ -308,7 +309,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 308 | 309 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 309 | 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 | 313 | transmitRequest(parentPlatform, request, null, eventResult -> { |
| 313 | 314 | int indexNext = index + parentPlatform.getCatalogGroup(); |
| 314 | 315 | sendCatalogResponse(channels, parentPlatform, sn, fromTag, indexNext); |
| ... | ... | @@ -348,7 +349,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 348 | 349 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 349 | 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 | 353 | transmitRequest(parentPlatform, request); |
| 353 | 354 | |
| 354 | 355 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -386,7 +387,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 386 | 387 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 387 | 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 | 391 | transmitRequest(parentPlatform, request); |
| 391 | 392 | |
| 392 | 393 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -471,8 +472,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 471 | 472 | CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId() |
| 472 | 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 | 476 | transmitRequest(parentPlatform, request); |
| 477 | 477 | |
| 478 | 478 | } catch (SipException | ParseException e) { |
| ... | ... | @@ -750,7 +750,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 750 | 750 | // callid |
| 751 | 751 | CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 752 | 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 | 754 | transmitRequest(parentPlatform, request); |
| 755 | 755 | |
| 756 | 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 | 78 | |
| 79 | 79 | List<DeviceChannel> allChannels = new ArrayList<>(); |
| 80 | 80 | |
| 81 | + // 回复平台 | |
| 82 | + DeviceChannel deviceChannel = getChannelForPlatform(parentPlatform); | |
| 83 | + allChannels.add(deviceChannel); | |
| 84 | + | |
| 85 | + // 回复目录 | |
| 81 | 86 | if (catalogs.size() > 0) { |
| 82 | 87 | allChannels.addAll(catalogs); |
| 83 | 88 | } |
| ... | ... | @@ -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 | 1 | package com.genersoft.iot.vmp.gb28181.transmit.event.response.impl; |
| 2 | 2 | |
| 3 | 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 | 4 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; |
| 7 | 5 | import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; |
| 8 | 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 | 8 | import gov.nist.javax.sip.ResponseEventExt; |
| 11 | -import gov.nist.javax.sip.message.SIPResponse; | |
| 12 | 9 | import gov.nist.javax.sip.stack.SIPDialog; |
| 13 | 10 | import org.slf4j.Logger; |
| 14 | 11 | import org.slf4j.LoggerFactory; |
| ... | ... | @@ -22,13 +19,10 @@ import javax.sip.*; |
| 22 | 19 | import javax.sip.address.Address; |
| 23 | 20 | import javax.sip.address.SipURI; |
| 24 | 21 | import javax.sip.header.CSeqHeader; |
| 25 | -import javax.sip.header.CallIdHeader; | |
| 26 | 22 | import javax.sip.header.UserAgentHeader; |
| 27 | 23 | import javax.sip.message.Request; |
| 28 | 24 | import javax.sip.message.Response; |
| 29 | 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 | 98 | } |
| 105 | 99 | requestURI.setPort(event.getRemotePort()); |
| 106 | 100 | reqAck.setRequestURI(requestURI); |
| 107 | - UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory); | |
| 101 | + UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); | |
| 108 | 102 | reqAck.addHeader(userAgentHeader); |
| 109 | 103 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); |
| 110 | 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 | 4 | import gov.nist.javax.sip.address.SipUri; |
| 5 | 5 | import gov.nist.javax.sip.header.Subject; |
| 6 | 6 | |
| 7 | +import javax.sip.PeerUnavailableException; | |
| 8 | +import javax.sip.SipFactory; | |
| 7 | 9 | import javax.sip.header.FromHeader; |
| 8 | 10 | import javax.sip.header.Header; |
| 11 | +import javax.sip.header.UserAgentHeader; | |
| 9 | 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 | 19 | * @author panlinlin |
| ... | ... | @@ -38,4 +45,25 @@ public class SipUtils { |
| 38 | 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 | 257 | // 超时处理 |
| 258 | 258 | String timeOutTaskKey = UUID.randomUUID().toString(); |
| 259 | 259 | SSRCInfo finalSsrcInfo = ssrcInfo; |
| 260 | + System.out.println("设置超时任务: " + timeOutTaskKey); | |
| 260 | 261 | dynamicTask.startDelay( timeOutTaskKey,()->{ |
| 261 | 262 | |
| 262 | 263 | SIPDialog dialog = streamSession.getDialogByStream(device.getDeviceId(), channelId, finalSsrcInfo.getStream()); |
| ... | ... | @@ -282,6 +283,7 @@ public class PlayServiceImpl implements IPlayService { |
| 282 | 283 | } |
| 283 | 284 | cmder.playStreamCmd(mediaServerItem, ssrcInfo, device, channelId, (MediaServerItem mediaServerItemInuse, JSONObject response) -> { |
| 284 | 285 | logger.info("收到订阅消息: " + response.toJSONString()); |
| 286 | + System.out.println("停止超时任务: " + timeOutTaskKey); | |
| 285 | 287 | dynamicTask.stop(timeOutTaskKey); |
| 286 | 288 | // hook响应 |
| 287 | 289 | onPublishHandlerForPlay(mediaServerItemInuse, response, device.getDeviceId(), channelId, uuid); | ... | ... |
web_src/src/components/channelList.vue
| ... | ... | @@ -250,6 +250,7 @@ export default { |
| 250 | 250 | that.loadSnap[deviceId + channelId] = 0; |
| 251 | 251 | that.getSnapErrorEvent(snapId) |
| 252 | 252 | }, 5000) |
| 253 | + itemData.streamId = res.data.data.stream; | |
| 253 | 254 | that.$refs.devicePlayer.openDialog("media", deviceId, channelId, { |
| 254 | 255 | streamInfo: res.data.data, |
| 255 | 256 | hasAudio: itemData.hasAudio | ... | ... |