Commit 5c5699ae11ef02a675f7f9d81783b4ad02f312ea

Authored by 648540858
1 parent e3d7be9d

redis优化

src/main/java/com/genersoft/iot/vmp/conf/redis/RedisTemplateConfig.java
1 package com.genersoft.iot.vmp.conf.redis; 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 import org.springframework.context.annotation.Bean; 4 import org.springframework.context.annotation.Bean;
5 import org.springframework.context.annotation.Configuration; 5 import org.springframework.context.annotation.Configuration;
6 import org.springframework.data.redis.connection.RedisConnectionFactory; 6 import org.springframework.data.redis.connection.RedisConnectionFactory;
@@ -14,7 +14,7 @@ public class RedisTemplateConfig { @@ -14,7 +14,7 @@ public class RedisTemplateConfig {
14 public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { 14 public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
15 RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>(); 15 RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
16 // 使用fastJson序列化 16 // 使用fastJson序列化
17 - FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class); 17 + GenericFastJsonRedisSerializer fastJsonRedisSerializer = new GenericFastJsonRedisSerializer();
18 // value值的序列化采用fastJsonRedisSerializer 18 // value值的序列化采用fastJsonRedisSerializer
19 redisTemplate.setValueSerializer(fastJsonRedisSerializer); 19 redisTemplate.setValueSerializer(fastJsonRedisSerializer);
20 redisTemplate.setHashValueSerializer(fastJsonRedisSerializer); 20 redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
@@ -36,8 +36,6 @@ public class SipLayer implements CommandLineRunner { @@ -36,8 +36,6 @@ public class SipLayer implements CommandLineRunner {
36 private final Map<String, SipProviderImpl> tcpSipProviderMap = new ConcurrentHashMap<>(); 36 private final Map<String, SipProviderImpl> tcpSipProviderMap = new ConcurrentHashMap<>();
37 private final Map<String, SipProviderImpl> udpSipProviderMap = new ConcurrentHashMap<>(); 37 private final Map<String, SipProviderImpl> udpSipProviderMap = new ConcurrentHashMap<>();
38 38
39 - private SipFactory sipFactory;  
40 -  
41 @Override 39 @Override
42 public void run(String... args) { 40 public void run(String... args) {
43 List<String> monitorIps = new ArrayList<>(); 41 List<String> monitorIps = new ArrayList<>();
@@ -50,8 +48,7 @@ public class SipLayer implements CommandLineRunner { @@ -50,8 +48,7 @@ public class SipLayer implements CommandLineRunner {
50 monitorIps.add(sipConfig.getIp()); 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 if (monitorIps.size() > 0) { 52 if (monitorIps.size() > 0) {
56 for (String monitorIp : monitorIps) { 53 for (String monitorIp : monitorIps) {
57 addListeningPoint(monitorIp, sipConfig.getPort()); 54 addListeningPoint(monitorIp, sipConfig.getPort());
@@ -65,7 +62,7 @@ public class SipLayer implements CommandLineRunner { @@ -65,7 +62,7 @@ public class SipLayer implements CommandLineRunner {
65 private void addListeningPoint(String monitorIp, int port){ 62 private void addListeningPoint(String monitorIp, int port){
66 SipStackImpl sipStack; 63 SipStackImpl sipStack;
67 try { 64 try {
68 - sipStack = (SipStackImpl)sipFactory.createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog())); 65 + sipStack = (SipStackImpl)SipFactory.getInstance().createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog()));
69 } catch (PeerUnavailableException e) { 66 } catch (PeerUnavailableException e) {
70 logger.error("[Sip Server] SIP服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp); 67 logger.error("[Sip Server] SIP服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp);
71 return; 68 return;
@@ -106,10 +103,6 @@ public class SipLayer implements CommandLineRunner { @@ -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 public SipProviderImpl getUdpSipProvider(String ip) { 106 public SipProviderImpl getUdpSipProvider(String ip) {
114 if (ObjectUtils.isEmpty(ip)) { 107 if (ObjectUtils.isEmpty(ip)) {
115 return null; 108 return null;
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
@@ -57,7 +57,7 @@ public class SIPSender { @@ -57,7 +57,7 @@ public class SIPSender {
57 } 57 }
58 if (message.getHeader(UserAgentHeader.NAME) == null) { 58 if (message.getHeader(UserAgentHeader.NAME) == null) {
59 try { 59 try {
60 - message.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); 60 + message.addHeader(SipUtils.createUserAgentHeader(gitUtil));
61 } catch (ParseException e) { 61 } catch (ParseException e) {
62 logger.error("添加UserAgentHeader失败", e); 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,6 +16,7 @@ import org.springframework.util.DigestUtils;
16 16
17 import javax.sip.InvalidArgumentException; 17 import javax.sip.InvalidArgumentException;
18 import javax.sip.PeerUnavailableException; 18 import javax.sip.PeerUnavailableException;
  19 +import javax.sip.SipFactory;
19 import javax.sip.address.Address; 20 import javax.sip.address.Address;
20 import javax.sip.address.SipURI; 21 import javax.sip.address.SipURI;
21 import javax.sip.header.*; 22 import javax.sip.header.*;
@@ -49,39 +50,39 @@ public class SIPRequestHeaderPlarformProvider { @@ -49,39 +50,39 @@ public class SIPRequestHeaderPlarformProvider {
49 Request request = null; 50 Request request = null;
50 String sipAddress = parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort(); 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 parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); 54 parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort());
54 //via 55 //via
55 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 parentPlatform.getServerPort(), parentPlatform.getTransport(), SipUtils.getNewViaTag()); 58 parentPlatform.getServerPort(), parentPlatform.getTransport(), SipUtils.getNewViaTag());
58 viaHeader.setRPort(); 59 viaHeader.setRPort();
59 viaHeaders.add(viaHeader); 60 viaHeaders.add(viaHeader);
60 //from 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 //to 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 //Forwards 70 //Forwards
70 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 71 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
71 72
72 //ceq 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 cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); 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 .createSipURI(parentPlatform.getDeviceGBId(), sipAddress)); 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 request.addHeader(expiresHeader); 83 request.addHeader(expiresHeader);
83 84
84 - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); 85 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
85 86
86 return request; 87 return request;
87 } 88 }
@@ -91,9 +92,9 @@ public class SIPRequestHeaderPlarformProvider { @@ -91,9 +92,9 @@ public class SIPRequestHeaderPlarformProvider {
91 92
92 93
93 Request registerRequest = createRegisterRequest(parentPlatform, redisCatchStorage.getCSEQ(), fromTag, toTag, callIdHeader, expires); 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 if (www == null) { 96 if (www == null) {
96 - AuthorizationHeader authorizationHeader = sipLayer.getSipFactory().createHeaderFactory().createAuthorizationHeader("Digest"); 97 + AuthorizationHeader authorizationHeader = SipFactory.getInstance().createHeaderFactory().createAuthorizationHeader("Digest");
97 String username = parentPlatform.getUsername(); 98 String username = parentPlatform.getUsername();
98 if ( username == null || username == "" ) 99 if ( username == null || username == "" )
99 { 100 {
@@ -146,7 +147,7 @@ public class SIPRequestHeaderPlarformProvider { @@ -146,7 +147,7 @@ public class SIPRequestHeaderPlarformProvider {
146 147
147 String RESPONSE = DigestUtils.md5DigestAsHex(reStr.toString().getBytes()); 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 authorizationHeader.setUsername(parentPlatform.getDeviceGBId()); 151 authorizationHeader.setUsername(parentPlatform.getDeviceGBId());
151 authorizationHeader.setRealm(realm); 152 authorizationHeader.setRealm(realm);
152 authorizationHeader.setNonce(nonce); 153 authorizationHeader.setNonce(nonce);
@@ -164,7 +165,7 @@ public class SIPRequestHeaderPlarformProvider { @@ -164,7 +165,7 @@ public class SIPRequestHeaderPlarformProvider {
164 } 165 }
165 166
166 public Request createMessageRequest(ParentPlatform parentPlatform, String content, SendRtpItem sendRtpItem) throws PeerUnavailableException, ParseException, InvalidArgumentException { 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 return createMessageRequest(parentPlatform, content, sendRtpItem.getToTag(), SipUtils.getNewViaTag(), sendRtpItem.getFromTag(), callIdHeader); 169 return createMessageRequest(parentPlatform, content, sendRtpItem.getToTag(), SipUtils.getNewViaTag(), sendRtpItem.getFromTag(), callIdHeader);
169 } 170 }
170 171
@@ -177,36 +178,36 @@ public class SIPRequestHeaderPlarformProvider { @@ -177,36 +178,36 @@ public class SIPRequestHeaderPlarformProvider {
177 Request request = null; 178 Request request = null;
178 String serverAddress = parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort(); 179 String serverAddress = parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort();
179 // sipuri 180 // sipuri
180 - SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress); 181 + SipURI requestURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), serverAddress);
181 // via 182 // via
182 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 parentPlatform.getTransport(), viaTag); 185 parentPlatform.getTransport(), viaTag);
185 viaHeader.setRPort(); 186 viaHeader.setRPort();
186 viaHeaders.add(viaHeader); 187 viaHeaders.add(viaHeader);
187 // from 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 // to 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 // Forwards 198 // Forwards
198 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 199 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
199 // ceq 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 messageFactory.setDefaultContentEncodingCharset(parentPlatform.getCharacterSet()); 204 messageFactory.setDefaultContentEncodingCharset(parentPlatform.getCharacterSet());
204 request = messageFactory.createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader, 205 request = messageFactory.createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader,
205 toHeader, viaHeaders, maxForwards); 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 request.setContent(content, contentTypeHeader); 211 request.setContent(content, contentTypeHeader);
211 return request; 212 return request;
212 } 213 }
@@ -214,54 +215,54 @@ public class SIPRequestHeaderPlarformProvider { @@ -214,54 +215,54 @@ public class SIPRequestHeaderPlarformProvider {
214 public SIPRequest createNotifyRequest(ParentPlatform parentPlatform, String content, SubscribeInfo subscribeInfo) throws PeerUnavailableException, ParseException, InvalidArgumentException { 215 public SIPRequest createNotifyRequest(ParentPlatform parentPlatform, String content, SubscribeInfo subscribeInfo) throws PeerUnavailableException, ParseException, InvalidArgumentException {
215 SIPRequest request = null; 216 SIPRequest request = null;
216 // sipuri 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 // via 219 // via
219 ArrayList<ViaHeader> viaHeaders = new ArrayList<>(); 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 parentPlatform.getTransport(), SipUtils.getNewViaTag()); 222 parentPlatform.getTransport(), SipUtils.getNewViaTag());
222 viaHeader.setRPort(); 223 viaHeader.setRPort();
223 viaHeaders.add(viaHeader); 224 viaHeaders.add(viaHeader);
224 // from 225 // from
225 - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), 226 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(),
226 parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort()); 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 // to 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 // Forwards 235 // Forwards
235 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 236 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
236 // ceq 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 messageFactory.setDefaultContentEncodingCharset("gb2312"); 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 request = (SIPRequest) messageFactory.createRequest(requestURI, Request.NOTIFY, callIdHeader, cSeqHeader, fromHeader, 245 request = (SIPRequest) messageFactory.createRequest(requestURI, Request.NOTIFY, callIdHeader, cSeqHeader, fromHeader,
245 toHeader, viaHeaders, maxForwards); 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 if (subscribeInfo.getEventId() != null) { 251 if (subscribeInfo.getEventId() != null) {
251 event.setEventId(subscribeInfo.getEventId()); 252 event.setEventId(subscribeInfo.getEventId());
252 } 253 }
253 254
254 request.addHeader(event); 255 request.addHeader(event);
255 256
256 - SubscriptionStateHeader active = sipLayer.getSipFactory().createHeaderFactory().createSubscriptionStateHeader("active"); 257 + SubscriptionStateHeader active = SipFactory.getInstance().createHeaderFactory().createSubscriptionStateHeader("active");
257 request.setHeader(active); 258 request.setHeader(active);
258 259
259 String sipAddress = parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort(); 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 .createSipURI(parentPlatform.getDeviceGBId(), sipAddress)); 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 request.setContent(content, contentTypeHeader); 266 request.setContent(content, contentTypeHeader);
266 return request; 267 return request;
267 } 268 }
@@ -274,42 +275,42 @@ public class SIPRequestHeaderPlarformProvider { @@ -274,42 +275,42 @@ public class SIPRequestHeaderPlarformProvider {
274 275
275 SIPRequest request = null; 276 SIPRequest request = null;
276 // sipuri 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 // via 279 // via
279 ArrayList<ViaHeader> viaHeaders = new ArrayList<>(); 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 platform.getTransport(), SipUtils.getNewViaTag()); 282 platform.getTransport(), SipUtils.getNewViaTag());
282 viaHeader.setRPort(); 283 viaHeader.setRPort();
283 viaHeaders.add(viaHeader); 284 viaHeaders.add(viaHeader);
284 // from 285 // from
285 - SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(platform.getDeviceGBId(), 286 + SipURI fromSipURI = SipFactory.getInstance().createAddressFactory().createSipURI(platform.getDeviceGBId(),
286 platform.getDeviceIp() + ":" + platform.getDevicePort()); 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 // to 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 // Forwards 295 // Forwards
295 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 296 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
296 // ceq 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 messageFactory.setDefaultContentEncodingCharset("gb2312"); 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 request = (SIPRequest) messageFactory.createRequest(requestURI, Request.BYE, callIdHeader, cSeqHeader, fromHeader, 305 request = (SIPRequest) messageFactory.createRequest(requestURI, Request.BYE, callIdHeader, cSeqHeader, fromHeader,
305 toHeader, viaHeaders, maxForwards); 306 toHeader, viaHeaders, maxForwards);
306 307
307 - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); 308 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
308 309
309 String sipAddress = platform.getDeviceIp() + ":" + platform.getDevicePort(); 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 .createSipURI(platform.getDeviceGBId(), sipAddress)); 312 .createSipURI(platform.getDeviceGBId(), sipAddress));
312 - request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); 313 + request.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
313 314
314 return request; 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,6 +16,7 @@ import org.springframework.stereotype.Component;
16 import javax.sip.InvalidArgumentException; 16 import javax.sip.InvalidArgumentException;
17 import javax.sip.PeerUnavailableException; 17 import javax.sip.PeerUnavailableException;
18 import javax.sip.SipException; 18 import javax.sip.SipException;
  19 +import javax.sip.SipFactory;
19 import javax.sip.address.Address; 20 import javax.sip.address.Address;
20 import javax.sip.address.SipURI; 21 import javax.sip.address.SipURI;
21 import javax.sip.header.*; 22 import javax.sip.header.*;
@@ -49,32 +50,32 @@ public class SIPRequestHeaderProvider { @@ -49,32 +50,32 @@ public class SIPRequestHeaderProvider {
49 public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { 50 public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException {
50 Request request = null; 51 Request request = null;
51 // sipuri 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 // via 54 // via
54 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 viaHeader.setRPort(); 57 viaHeader.setRPort();
57 viaHeaders.add(viaHeader); 58 viaHeaders.add(viaHeader);
58 // from 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 // to 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 // Forwards 68 // Forwards
68 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 69 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
69 // ceq 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 toHeader, viaHeaders, maxForwards); 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 request.setContent(content, contentTypeHeader); 79 request.setContent(content, contentTypeHeader);
79 return request; 80 return request;
80 } 81 }
@@ -82,39 +83,39 @@ public class SIPRequestHeaderProvider { @@ -82,39 +83,39 @@ public class SIPRequestHeaderProvider {
82 public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { 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 Request request = null; 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 //via 87 //via
87 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 viaHeader.setRPort(); 91 viaHeader.setRPort();
91 viaHeaders.add(viaHeader); 92 viaHeaders.add(viaHeader);
92 93
93 //from 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 //to 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 //Forwards 103 //Forwards
103 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 104 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
104 105
105 //ceq 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 // Subject 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 request.addHeader(subjectHeader); 117 request.addHeader(subjectHeader);
117 - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP"); 118 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
118 request.setContent(content, contentTypeHeader); 119 request.setContent(content, contentTypeHeader);
119 return request; 120 return request;
120 } 121 }
@@ -122,39 +123,39 @@ public class SIPRequestHeaderProvider { @@ -122,39 +123,39 @@ public class SIPRequestHeaderProvider {
122 public Request createPlaybackInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader, String ssrc) throws ParseException, InvalidArgumentException, PeerUnavailableException { 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 Request request = null; 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 // via 127 // via
127 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 viaHeader.setRPort(); 130 viaHeader.setRPort();
130 viaHeaders.add(viaHeader); 131 viaHeaders.add(viaHeader);
131 //from 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 //to 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 //Forwards 141 //Forwards
141 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 142 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
142 143
143 //ceq 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 // Subject 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 request.addHeader(subjectHeader); 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 request.setContent(content, contentTypeHeader); 159 request.setContent(content, contentTypeHeader);
159 return request; 160 return request;
160 } 161 }
@@ -162,34 +163,34 @@ public class SIPRequestHeaderProvider { @@ -162,34 +163,34 @@ public class SIPRequestHeaderProvider {
162 public Request createByteRequest(Device device, String channelId, SipTransactionInfo transactionInfo) throws ParseException, InvalidArgumentException, PeerUnavailableException { 163 public Request createByteRequest(Device device, String channelId, SipTransactionInfo transactionInfo) throws ParseException, InvalidArgumentException, PeerUnavailableException {
163 Request request = null; 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 // via 167 // via
167 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 viaHeaders.add(viaHeader); 170 viaHeaders.add(viaHeader);
170 //from 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 //to 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 //Forwards 180 //Forwards
180 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 181 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
181 182
182 //ceq 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 return request; 195 return request;
195 } 196 }
@@ -197,50 +198,50 @@ public class SIPRequestHeaderProvider { @@ -197,50 +198,50 @@ public class SIPRequestHeaderProvider {
197 public Request createSubscribeRequest(Device device, String content, SIPRequest requestOld, Integer expires, String event, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { 198 public Request createSubscribeRequest(Device device, String content, SIPRequest requestOld, Integer expires, String event, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException {
198 Request request = null; 199 Request request = null;
199 // sipuri 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 // via 202 // via
202 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 device.getTransport(), SipUtils.getNewViaTag()); 205 device.getTransport(), SipUtils.getNewViaTag());
205 viaHeader.setRPort(); 206 viaHeader.setRPort();
206 viaHeaders.add(viaHeader); 207 viaHeaders.add(viaHeader);
207 // from 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 // to 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 // Forwards 217 // Forwards
217 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 218 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
218 219
219 // ceq 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 toHeader, viaHeaders, maxForwards); 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 // Expires 230 // Expires
230 - ExpiresHeader expireHeader = sipLayer.getSipFactory().createHeaderFactory().createExpiresHeader(expires); 231 + ExpiresHeader expireHeader = SipFactory.getInstance().createHeaderFactory().createExpiresHeader(expires);
231 request.addHeader(expireHeader); 232 request.addHeader(expireHeader);
232 233
233 // Event 234 // Event
234 - EventHeader eventHeader = sipLayer.getSipFactory().createHeaderFactory().createEventHeader(event); 235 + EventHeader eventHeader = SipFactory.getInstance().createHeaderFactory().createEventHeader(event);
235 236
236 int random = (int) Math.floor(Math.random() * 10000); 237 int random = (int) Math.floor(Math.random() * 10000);
237 eventHeader.setEventId(random + ""); 238 eventHeader.setEventId(random + "");
238 request.addHeader(eventHeader); 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 request.setContent(content, contentTypeHeader); 242 request.setContent(content, contentTypeHeader);
242 243
243 - request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); 244 + request.addHeader(SipUtils.createUserAgentHeader(gitUtil));
244 245
245 return request; 246 return request;
246 } 247 }
@@ -252,37 +253,37 @@ public class SIPRequestHeaderProvider { @@ -252,37 +253,37 @@ public class SIPRequestHeaderProvider {
252 } 253 }
253 SIPRequest request = null; 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 // via 257 // via
257 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 viaHeaders.add(viaHeader); 260 viaHeaders.add(viaHeader);
260 //from 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 //to 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 //Forwards 270 //Forwards
270 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 271 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
271 272
272 //ceq 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 if (content != null) { 285 if (content != null) {
285 - ContentTypeHeader contentTypeHeader = sipLayer.getSipFactory().createHeaderFactory().createContentTypeHeader("Application", 286 + ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application",
286 "MANSRTSP"); 287 "MANSRTSP");
287 request.setContent(content, contentTypeHeader); 288 request.setContent(content, contentTypeHeader);
288 } 289 }
@@ -294,23 +295,23 @@ public class SIPRequestHeaderProvider { @@ -294,23 +295,23 @@ public class SIPRequestHeaderProvider {
294 295
295 // via 296 // via
296 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 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 viaHeaders.add(viaHeader); 299 viaHeaders.add(viaHeader);
299 300
300 //Forwards 301 //Forwards
301 - MaxForwardsHeader maxForwards = sipLayer.getSipFactory().createHeaderFactory().createMaxForwardsHeader(70); 302 + MaxForwardsHeader maxForwards = SipFactory.getInstance().createHeaderFactory().createMaxForwardsHeader(70);
302 303
303 //ceq 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 return request; 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,6 +33,7 @@ import org.springframework.util.ObjectUtils;
33 import javax.sip.InvalidArgumentException; 33 import javax.sip.InvalidArgumentException;
34 import javax.sip.ResponseEvent; 34 import javax.sip.ResponseEvent;
35 import javax.sip.SipException; 35 import javax.sip.SipException;
  36 +import javax.sip.SipFactory;
36 import javax.sip.header.CallIdHeader; 37 import javax.sip.header.CallIdHeader;
37 import javax.sip.message.Request; 38 import javax.sip.message.Request;
38 import java.text.ParseException; 39 import java.text.ParseException;
@@ -1192,7 +1193,7 @@ public class SIPCommander implements ISIPCommander { @@ -1192,7 +1193,7 @@ public class SIPCommander implements ISIPCommander {
1192 CallIdHeader callIdHeader; 1193 CallIdHeader callIdHeader;
1193 1194
1194 if (requestOld != null) { 1195 if (requestOld != null) {
1195 - callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId()); 1196 + callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId());
1196 } else { 1197 } else {
1197 callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()); 1198 callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport());
1198 } 1199 }
@@ -1267,7 +1268,7 @@ public class SIPCommander implements ISIPCommander { @@ -1267,7 +1268,7 @@ public class SIPCommander implements ISIPCommander {
1267 CallIdHeader callIdHeader; 1268 CallIdHeader callIdHeader;
1268 1269
1269 if (requestOld != null) { 1270 if (requestOld != null) {
1270 - callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId()); 1271 + callIdHeader = SipFactory.getInstance().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId());
1271 } else { 1272 } else {
1272 callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()); 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,6 +29,7 @@ import org.springframework.util.ObjectUtils;
29 29
30 import javax.sip.InvalidArgumentException; 30 import javax.sip.InvalidArgumentException;
31 import javax.sip.SipException; 31 import javax.sip.SipException;
  32 +import javax.sip.SipFactory;
32 import javax.sip.header.CallIdHeader; 33 import javax.sip.header.CallIdHeader;
33 import javax.sip.header.WWWAuthenticateHeader; 34 import javax.sip.header.WWWAuthenticateHeader;
34 import javax.sip.message.Request; 35 import javax.sip.message.Request;
@@ -497,7 +498,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -497,7 +498,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
497 private void sendNotify(ParentPlatform parentPlatform, String catalogXmlContent, 498 private void sendNotify(ParentPlatform parentPlatform, String catalogXmlContent,
498 SubscribeInfo subscribeInfo, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent ) 499 SubscribeInfo subscribeInfo, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent )
499 throws SipException, ParseException, InvalidArgumentException { 500 throws SipException, ParseException, InvalidArgumentException {
500 - MessageFactoryImpl messageFactory = (MessageFactoryImpl) sipLayer.getSipFactory().createMessageFactory(); 501 + MessageFactoryImpl messageFactory = (MessageFactoryImpl) SipFactory.getInstance().createMessageFactory();
501 String characterSet = parentPlatform.getCharacterSet(); 502 String characterSet = parentPlatform.getCharacterSet();
502 // 设置编码, 防止中文乱码 503 // 设置编码, 防止中文乱码
503 messageFactory.setDefaultContentEncodingCharset(characterSet); 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,6 +96,7 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements
96 logger.error("未处理的异常 ", e); 96 logger.error("未处理的异常 ", e);
97 } 97 }
98 boolean runed = !taskQueue.isEmpty(); 98 boolean runed = !taskQueue.isEmpty();
  99 + logger.info("[notify] 待处理消息数量: {}", taskQueue.size());
99 taskQueue.offer(new HandlerCatchData(evt, null, null)); 100 taskQueue.offer(new HandlerCatchData(evt, null, null));
100 if (!runed) { 101 if (!runed) {
101 taskExecutor.execute(()-> { 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,19 +82,6 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen
82 RequestEventExt evtExt = (RequestEventExt) evt; 82 RequestEventExt evtExt = (RequestEventExt) evt;
83 String requestAddress = evtExt.getRemoteIpAddress() + ":" + evtExt.getRemotePort(); 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 SIPRequest request = (SIPRequest)evt.getRequest(); 85 SIPRequest request = (SIPRequest)evt.getRequest();
99 Response response = null; 86 Response response = null;
100 boolean passwordCorrect = false; 87 boolean passwordCorrect = false;
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/InviteResponseProcessor.java
1 package com.genersoft.iot.vmp.gb28181.transmit.event.response.impl; 1 package com.genersoft.iot.vmp.gb28181.transmit.event.response.impl;
2 2
3 -import com.genersoft.iot.vmp.conf.SipConfig;  
4 import com.genersoft.iot.vmp.gb28181.SipLayer; 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 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; 4 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
9 import com.genersoft.iot.vmp.gb28181.transmit.SIPSender; 5 import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
10 -import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;  
11 import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderProvider; 6 import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderProvider;
12 import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract; 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 import gov.nist.javax.sip.ResponseEventExt; 8 import gov.nist.javax.sip.ResponseEventExt;
17 -import gov.nist.javax.sip.SipProviderImpl;  
18 import gov.nist.javax.sip.message.SIPResponse; 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 import org.slf4j.Logger; 10 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory; 11 import org.slf4j.LoggerFactory;
25 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
26 -import org.springframework.beans.factory.annotation.Qualifier;  
27 import org.springframework.stereotype.Component; 13 import org.springframework.stereotype.Component;
28 14
29 import javax.sdp.SdpFactory; 15 import javax.sdp.SdpFactory;
30 import javax.sdp.SdpParseException; 16 import javax.sdp.SdpParseException;
31 import javax.sdp.SessionDescription; 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 import javax.sip.address.SipURI; 22 import javax.sip.address.SipURI;
35 -import javax.sip.header.CSeqHeader;  
36 -import javax.sip.header.UserAgentHeader;  
37 import javax.sip.message.Request; 23 import javax.sip.message.Request;
38 import javax.sip.message.Response; 24 import javax.sip.message.Response;
39 import java.text.ParseException; 25 import java.text.ParseException;
@@ -105,7 +91,7 @@ public class InviteResponseProcessor extends SIPResponseProcessorAbstract { @@ -105,7 +91,7 @@ public class InviteResponseProcessor extends SIPResponseProcessorAbstract {
105 sdp = SdpFactory.getInstance().createSessionDescription(contentString); 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 Request reqAck = headerProvider.createAckRequest(response.getLocalAddress().getHostAddress(), requestUri, response); 95 Request reqAck = headerProvider.createAckRequest(response.getLocalAddress().getHostAddress(), requestUri, response);
110 96
111 logger.info("[回复ack] {}-> {}:{} ", sdp.getOrigin().getUsername(), event.getRemoteIpAddress(), event.getRemotePort()); 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,7 +54,7 @@ public class SipUtils {
54 return "z9hG4bK" + System.currentTimeMillis(); 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 List<String> agentParam = new ArrayList<>(); 58 List<String> agentParam = new ArrayList<>();
59 agentParam.add("WVP-Pro "); 59 agentParam.add("WVP-Pro ");
60 if (gitUtil != null ) { 60 if (gitUtil != null ) {
@@ -66,7 +66,7 @@ public class SipUtils { @@ -66,7 +66,7 @@ public class SipUtils {
66 agentParam.add(gitUtil.getCommitTime()); 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 public static String getNewFromTag(){ 72 public static String getNewFromTag(){
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -395,7 +395,7 @@ public class ZLMHttpHookListener { @@ -395,7 +395,7 @@ public class ZLMHttpHookListener {
395 List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByStream(param.getStream()); 395 List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByStream(param.getStream());
396 if (sendRtpItems.size() > 0) { 396 if (sendRtpItems.size() > 0) {
397 for (SendRtpItem sendRtpItem : sendRtpItems) { 397 for (SendRtpItem sendRtpItem : sendRtpItems) {
398 - if (sendRtpItem.getApp().equals(param.getApp())) { 398 + if (sendRtpItem != null && sendRtpItem.getApp().equals(param.getApp())) {
399 String platformId = sendRtpItem.getPlatformId(); 399 String platformId = sendRtpItem.getPlatformId();
400 ParentPlatform platform = storager.queryParentPlatByServerGBId(platformId); 400 ParentPlatform platform = storager.queryParentPlatByServerGBId(platformId);
401 Device device = deviceService.getDevice(platformId); 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,6 +3,7 @@ package com.genersoft.iot.vmp.service.redisMsg;
3 import com.alibaba.fastjson2.JSON; 3 import com.alibaba.fastjson2.JSON;
4 import com.genersoft.iot.vmp.common.VideoManagerConstants; 4 import com.genersoft.iot.vmp.common.VideoManagerConstants;
5 import com.genersoft.iot.vmp.conf.DynamicTask; 5 import com.genersoft.iot.vmp.conf.DynamicTask;
  6 +import com.genersoft.iot.vmp.conf.UserSetting;
6 import com.genersoft.iot.vmp.service.IStreamPushService; 7 import com.genersoft.iot.vmp.service.IStreamPushService;
7 import com.genersoft.iot.vmp.service.bean.PushStreamStatusChangeFromRedisDto; 8 import com.genersoft.iot.vmp.service.bean.PushStreamStatusChangeFromRedisDto;
8 import com.genersoft.iot.vmp.storager.IRedisCatchStorage; 9 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
@@ -38,6 +39,9 @@ public class RedisPushStreamStatusMsgListener implements MessageListener, Applic @@ -38,6 +39,9 @@ public class RedisPushStreamStatusMsgListener implements MessageListener, Applic
38 @Autowired 39 @Autowired
39 private DynamicTask dynamicTask; 40 private DynamicTask dynamicTask;
40 41
  42 + @Autowired
  43 + private UserSetting userSetting;
  44 +
41 45
42 46
43 private ConcurrentLinkedQueue<Message> taskQueue = new ConcurrentLinkedQueue<>(); 47 private ConcurrentLinkedQueue<Message> taskQueue = new ConcurrentLinkedQueue<>();
@@ -89,13 +93,15 @@ public class RedisPushStreamStatusMsgListener implements MessageListener, Applic @@ -89,13 +93,15 @@ public class RedisPushStreamStatusMsgListener implements MessageListener, Applic
89 93
90 @Override 94 @Override
91 public void run(ApplicationArguments args) throws Exception { 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 }