Commit 5c5699ae11ef02a675f7f9d81783b4ad02f312ea

Authored by 648540858
1 parent e3d7be9d

redis优化

src/main/java/com/genersoft/iot/vmp/conf/redis/RedisTemplateConfig.java
1 1 package com.genersoft.iot.vmp.conf.redis;
2 2  
3   -import com.genersoft.iot.vmp.utils.redis.FastJsonRedisSerializer;
  3 +import com.alibaba.fastjson2.support.spring.data.redis.GenericFastJsonRedisSerializer;
4 4 import org.springframework.context.annotation.Bean;
5 5 import org.springframework.context.annotation.Configuration;
6 6 import org.springframework.data.redis.connection.RedisConnectionFactory;
... ... @@ -14,7 +14,7 @@ public class RedisTemplateConfig {
14 14 public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
15 15 RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
16 16 // 使用fastJson序列化
17   - FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
  17 + GenericFastJsonRedisSerializer fastJsonRedisSerializer = new GenericFastJsonRedisSerializer();
18 18 // value值的序列化采用fastJsonRedisSerializer
19 19 redisTemplate.setValueSerializer(fastJsonRedisSerializer);
20 20 redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
... ... @@ -36,8 +36,6 @@ public class SipLayer implements CommandLineRunner {
36 36 private final Map<String, SipProviderImpl> tcpSipProviderMap = new ConcurrentHashMap<>();
37 37 private final Map<String, SipProviderImpl> udpSipProviderMap = new ConcurrentHashMap<>();
38 38  
39   - private SipFactory sipFactory;
40   -
41 39 @Override
42 40 public void run(String... args) {
43 41 List<String> monitorIps = new ArrayList<>();
... ... @@ -50,8 +48,7 @@ public class SipLayer implements CommandLineRunner {
50 48 monitorIps.add(sipConfig.getIp());
51 49 }
52 50  
53   - sipFactory = SipFactory.getInstance();
54   - sipFactory.setPathName("gov.nist");
  51 + SipFactory.getInstance().setPathName("gov.nist");
55 52 if (monitorIps.size() > 0) {
56 53 for (String monitorIp : monitorIps) {
57 54 addListeningPoint(monitorIp, sipConfig.getPort());
... ... @@ -65,7 +62,7 @@ public class SipLayer implements CommandLineRunner {
65 62 private void addListeningPoint(String monitorIp, int port){
66 63 SipStackImpl sipStack;
67 64 try {
68   - sipStack = (SipStackImpl)sipFactory.createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog()));
  65 + sipStack = (SipStackImpl)SipFactory.getInstance().createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog()));
69 66 } catch (PeerUnavailableException e) {
70 67 logger.error("[Sip Server] SIP服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp);
71 68 return;
... ... @@ -106,10 +103,6 @@ public class SipLayer implements CommandLineRunner {
106 103 }
107 104 }
108 105  
109   - public SipFactory getSipFactory() {
110   - return sipFactory;
111   - }
112   -
113 106 public SipProviderImpl getUdpSipProvider(String ip) {
114 107 if (ObjectUtils.isEmpty(ip)) {
115 108 return null;
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
... ... @@ -57,7 +57,7 @@ public class SIPSender {
57 57 }
58 58 if (message.getHeader(UserAgentHeader.NAME) == null) {
59 59 try {
60   - message.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  60 + message.addHeader(SipUtils.createUserAgentHeader(gitUtil));
61 61 } catch (ParseException e) {
62 62 logger.error("添加UserAgentHeader失败", e);
63 63 }
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
... ... @@ -16,6 +16,7 @@ import org.springframework.util.DigestUtils;
16 16  
17 17 import javax.sip.InvalidArgumentException;
18 18 import javax.sip.PeerUnavailableException;
  19 +import javax.sip.SipFactory;
19 20 import javax.sip.address.Address;
20 21 import javax.sip.address.SipURI;
21 22 import javax.sip.header.*;
... ... @@ -49,39 +50,39 @@ public class SIPRequestHeaderPlarformProvider {
49 50 Request request = null;
50 51 String sipAddress = parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort();
51 52 //请求行
52   - SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(),
  53 + SipURI requestLine = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getServerGBId(),
53 54 parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort());
54 55 //via
55 56 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
56   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(parentPlatform.getServerIP(),
  57 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(parentPlatform.getServerIP(),
57 58 parentPlatform.getServerPort(), parentPlatform.getTransport(), SipUtils.getNewViaTag());
58 59 viaHeader.setRPort();
59 60 viaHeaders.add(viaHeader);
60 61 //from
61   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), sipConfig.getDomain());
62   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
63   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, fromTag);
  62 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), sipConfig.getDomain());
  63 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  64 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, fromTag);
64 65 //to
65   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), sipConfig.getDomain());
66   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
67   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress,toTag);
  66 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), sipConfig.getDomain());
  67 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  68 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress,toTag);
