From 39078225f1104eeaed21b24a024457b892fa7f7a Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期一, 26 四月 2021 18:38:57 +0800
Subject: [PATCH] 优化级联时的异常处理

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
index 91b6ecc..43be89d 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
@@ -93,6 +93,11 @@
 				GbStream gbStream = storager.queryStreamInParentPlatform(requesterId, channelId);
 				// 涓嶆槸閫氶亾鍙兘鏄洿鎾祦
 				if (channel != null || gbStream != null ) {
+					if (channel.getStatus() == 0) {
+						logger.info("閫氶亾绂荤嚎锛岃繑鍥�400");
+						responseAck(evt, Response.BAD_REQUEST, "channel [" + channel.getChannelId() + "] offline");
+						return;
+					}
 					responseAck(evt, Response.CALL_IS_BEING_FORWARDED); // 閫氶亾瀛樺湪锛屽彂181锛屽懠鍙浆鎺ヤ腑
 				}else {
 					logger.info("閫氶亾涓嶅瓨鍦紝杩斿洖404");
@@ -367,6 +372,12 @@
 		getServerTransaction(evt).sendResponse(response);
 	}
 
+	private void responseAck(RequestEvent evt, int statusCode, String msg) throws SipException, InvalidArgumentException, ParseException {
+		Response response = getMessageFactory().createResponse(statusCode, evt.getRequest());
+		response.setReasonPhrase(msg);
+		getServerTransaction(evt).sendResponse(response);
+	}
+
 	/**
 	 * 鍥炲甯dp鐨�200
 	 * @param evt

--
Gitblit v1.8.0