From 297f8965526b9438117c78b64eb6a0b3a518c70d Mon Sep 17 00:00:00 2001
From: 648540858 <456PANlinlin>
Date: 星期六, 20 十一月 2021 21:03:42 +0800
Subject: [PATCH] 兼容缺少y=的sdp

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

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
index 6984fab..1cb4af5 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -4,7 +4,8 @@
 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform;
-import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorAbstract;
+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.media.zlm.ZLMRTPServerFactory;
 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
 import com.genersoft.iot.vmp.service.IMediaServerService;
@@ -16,6 +17,7 @@
 import gov.nist.javax.sip.address.SipUri;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -31,14 +33,12 @@
 import java.text.ParseException;
 import java.util.Vector;
 
-/**    
- * @description:澶勭悊INVITE璇锋眰
- * @author: panll
- * @date:   2021骞�1鏈�14鏃�
+/**
+ * SIP鍛戒护绫诲瀷锛� INVITE璇锋眰
  */
 @SuppressWarnings("rawtypes")
 @Component
-public class InviteRequestProcessor extends SIPRequestProcessorAbstract {
+public class InviteRequestProcessor extends SIPRequestProcessorParent implements InitializingBean, ISIPRequestProcessor {
 
 	private final static Logger logger = LoggerFactory.getLogger(InviteRequestProcessor.class);
 
@@ -138,12 +138,21 @@
 				// 瑙f瀽sdp娑堟伅, 浣跨敤jainsip 鑷甫鐨剆dp瑙f瀽鏂瑰紡
 				String contentString = new String(request.getRawContent());
 
-				// jainSip涓嶆敮鎸亂=瀛楁锛� 绉婚櫎绉婚櫎浠ヨВ鏋愩��
+				// jainSip涓嶆敮鎸亂=瀛楁锛� 绉婚櫎浠ヨВ鏋愩��
 				int ssrcIndex = contentString.indexOf("y=");
-				//ssrc瑙勫畾闀垮害涓�10瀛楄妭锛屼笉鍙栦綑涓嬮暱搴︿互閬垮厤鍚庣画杩樻湁鈥渇=鈥濆瓧娈�
-				String ssrc = contentString.substring(ssrcIndex + 2, ssrcIndex + 12);
-				String substring = contentString.substring(0, contentString.indexOf("y="));
-				SessionDescription sdp = SdpFactory.getInstance().createSessionDescription(substring);
+				// 妫�鏌ユ槸鍚︽湁y瀛楁
+				String ssrcDefault = "0000000000";
+				String ssrc;
+				SessionDescription sdp;
+				if (ssrcIndex >= 0) {
+					//ssrc瑙勫畾闀垮害涓�10瀛楄妭锛屼笉鍙栦綑涓嬮暱搴︿互閬垮厤鍚庣画杩樻湁鈥渇=鈥濆瓧娈�
+					ssrc = contentString.substring(ssrcIndex + 2, ssrcIndex + 12);
+					String substring = contentString.substring(0, contentString.indexOf("y="));
+					sdp = SdpFactory.getInstance().createSessionDescription(substring);
+				}else {
+					ssrc = ssrcDefault;
+					sdp = SdpFactory.getInstance().createSessionDescription(contentString);
+				}
 
 				//  鑾峰彇鏀寔鐨勬牸寮�
 				Vector mediaDescriptions = sdp.getMediaDescriptions(true);

--
Gitblit v1.8.0