68 69  
69 70 //Forwards
70   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  71 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
71 72  
72 73 //ceq
73   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(CSeq, Request.REGISTER);
74   - request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestLine, Request.REGISTER, callIdHeader,
  74 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(CSeq, Request.REGISTER);
  75 + request = SipFactory.getInstance().createMessageFactory().createRequest(requestLine, Request.REGISTER, callIdHeader,
75 76 cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
76 77  
77   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory()
  78 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory()
78 79 .createSipURI(parentPlatform.getDeviceGBId(), sipAddress));
79   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  80 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
80 81  
81   - ExpiresHeader expiresHeader = sipLayer.getSipFactory().createHeaderFactory().createExpiresHeader(expires);
  82 + ExpiresHeader expiresHeader = SipFactory.getInstance().createHeaderFactory().createExpiresHeader(expires);
82 83 request.addHeader(expiresHeader);
83 84  
84   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  85 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
85 86  
86 87 return request;
87 88 }
... ... @@ -91,9 +92,9 @@ public class SIPRequestHeaderPlarformProvider {
91 92  
92 93  
93 94 Request registerRequest = createRegisterRequest(parentPlatform, redisCatchStorage.getCSEQ(), fromTag, toTag, callIdHeader, expires);
94   - SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort());
  95 + SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort());
95 96 if (www == null) {
96   - AuthorizationHeader authorizationHeader = sipLayer.getSipFactory().createHeaderFactory().createAuthorizationHeader("Digest");
  97 + AuthorizationHeader authorizationHeader = SipFactory.getInstance().createHeaderFactory().createAuthorizationHeader("Digest");
97 98 String username = parentPlatform.getUsername();
98 99 if ( username == null || username == "" )
99 100 {
... ... @@ -146,7 +147,7 @@ public class SIPRequestHeaderPlarformProvider {
146 147  
147 148 String RESPONSE = DigestUtils.md5DigestAsHex(reStr.toString().getBytes());
148 149  
149   - AuthorizationHeader authorizationHeader = sipLayer.getSipFactory().createHeaderFactory().createAuthorizationHeader(scheme);
  150 + AuthorizationHeader authorizationHeader = SipFactory.getInstance().createHeaderFactory().createAuthorizationHeader(scheme);
150 151 authorizationHeader.setUsername(parentPlatform.getDeviceGBId());
151 152 authorizationHeader.setRealm(realm);
152 153 authorizationHeader.setNonce(nonce);
... ... @@ -164,7 +165,7 @@ public class SIPRequestHeaderPlarformProvider {
164 165 }
165 166  
166 167 public Request createMessageRequest(ParentPlatform parentPlatform, String content, SendRtpItem sendRtpItem) throws PeerUnavailableException, ParseException, InvalidArgumentException {
167   - CallIdHeader callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(sendRtpItem.getCallId());
  168 + CallIdHeader callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(sendRtpItem.getCallId());
168 169 return createMessageRequest(parentPlatform, content, sendRtpItem.getToTag(), SipUtils.getNewViaTag(), sendRtpItem.getFromTag(), callIdHeader);
169 170 }
170 171  
... ... @@ -177,36 +178,36 @@ public class SIPRequestHeaderPlarformProvider {
177 178 Request request = null;
178 179 String serverAddress = parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort();
179 180 // sipuri
180   - SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress);
  181 + SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress);
181 182 // via
182 183 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
183   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(parentPlatform.getDeviceIp(), Integer.parseInt(parentPlatform.getDevicePort()),
  184 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(parentPlatform.getDeviceIp(), Integer.parseInt(parentPlatform.getDevicePort()),
184 185 parentPlatform.getTransport(), viaTag);
185 186 viaHeader.setRPort();
186 187 viaHeaders.add(viaHeader);
187 188 // from
188   - // SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), parentPlatform.getDeviceIp() + ":" + parentPlatform.getDeviceIp());
189   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), sipConfig.getDomain());
190   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
191   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, fromTag);
  189 + // SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), parentPlatform.getDeviceIp() + ":" + parentPlatform.getDeviceIp());
  190 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), sipConfig.getDomain());
  191 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  192 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, fromTag);
192 193 // to
193   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress);
194   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
195   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress, toTag);
  194 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress);
  195 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  196 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, toTag);
196 197  
197 198 // Forwards
198   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  199 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
199 200 // ceq
200   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.MESSAGE);
201   - MessageFactoryImpl messageFactory = (MessageFactoryImpl) sipLayer.getSipFactory().createMessageFactory();
  201 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.MESSAGE);
  202 + MessageFactoryImpl messageFactory = (MessageFactoryImpl) SipFactory.getInstance().createMessageFactory();
202 203 // 设置编码, 防止中文乱码
203 204 messageFactory.setDefaultContentEncodingCharset(parentPlatform.getCharacterSet());
204 205 request = messageFactory.createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader,
205 206 toHeader, viaHeaders, maxForwards);
206 207  
207   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  208 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
208 209  
209   - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
  210 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
