From 80d2edeef25f752e0a80a6cff99e38f61c2d2cb2 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 18 十月 2022 13:07:38 +0800 Subject: [PATCH] 优化sip消息构建,去除ServerTransaction的使用 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 34 +++++++++------------------------- 1 files changed, 9 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java index 8bab8f5..99aabcf 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.WvpSipDate; import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; +import com.genersoft.iot.vmp.gb28181.transmit.SIPSender; import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; import com.genersoft.iot.vmp.gb28181.auth.DigestServerAuthenticationHelper; @@ -22,9 +23,7 @@ import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; -import javax.sip.InvalidArgumentException; import javax.sip.RequestEvent; -import javax.sip.ServerTransaction; import javax.sip.SipException; import javax.sip.header.*; import javax.sip.message.Request; @@ -52,6 +51,9 @@ @Autowired private IDeviceService deviceService; + + @Autowired + private SIPSender sipSender; @Override public void afterPropertiesSet() throws Exception { @@ -86,7 +88,7 @@ logger.info("[娉ㄥ唽璇锋眰] 鏈惡甯︽巿鏉冨ご 鍥炲401: {}", requestAddress); response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request); new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain()); - sendResponse(evt, response); + sipSender.transmitRequest(response); return; } @@ -99,7 +101,7 @@ response = getMessageFactory().createResponse(Response.FORBIDDEN, request); response.setReasonPhrase("wrong password"); logger.info("[娉ㄥ唽璇锋眰] 瀵嗙爜/SIP鏈嶅姟鍣↖D閿欒, 鍥炲403: {}", requestAddress); - sendResponse(evt, response); + sipSender.transmitRequest(response); return; } @@ -116,11 +118,7 @@ if (expiresHeader == null) { response = getMessageFactory().createResponse(Response.BAD_REQUEST, request); - ServerTransaction serverTransaction = getServerTransaction(evt); - serverTransaction.sendResponse(response); - if (serverTransaction.getDialog() != null) { - serverTransaction.getDialog().delete(); - } + sipSender.transmitRequest(response); return; } // 娣诲姞Contact澶� @@ -162,7 +160,7 @@ device.setTransport("TCP".equalsIgnoreCase(transport) ? "TCP" : "UDP"); } - sendResponse(evt, response); + sipSender.transmitRequest(response); // 娉ㄥ唽鎴愬姛 // 淇濆瓨鍒皉edis if (registerFlag) { @@ -173,22 +171,8 @@ logger.info("[娉ㄩ攢鎴愬姛] deviceId: {}->{}" ,deviceId, requestAddress); deviceService.offline(deviceId); } - } catch (SipException | InvalidArgumentException | NoSuchAlgorithmException | ParseException e) { + } catch (SipException | NoSuchAlgorithmException | ParseException e) { e.printStackTrace(); } - } - - private void sendResponse(RequestEvent evt, Response response) throws InvalidArgumentException, SipException { - ServerTransaction serverTransaction = getServerTransaction(evt); - if (serverTransaction == null) { - logger.warn("[鍥炲澶辫触]锛歿}", response); - return; - } - serverTransaction.sendResponse(response); - if (serverTransaction.getDialog() != null) { - serverTransaction.getDialog().delete(); - } - } - } -- Gitblit v1.8.0