Commit 5c5699ae11ef02a675f7f9d81783b4ad02f312ea
1 parent
e3d7be9d
redis优化
Showing
13 changed files
with
206 additions
and
229 deletions
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 | } |