210 211 request.setContent(content, contentTypeHeader);
211 212 return request;
212 213 }
... ... @@ -214,54 +215,54 @@ public class SIPRequestHeaderPlarformProvider {
214 215 public SIPRequest createNotifyRequest(ParentPlatform parentPlatform, String content, SubscribeInfo subscribeInfo) throws PeerUnavailableException, ParseException, InvalidArgumentException {
215 216 SIPRequest request = null;
216 217 // sipuri
217   - SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort());
  218 + SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort());
218 219 // via
219 220 ArrayList<ViaHeader> viaHeaders = new ArrayList<>();
220   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(parentPlatform.getDeviceIp(), Integer.parseInt(parentPlatform.getDevicePort()),
  221 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(parentPlatform.getDeviceIp(), Integer.parseInt(parentPlatform.getDevicePort()),
221 222 parentPlatform.getTransport(), SipUtils.getNewViaTag());
222 223 viaHeader.setRPort();
223 224 viaHeaders.add(viaHeader);
224 225 // from
225   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(),
  226 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(),
226 227 parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort());
227   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
228   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, subscribeInfo.getResponse().getToTag());
  228 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  229 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, subscribeInfo.getResponse().getToTag());
229 230 // to
230   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerGBDomain());
231   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
232   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress, subscribeInfo.getRequest().getFromTag());
  231 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerGBDomain());
  232 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  233 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, subscribeInfo.getRequest().getFromTag());
233 234  
234 235 // Forwards
235   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  236 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
236 237 // ceq
237   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.NOTIFY);
238   - MessageFactoryImpl messageFactory = (MessageFactoryImpl) sipLayer.getSipFactory().createMessageFactory();
  238 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.NOTIFY);
  239 + MessageFactoryImpl messageFactory = (MessageFactoryImpl) SipFactory.getInstance().createMessageFactory();
239 240 // 设置编码, 防止中文乱码
240 241 messageFactory.setDefaultContentEncodingCharset("gb2312");
241 242  
242   - CallIdHeader callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(subscribeInfo.getRequest().getCallIdHeader().getCallId());
  243 + CallIdHeader callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(subscribeInfo.getRequest().getCallIdHeader().getCallId());
243 244  
244 245 request = (SIPRequest) messageFactory.createRequest(requestURI, Request.NOTIFY, callIdHeader, cSeqHeader, fromHeader,
245 246 toHeader, viaHeaders, maxForwards);
246 247  
247   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  248 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
248 249  
249   - EventHeader event = sipLayer.getSipFactory().createHeaderFactory().createEventHeader(subscribeInfo.getEventType());
  250 + EventHeader event = SipFactory.getInstance().createHeaderFactory().createEventHeader(subscribeInfo.getEventType());
250 251 if (subscribeInfo.getEventId() != null) {
251 252 event.setEventId(subscribeInfo.getEventId());
252 253 }
253 254  
254 255 request.addHeader(event);
255 256  
256   - SubscriptionStateHeader active = sipLayer.getSipFactory().createHeaderFactory().createSubscriptionStateHeader("active");
  257 + SubscriptionStateHeader active = SipFactory.getInstance().createHeaderFactory().createSubscriptionStateHeader("active");
257 258 request.setHeader(active);
258 259  
259 260 String sipAddress = parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort();
260   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory()
  261 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory()
261 262 .createSipURI(parentPlatform.getDeviceGBId(), sipAddress));
262   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  263 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
263 264  
264   - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
  265 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
265 266 request.setContent(content, contentTypeHeader);
266 267 return request;
267 268 }
... ... @@ -274,42 +275,42 @@ public class SIPRequestHeaderPlarformProvider {
274 275  
275 276 SIPRequest request = null;
276 277 // sipuri
277   - SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(platform.getServerGBId(), platform.getServerIP()+ ":" + platform.getServerPort());
  278 + SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(platform.getServerGBId(), platform.getServerIP()+ ":" + platform.getServerPort());
278 279 // via
279 280 ArrayList<ViaHeader> viaHeaders = new ArrayList<>();
280   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(platform.getDeviceIp(), Integer.parseInt(platform.getDevicePort()),
  281 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(platform.getDeviceIp(), Integer.parseInt(platform.getDevicePort()),
281 282 platform.getTransport(), SipUtils.getNewViaTag());
282 283 viaHeader.setRPort();
283 284 viaHeaders.add(viaHeader);
284 285 // from
285   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(platform.getDeviceGBId(),
  286 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(platform.getDeviceGBId(),
286 287 platform.getDeviceIp() + ":" + platform.getDevicePort());
287   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
288   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, sendRtpItem.getToTag());
  288 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  289 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, sendRtpItem.getToTag());
289 290 // to
290   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(platform.getServerGBId(), platform.getServerGBDomain());
291   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
292   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress, sendRtpItem.getFromTag());
  291 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(platform.getServerGBId(), platform.getServerGBDomain());
  292 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  293 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, sendRtpItem.getFromTag());
