diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java index b219f3e0..d12f832c 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java @@ -2,22 +2,12 @@ package com.genersoft.iot.vmp.gb28181; import java.text.ParseException; import java.util.Properties; +import java.util.TooManyListenersException; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import javax.sip.DialogTerminatedEvent; -import javax.sip.IOExceptionEvent; -import javax.sip.ListeningPoint; -import javax.sip.PeerUnavailableException; -import javax.sip.RequestEvent; -import javax.sip.ResponseEvent; -import javax.sip.SipFactory; -import javax.sip.SipListener; -import javax.sip.SipProvider; -import javax.sip.SipStack; -import javax.sip.TimeoutEvent; -import javax.sip.TransactionTerminatedEvent; +import javax.sip.*; import javax.sip.message.Response; import org.slf4j.Logger; @@ -93,11 +83,17 @@ public class SipLayer implements SipListener { @Bean("tcpSipProvider") @DependsOn("sipStack") - private SipProvider startTcpListener() throws Exception { - ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(), "TCP"); - SipProvider tcpSipProvider = sipStack.createSipProvider(tcpListeningPoint); - tcpSipProvider.addSipListener(this); - logger.info("Sip Server TCP 启动成功 port {" + sipConfig.getSipPort() + "}"); + private SipProvider startTcpListener() { + ListeningPoint tcpListeningPoint = null; + SipProvider tcpSipProvider = null; + try { + tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(), "TCP"); + tcpSipProvider = sipStack.createSipProvider(tcpListeningPoint); + tcpSipProvider.addSipListener(this); + logger.info("Sip Server TCP 启动成功 port {" + sipConfig.getSipPort() + "}"); + } catch (TransportNotSupportedException | InvalidArgumentException | TooManyListenersException | ObjectInUseException e) { + logger.error(String.format("创建SIP服务失败: %s", e.getMessage())); + } return tcpSipProvider; } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java index d3344bfe..158bffb5 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java @@ -362,7 +362,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { private Element getRootElement(RequestEvent evt) throws DocumentException { Request request = evt.getRequest(); SAXReader reader = new SAXReader(); -// reader.setEncoding("GB2312"); + reader.setEncoding("gbk"); Document xml = reader.read(new ByteArrayInputStream(request.getRawContent())); return xml.getRootElement(); } diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java index 3cb6506e..775cb0f0 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.IOException; +import java.net.ConnectException; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -55,7 +56,10 @@ public class ZLMRESTfulUtils { responseJSON = JSON.parseObject(responseStr); } } - } catch (IOException e) { + } catch (ConnectException e) { + logger.error(String.format("连接ZLM失败: %s, %s", e.getCause().getMessage(), e.getMessage())); + logger.info("请检查media配置并确认ZLM已启动..."); + }catch (IOException e) { e.printStackTrace(); }