293 294  
294 295 // Forwards
295   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  296 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
296 297 // ceq
297   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.BYE);
298   - MessageFactoryImpl messageFactory = (MessageFactoryImpl) sipLayer.getSipFactory().createMessageFactory();
  298 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.BYE);
  299 + MessageFactoryImpl messageFactory = (MessageFactoryImpl) SipFactory.getInstance().createMessageFactory();
299 300 // 设置编码, 防止中文乱码
300 301 messageFactory.setDefaultContentEncodingCharset("gb2312");
301 302  
302   - CallIdHeader callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(sendRtpItem.getCallId());
  303 + CallIdHeader callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(sendRtpItem.getCallId());
303 304  
304 305 request = (SIPRequest) messageFactory.createRequest(requestURI, Request.BYE, callIdHeader, cSeqHeader, fromHeader,
305 306 toHeader, viaHeaders, maxForwards);
306 307  
307   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  308 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
308 309  
309 310 String sipAddress = platform.getDeviceIp() + ":" + platform.getDevicePort();
310   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory()
  311 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory()
311 312 .createSipURI(platform.getDeviceGBId(), sipAddress));
312   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  313 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
313 314  
314 315 return request;
315 316 }
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
... ... @@ -16,6 +16,7 @@ import org.springframework.stereotype.Component;
16 16 import javax.sip.InvalidArgumentException;
17 17 import javax.sip.PeerUnavailableException;
18 18 import javax.sip.SipException;
  19 +import javax.sip.SipFactory;
19 20 import javax.sip.address.Address;
20 21 import javax.sip.address.SipURI;
21 22 import javax.sip.header.*;
... ... @@ -49,32 +50,32 @@ public class SIPRequestHeaderProvider {
49 50 public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException {
50 51 Request request = null;
51 52 // sipuri
52   - SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
  53 + SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
53 54 // via
54 55 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
55   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag);
  56 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag);
56 57 viaHeader.setRPort();
57 58 viaHeaders.add(viaHeader);
58 59 // from
59   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
60   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
61   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, fromTag);
  60 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
  61 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  62 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, fromTag);
62 63 // to
63   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
64   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
65   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress, toTag);
  64 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
  65 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  66 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, toTag);
66 67  
67 68 // Forwards
68   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  69 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
69 70 // ceq
70   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.MESSAGE);
  71 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.MESSAGE);
71 72  
72   - request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader,
  73 + request = SipFactory.getInstance().createMessageFactory().createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader,
73 74 toHeader, viaHeaders, maxForwards);
74 75  
75   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  76 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
76 77  
77   - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
  78 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
78 79 request.setContent(content, contentTypeHeader);
79 80 return request;
80 81 }
... ... @@ -82,39 +83,39 @@ public class SIPRequestHeaderProvider {
82 83 public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException {
83 84 Request request = null;
84 85 //请求行
85   - SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress());
  86 + SipURI requestLine = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
86 87 //via
87 88 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
88   - HeaderFactory headerFactory = sipLayer.getSipFactory().createHeaderFactory();
89   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag);
  89 + HeaderFactory headerFactory = SipFactory.getInstance().createHeaderFactory();
  90 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag);
90 91 viaHeader.setRPort();
91 92 viaHeaders.add(viaHeader);
92 93  
93 94 //from
94   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
95   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
96   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack
  95 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
  96 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  97 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack
97 98 //to
98   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress());
99   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
100   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress,null);
  99 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
  100 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  101 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress,null);
101 102  
102 103 //Forwards
103   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  104 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
104 105  
105 106 //ceq
106   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INVITE);
107   - request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
  107 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INVITE);
  108 + request = SipFactory.getInstance().createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
108 109  
109   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  110 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
110 111  
111   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
112   - // Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort()));
113   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  112 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
  113 + // Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort()));
  114 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
114 115 // Subject
115   - SubjectHeader subjectHeader = sipLayer.getSipFactory().createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getId(), 0));
  116 + SubjectHeader subjectHeader = SipFactory.getInstance().createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getId(), 0));
116 117 request.addHeader(subjectHeader);
117   - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
  118 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
118 119 request.setContent(content, contentTypeHeader);
119 120 return request;
120 121 }
... ... @@ -122,39 +123,39 @@ public class SIPRequestHeaderProvider {
122 123 public Request createPlaybackInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader, String ssrc) throws ParseException, InvalidArgumentException, PeerUnavailableException {
123 124 Request request = null;
124 125 //请求行
125   - SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress());
  126 + SipURI requestLine = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
126 127 // via
127 128 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
128   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag);
  129 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag);
129 130 viaHeader.setRPort();
130 131 viaHeaders.add(viaHeader);
131 132 //from
132   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
133   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
134   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack
  133 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
  134 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  135 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack
135 136 //to
136   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress());
137   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
138   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress,null);
  137 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
  138 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  139 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress,null);
139 140  
140 141 //Forwards
141   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  142 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
142 143  
143 144 //ceq
144   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INVITE);
145   - request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
  145 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INVITE);
  146 + request = SipFactory.getInstance().createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
146 147  
147   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
148   - // Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort()));
149   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  148 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
  149 + // Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort()));
  150 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
150 151  
151   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  152 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
152 153  
153 154 // Subject
154   - SubjectHeader subjectHeader = sipLayer.getSipFactory().createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getId(), 0));
  155 + SubjectHeader subjectHeader = SipFactory.getInstance().createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getId(), 0));
155 156 request.addHeader(subjectHeader);
156 157  
157   - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
  158 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
158 159 request.setContent(content, contentTypeHeader);
159 160 return request;
160 161 }
... ... @@ -162,34 +163,34 @@ public class SIPRequestHeaderProvider {
162 163 public Request createByteRequest(Device device, String channelId, SipTransactionInfo transactionInfo) throws ParseException, InvalidArgumentException, PeerUnavailableException {
163 164 Request request = null;
164 165 //请求行
165   - SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress());
  166 + SipURI requestLine = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
166 167 // via
167 168 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
168   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag());
  169 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag());
169 170 viaHeaders.add(viaHeader);
170 171 //from
171   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
172   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
173   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, transactionInfo.getFromTag());
  172 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
  173 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  174 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, transactionInfo.getFromTag());
174 175 //to
175   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId,device.getHostAddress());
176   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
177   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress, transactionInfo.getToTag());
  176 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(channelId,device.getHostAddress());
  177 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  178 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, transactionInfo.getToTag());
178 179  
179 180 //Forwards
180   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  181 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
181 182  
182 183 //ceq
183   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.BYE);
184   - CallIdHeader callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(transactionInfo.getCallId());
185   - request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestLine, Request.BYE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
  184 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.BYE);
  185 + CallIdHeader callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(transactionInfo.getCallId());
  186 + request = SipFactory.getInstance().createMessageFactory().createRequest(requestLine, Request.BYE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
186 187  
187   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  188 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
188 189  
189   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
190   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  190 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
  191 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
191 192  
192   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  193 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
193 194  
194 195 return request;
195 196 }
... ... @@ -197,50 +198,50 @@ public class SIPRequestHeaderProvider {
197 198 public Request createSubscribeRequest(Device device, String content, SIPRequest requestOld, Integer expires, String event, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException {
198 199 Request request = null;
199 200 // sipuri
200   - SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
  201 + SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
201 202 // via
202 203 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
203   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(),
  204 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(),
204 205 device.getTransport(), SipUtils.getNewViaTag());
205 206 viaHeader.setRPort();
206 207 viaHeaders.add(viaHeader);
207 208 // from
208   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
209   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
210   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, requestOld == null ? SipUtils.getNewFromTag() :requestOld.getFromTag());
  209 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getDomain());
  210 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  211 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, requestOld == null ? SipUtils.getNewFromTag() :requestOld.getFromTag());
211 212 // to
212   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
213   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
214   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress, requestOld == null ? null :requestOld.getToTag());
  213 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
  214 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  215 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, requestOld == null ? null :requestOld.getToTag());
215 216  
216 217 // Forwards
217   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  218 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
218 219  
219 220 // ceq
220   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.SUBSCRIBE);
  221 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.SUBSCRIBE);
221 222  
222   - request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestURI, Request.SUBSCRIBE, callIdHeader, cSeqHeader, fromHeader,
  223 + request = SipFactory.getInstance().createMessageFactory().createRequest(requestURI, Request.SUBSCRIBE, callIdHeader, cSeqHeader, fromHeader,
223 224 toHeader, viaHeaders, maxForwards);
224 225  
225 226  
226   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
227   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  227 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
  228 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
228 229  
229 230 // Expires
230   - ExpiresHeader expireHeader = sipLayer.getSipFactory().createHeaderFactory().createExpiresHeader(expires);
  231 + ExpiresHeader expireHeader = SipFactory.getInstance().createHeaderFactory().createExpiresHeader(expires);
231 232 request.addHeader(expireHeader);
232 233  
233 234 // Event
234   - EventHeader eventHeader = sipLayer.getSipFactory().createHeaderFactory().createEventHeader(event);
  235 + EventHeader eventHeader = SipFactory.getInstance().createHeaderFactory().createEventHeader(event);
235 236  
236 237 int random = (int) Math.floor(Math.random() * 10000);
237 238 eventHeader.setEventId(random + "");
238 239 request.addHeader(eventHeader);
239 240  
240   - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
  241 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
241 242 request.setContent(content, contentTypeHeader);
242 243  
243   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  244 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
244 245  
245 246 return request;
246 247 }
... ... @@ -252,37 +253,37 @@ public class SIPRequestHeaderProvider {
252 253 }
253 254 SIPRequest request = null;
254 255 //请求行
255   - SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress());
  256 + SipURI requestLine = SipFactory.getInstance().createAddressFactory().createSipURI(channelId, device.getHostAddress());
256 257 // via
257 258 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
258   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag());
  259 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag());
259 260 viaHeaders.add(viaHeader);
260 261 //from
261   - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
262   - Address fromAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(fromSipURI);
263   - FromHeader fromHeader = sipLayer.getSipFactory().createHeaderFactory().createFromHeader(fromAddress, transactionInfo.getFromTag());
  262 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
  263 + Address fromAddress = SipFactory.getInstance().createAddressFactory().createAddress(fromSipURI);
  264 + FromHeader fromHeader = SipFactory.getInstance().createHeaderFactory().createFromHeader(fromAddress, transactionInfo.getFromTag());
264 265 //to
265   - SipURI toSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId,device.getHostAddress());
266   - Address toAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(toSipURI);
267   - ToHeader toHeader = sipLayer.getSipFactory().createHeaderFactory().createToHeader(toAddress, transactionInfo.getToTag());
  266 + SipURI toSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(channelId,device.getHostAddress());
  267 + Address toAddress = SipFactory.getInstance().createAddressFactory().createAddress(toSipURI);
  268 + ToHeader toHeader = SipFactory.getInstance().createHeaderFactory().createToHeader(toAddress, transactionInfo.getToTag());
268 269  
269 270 //Forwards
270   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  271 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
271 272  
272 273 //ceq
273   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INFO);
274   - CallIdHeader callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(transactionInfo.getCallId());
275   - request = (SIPRequest)sipLayer.getSipFactory().createMessageFactory().createRequest(requestLine, Request.INFO, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
  274 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INFO);
  275 + CallIdHeader callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(transactionInfo.getCallId());
  276 + request = (SIPRequest)SipFactory.getInstance().createMessageFactory().createRequest(requestLine, Request.INFO, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
276 277  
277   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  278 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
278 279  
279   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
280   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  280 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort()));
  281 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
281 282  
282   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  283 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
283 284  
284 285 if (content != null) {
285   - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("Application",
  286 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application",
286 287 "MANSRTSP");
287 288 request.setContent(content, contentTypeHeader);
288 289 }
... ... @@ -294,23 +295,23 @@ public class SIPRequestHeaderProvider {
294 295  
295 296 // via
296 297 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
297   - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(localIp, sipConfig.getPort(), sipResponse.getTopmostViaHeader().getTransport(), SipUtils.getNewViaTag());
  298 + ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(localIp, sipConfig.getPort(), sipResponse.getTopmostViaHeader().getTransport(), SipUtils.getNewViaTag());
298 299 viaHeaders.add(viaHeader);
299 300  
300 301 //Forwards
301   - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70);
  302 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
302 303  
303 304 //ceq
304   - CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(sipResponse.getCSeqHeader().getSeqNumber(), Request.ACK);
  305 + CSeqHeader cSeqHeader = SipFactory.getInstance().createHeaderFactory().createCSeqHeader(sipResponse.getCSeqHeader().getSeqNumber(), Request.ACK);
305 306  
306   - Request request = sipLayer.getSipFactory().createMessageFactory().createRequest(sipURI, Request.ACK, sipResponse.getCallIdHeader(), cSeqHeader, sipResponse.getFromHeader(), sipResponse.getToHeader(), viaHeaders, maxForwards);
  307 + Request request = SipFactory.getInstance().createMessageFactory().createRequest(sipURI, Request.ACK, sipResponse.getCallIdHeader(), cSeqHeader, sipResponse.getFromHeader(), sipResponse.getToHeader(), viaHeaders, maxForwards);
307 308  
308   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  309 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
309 310  
310   - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), localIp + ":"+sipConfig.getPort()));
311   - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
  311 + Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(SipFactory.getInstance().createAddressFactory().createSipURI(sipConfig.getId(), localIp + ":"+sipConfig.getPort()));
  312 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
312 313  
313   - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
  314 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
314 315  
315 316 return request;
316 317 }
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
... ... @@ -33,6 +33,7 @@ import org.springframework.util.ObjectUtils;
33 33 import javax.sip.InvalidArgumentException;
34 34 import javax.sip.ResponseEvent;
35 35 import javax.sip.SipException;
  36 +import javax.sip.SipFactory;
36 37 import javax.sip.header.CallIdHeader;
37 38 import javax.sip.message.Request;
38 39 import java.text.ParseException;
... ... @@ -1192,7 +1193,7 @@ public class SIPCommander implements ISIPCommander {
1192 1193 CallIdHeader callIdHeader;
1193 1194  
1194 1195 if (requestOld != null) {
1195   - callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId());
  1196 + callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId());
1196 1197 } else {
1197 1198 callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport());
1198 1199 }
... ... @@ -1267,7 +1268,7 @@ public class SIPCommander implements ISIPCommander {
1267 1268 CallIdHeader callIdHeader;
1268 1269  
1269 1270 if (requestOld != null) {
1270   - callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId());
  1271 + callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId());
1271 1272 } else {
1272 1273 callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport());
1273 1274 }
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
... ... @@ -29,6 +29,7 @@ import org.springframework.util.ObjectUtils;
29 29  
30 30 import javax.sip.InvalidArgumentException;
31 31 import javax.sip.SipException;
  32 +import javax.sip.SipFactory;
32 33 import javax.sip.header.CallIdHeader;
33 34 import javax.sip.header.WWWAuthenticateHeader;
34 35 import javax.sip.message.Request;
... ... @@ -497,7 +498,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
497 498 private void sendNotify(ParentPlatform parentPlatform, String catalogXmlContent,
498 499 SubscribeInfo subscribeInfo, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent )
499 500 throws SipException, ParseException, InvalidArgumentException {
500   - MessageFactoryImpl messageFactory = (MessageFactoryImpl) sipLayer.getSipFactory().createMessageFactory();
  501 + MessageFactoryImpl messageFactory = (MessageFactoryImpl) SipFactory.getInstance().createMessageFactory();
501 502 String characterSet = parentPlatform.getCharacterSet();
502 503 // 设置编码, 防止中文乱码
503 504 messageFactory.setDefaultContentEncodingCharset(characterSet);
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
... ... @@ -96,6 +96,7 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements
96 96 logger.error("未处理的异常 ", e);
97 97 }
98 98 boolean runed = !taskQueue.isEmpty();
  99 + logger.info("[notify] 待处理消息数量: {}", taskQueue.size());
99 100 taskQueue.offer(new HandlerCatchData(evt, null, null));
100 101 if (!runed) {
101 102 taskExecutor.execute(()-> {
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
... ... @@ -82,19 +82,6 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen
82 82 RequestEventExt evtExt = (RequestEventExt) evt;
83 83 String requestAddress = evtExt.getRemoteIpAddress() + ":" + evtExt.getRemotePort();
84 84  
85   -// MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
86   -// QueryExp protocol = Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"));
87   -//// ObjectName name = new ObjectName("*:type=Connector,*");
88   -// ObjectName name = new ObjectName("*:*");
89   -// Set<ObjectName> objectNames = beanServer.queryNames(name, protocol);
90   -// for (ObjectName objectName : objectNames) {
91   -// String catalina = objectName.getDomain();
92   -// if ("Catalina".equals(catalina)) {
93   -// System.out.println(objectName.getKeyProperty("port"));
94   -// }
95   -// }
96   -
97   -// System.out.println(ServiceInfo.getServerPort());
98 85 SIPRequest request = (SIPRequest)evt.getRequest();
99 86 Response response = null;
100 87 boolean passwordCorrect = false;
... ...
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   -import com.genersoft.iot.vmp.conf.SipConfig;
4 3 import com.genersoft.iot.vmp.gb28181.SipLayer;
5   -import com.genersoft.iot.vmp.gb28181.bean.Device;
6   -import com.genersoft.iot.vmp.gb28181.bean.SsrcTransaction;
7   -import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
8 4 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
9 5 import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
10   -import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
11 6 import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderProvider;
12 7 import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract;
13   -import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
14   -import com.genersoft.iot.vmp.service.IDeviceService;
15   -import com.genersoft.iot.vmp.utils.GitUtil;
16 8 import gov.nist.javax.sip.ResponseEventExt;
17   -import gov.nist.javax.sip.SipProviderImpl;
18 9 import gov.nist.javax.sip.message.SIPResponse;
19   -import gov.nist.javax.sip.stack.SIPClientTransaction;
20   -import gov.nist.javax.sip.stack.SIPDialog;
21   -import gov.nist.javax.sip.stack.SIPTransaction;
22   -import gov.nist.javax.sip.stack.SIPTransactionImpl;
23 10 import org.slf4j.Logger;
24 11 import org.slf4j.LoggerFactory;
25 12 import org.springframework.beans.factory.annotation.Autowired;
26   -import org.springframework.beans.factory.annotation.Qualifier;
27 13 import org.springframework.stereotype.Component;
28 14  
29 15 import javax.sdp.SdpFactory;
30 16 import javax.sdp.SdpParseException;
31 17 import javax.sdp.SessionDescription;
32   -import javax.sip.*;
33   -import javax.sip.address.Address;
  18 +import javax.sip.InvalidArgumentException;
  19 +import javax.sip.ResponseEvent;
  20 +import javax.sip.SipException;
  21 +import javax.sip.SipFactory;
34 22 import javax.sip.address.SipURI;
35   -import javax.sip.header.CSeqHeader;
36   -import javax.sip.header.UserAgentHeader;
37 23 import javax.sip.message.Request;
38 24 import javax.sip.message.Response;
39 25 import java.text.ParseException;
... ... @@ -105,7 +91,7 @@ public class InviteResponseProcessor extends SIPResponseProcessorAbstract {
105 91 sdp = SdpFactory.getInstance().createSessionDescription(contentString);
106 92 }
107 93  
108   - SipURI requestUri = sipLayer.getSipFactory().createAddressFactory().createSipURI(sdp.getOrigin().getUsername(), event.getRemoteIpAddress() + ":" + event.getRemotePort());
  94 + SipURI requestUri = SipFactory.getInstance().createAddressFactory().createSipURI(sdp.getOrigin().getUsername(), event.getRemoteIpAddress() + ":" + event.getRemotePort());
109 95 Request reqAck = headerProvider.createAckRequest(response.getLocalAddress().getHostAddress(), requestUri, response);
110 96  
111 97 logger.info("[回复ack] {}-> {}:{} ", sdp.getOrigin().getUsername(), event.getRemoteIpAddress(), event.getRemotePort());
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
... ... @@ -54,7 +54,7 @@ public class SipUtils {
54 54 return "z9hG4bK" + System.currentTimeMillis();
55 55 }
56 56  
57   - public static UserAgentHeader createUserAgentHeader(SipFactory sipFactory, GitUtil gitUtil) throws PeerUnavailableException, ParseException {
  57 + public static UserAgentHeader createUserAgentHeader(GitUtil gitUtil) throws PeerUnavailableException, ParseException {
58 58 List<String> agentParam = new ArrayList<>();
59 59 agentParam.add("WVP-Pro ");
60 60 if (gitUtil != null ) {
... ... @@ -66,7 +66,7 @@ public class SipUtils {
66 66 agentParam.add(gitUtil.getCommitTime());
67 67 }
68 68 }
69   - return sipFactory.createHeaderFactory().createUserAgentHeader(agentParam);
  69 + return SipFactory.getInstance().createHeaderFactory().createUserAgentHeader(agentParam);
70 70 }
71 71  
72 72 public static String getNewFromTag(){
... ...
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
... ... @@ -395,7 +395,7 @@ public class ZLMHttpHookListener {
395 395 List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByStream(param.getStream());
396 396 if (sendRtpItems.size() > 0) {
397 397 for (SendRtpItem sendRtpItem : sendRtpItems) {
398   - if (sendRtpItem.getApp().equals(param.getApp())) {
  398 + if (sendRtpItem != null && sendRtpItem.getApp().equals(param.getApp())) {
399 399 String platformId = sendRtpItem.getPlatformId();
400 400 ParentPlatform platform = storager.queryParentPlatByServerGBId(platformId);
401 401 Device device = deviceService.getDevice(platformId);
... ...
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamStatusMsgListener.java
... ... @@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.service.redisMsg;
3 3 import com.alibaba.fastjson2.JSON;
4 4 import com.genersoft.iot.vmp.common.VideoManagerConstants;
5 5 import com.genersoft.iot.vmp.conf.DynamicTask;
  6 +import com.genersoft.iot.vmp.conf.UserSetting;
6 7 import com.genersoft.iot.vmp.service.IStreamPushService;
7 8 import com.genersoft.iot.vmp.service.bean.PushStreamStatusChangeFromRedisDto;
8 9 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
... ... @@ -38,6 +39,9 @@ public class RedisPushStreamStatusMsgListener implements MessageListener, Applic
38 39 @Autowired
39 40 private DynamicTask dynamicTask;
40 41  
  42 + @Autowired
  43 + private UserSetting userSetting;
  44 +
41 45  
42 46  
43 47 private ConcurrentLinkedQueue<Message> taskQueue = new ConcurrentLinkedQueue<>();
... ... @@ -89,13 +93,15 @@ public class RedisPushStreamStatusMsgListener implements MessageListener, Applic
89 93  
90 94 @Override
91 95 public void run(ApplicationArguments args) throws Exception {
92   - // 启动时设置所有推流通道离线,发起查询请求
93   - redisCatchStorage.sendStreamPushRequestedMsgForStatus();
94   - dynamicTask.startDelay(VideoManagerConstants.VM_MSG_GET_ALL_ONLINE_REQUESTED, ()->{
95   - logger.info("[REDIS消息]未收到redis回复推流设备状态,执行推流设备离线");
96   - // 五秒收不到请求就设置通道离线,然后通知上级离线
97   - streamPushService.allStreamOffline();
98   - }, 5000);
  96 + if (!userSetting.isUsePushingAsStatus()) {
  97 + // 启动时设置所有推流通道离线,发起查询请求
  98 + redisCatchStorage.sendStreamPushRequestedMsgForStatus();
  99 + dynamicTask.startDelay(VideoManagerConstants.VM_MSG_GET_ALL_ONLINE_REQUESTED, ()->{
  100 + logger.info("[REDIS消息]未收到redis回复推流设备状态,执行推流设备离线");
  101 + // 五秒收不到请求就设置通道离线,然后通知上级离线
  102 + streamPushService.allStreamOffline();
  103 + }, 5000);
  104 + }
99 105 }
100 106  
101 107 }
... ...