From f6320c7dd3dfd25e98bb63f41d79a33af5009a93 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 17 十月 2022 17:02:16 +0800
Subject: [PATCH] 合并主线
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 162 ++++++++++++++++++++++++++++++-----------------------
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItemLite.java | 12 ----
sql/update.sql | 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java | 1
4 files changed, 92 insertions(+), 85 deletions(-)
diff --git a/sql/update.sql b/sql/update.sql
index e0d963b..c026df9 100644
--- a/sql/update.sql
+++ b/sql/update.sql
@@ -1,4 +1,4 @@
-alter table wvp.media_server
+alter table media_server
drop column streamNoneReaderDelayMS;
alter table stream_proxy
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 9e81b90..0bcbe1a 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
@@ -896,7 +896,11 @@
AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(requesterId, channelId);
if (audioBroadcastCatch == null) {
logger.warn("鏉ヨ嚜璁惧鐨処nvite璇锋眰闈炶闊冲箍鎾紝宸插拷鐣ワ紝requesterId锛� {}/{}", requesterId, channelId);
- responseAck(serverTransaction, Response.FORBIDDEN);
+ try {
+ responseAck(serverTransaction, Response.FORBIDDEN);
+ } catch (SipException | InvalidArgumentException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 鏉ヨ嚜璁惧鐨処nvite璇锋眰闈炶闊冲箍鎾� FORBIDDEN: {}", e.getMessage());
+ }
return;
}
Request request = serverTransaction.getRequest();
@@ -920,86 +924,102 @@
if (ssrcIndex > 0) {
substring = contentString.substring(0, ssrcIndex);
}
- SessionDescription sdp = SdpFactory.getInstance().createSessionDescription(substring);
+ try {
+ SessionDescription sdp = SdpFactory.getInstance().createSessionDescription(substring);
- // 鑾峰彇鏀寔鐨勬牸寮�
- Vector mediaDescriptions = sdp.getMediaDescriptions(true);
+ // 鑾峰彇鏀寔鐨勬牸寮�
+ Vector mediaDescriptions = sdp.getMediaDescriptions(true);
- // 鏌ョ湅鏄惁鏀寔PS 璐熻浇96
- int port = -1;
- boolean mediaTransmissionTCP = false;
- Boolean tcpActive = null;
- for (int i = 0; i < mediaDescriptions.size(); i++) {
- MediaDescription mediaDescription = (MediaDescription)mediaDescriptions.get(i);
- Media media = mediaDescription.getMedia();
+ // 鏌ョ湅鏄惁鏀寔PS 璐熻浇96
+ int port = -1;
+ boolean mediaTransmissionTCP = false;
+ Boolean tcpActive = null;
+ for (int i = 0; i < mediaDescriptions.size(); i++) {
+ MediaDescription mediaDescription = (MediaDescription)mediaDescriptions.get(i);
+ Media media = mediaDescription.getMedia();
- Vector mediaFormats = media.getMediaFormats(false);
- if (mediaFormats.contains("8")) {
- port = media.getMediaPort();
- String protocol = media.getProtocol();
- // 鍖哄垎TCP鍙戞祦杩樻槸udp锛� 褰撳墠榛樿udp
- if ("TCP/RTP/AVP".equals(protocol)) {
- String setup = mediaDescription.getAttribute("setup");
- if (setup != null) {
- mediaTransmissionTCP = true;
- if ("active".equals(setup)) {
- tcpActive = true;
- } else if ("passive".equals(setup)) {
- tcpActive = false;
+ Vector mediaFormats = media.getMediaFormats(false);
+ if (mediaFormats.contains("8")) {
+ port = media.getMediaPort();
+ String protocol = media.getProtocol();
+ // 鍖哄垎TCP鍙戞祦杩樻槸udp锛� 褰撳墠榛樿udp
+ if ("TCP/RTP/AVP".equals(protocol)) {
+ String setup = mediaDescription.getAttribute("setup");
+ if (setup != null) {
+ mediaTransmissionTCP = true;
+ if ("active".equals(setup)) {
+ tcpActive = true;
+ } else if ("passive".equals(setup)) {
+ tcpActive = false;
+ }
}
}
+ break;
}
- break;
}
- }
- if (port == -1) {
- logger.info("涓嶆敮鎸佺殑濯掍綋鏍煎紡锛岃繑鍥�415");
- // 鍥炲涓嶆敮鎸佺殑鏍煎紡
- responseAck(serverTransaction, Response.UNSUPPORTED_MEDIA_TYPE); // 涓嶆敮鎸佺殑鏍煎紡锛屽彂415
- return;
- }
- String addressStr = sdp.getOrigin().getAddress();
- logger.info("璁惧{}璇锋眰璇煶娴侊紝鍦板潃锛歿}:{}锛宻src锛歿}", requesterId, addressStr, port, ssrc);
+ if (port == -1) {
+ logger.info("涓嶆敮鎸佺殑濯掍綋鏍煎紡锛岃繑鍥�415");
+ // 鍥炲涓嶆敮鎸佺殑鏍煎紡
+ try {
+ responseAck(serverTransaction, Response.UNSUPPORTED_MEDIA_TYPE); // 涓嶆敮鎸佺殑鏍煎紡锛屽彂415
+ } catch (SipException | InvalidArgumentException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 invite 涓嶆敮鎸佺殑濯掍綋鏍煎紡: {}", e.getMessage());
+ }
+ return;
+ }
+ String addressStr = sdp.getOrigin().getAddress();
+ logger.info("璁惧{}璇锋眰璇煶娴侊紝鍦板潃锛歿}:{}锛宻src锛歿}", requesterId, addressStr, port, ssrc);
- MediaServerItem mediaServerItem = playService.getNewMediaServerItem(device);
- if (mediaServerItem == null) {
- logger.warn("鏈壘鍒板彲鐢ㄧ殑zlm");
- responseAck(serverTransaction, Response.BUSY_HERE);
- return;
- }
- SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId,
- device.getDeviceId(), audioBroadcastCatch.getChannelId(),
- mediaTransmissionTCP);
- if (sendRtpItem == null) {
- logger.warn("鏈嶅姟鍣ㄧ鍙h祫婧愪笉瓒�");
- responseAck(serverTransaction, Response.BUSY_HERE);
- return;
- }
- sendRtpItem.setTcp(mediaTransmissionTCP);
- if (tcpActive != null) {
- sendRtpItem.setTcpActive(tcpActive);
- }
- String app = "broadcast";
- String stream = device.getDeviceId() + "_" + audioBroadcastCatch.getChannelId();
+ MediaServerItem mediaServerItem = playService.getNewMediaServerItem(device);
+ if (mediaServerItem == null) {
+ logger.warn("鏈壘鍒板彲鐢ㄧ殑zlm");
+ try {
+ responseAck(serverTransaction, Response.BUSY_HERE);
+ } catch (SipException | InvalidArgumentException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 invite 鏈壘鍒板彲鐢ㄧ殑zlm: {}", e.getMessage());
+ }
+ return;
+ }
+ SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId,
+ device.getDeviceId(), audioBroadcastCatch.getChannelId(),
+ mediaTransmissionTCP);
+ if (sendRtpItem == null) {
+ logger.warn("鏈嶅姟鍣ㄧ鍙h祫婧愪笉瓒�");
+ try {
+ responseAck(serverTransaction, Response.BUSY_HERE);
+ } catch (SipException | InvalidArgumentException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 invite 鏈嶅姟鍣ㄧ鍙h祫婧愪笉瓒�: {}", e.getMessage());
+ }
+ return;
+ }
+ sendRtpItem.setTcp(mediaTransmissionTCP);
+ if (tcpActive != null) {
+ sendRtpItem.setTcpActive(tcpActive);
+ }
+ String app = "broadcast";
+ String stream = device.getDeviceId() + "_" + audioBroadcastCatch.getChannelId();
- CallIdHeader callIdHeader = (CallIdHeader) request.getHeader(CallIdHeader.NAME);
- sendRtpItem.setPlayType(InviteStreamType.PLAY);
- sendRtpItem.setCallId(callIdHeader.getCallId());
- sendRtpItem.setPlatformId(requesterId);
- sendRtpItem.setStatus(1);
- sendRtpItem.setApp(app);
- sendRtpItem.setStreamId(stream);
- sendRtpItem.setPt(8);
- sendRtpItem.setUsePs(false);
- sendRtpItem.setOnlyAudio(true);
- redisCatchStorage.updateSendRTPSever(sendRtpItem);
+ CallIdHeader callIdHeader = (CallIdHeader) request.getHeader(CallIdHeader.NAME);
+ sendRtpItem.setPlayType(InviteStreamType.PLAY);
+ sendRtpItem.setCallId(callIdHeader.getCallId());
+ sendRtpItem.setPlatformId(requesterId);
+ sendRtpItem.setStatus(1);
+ sendRtpItem.setApp(app);
+ sendRtpItem.setStreamId(stream);
+ sendRtpItem.setPt(8);
+ sendRtpItem.setUsePs(false);
+ sendRtpItem.setOnlyAudio(true);
+ redisCatchStorage.updateSendRTPSever(sendRtpItem);
- Boolean streamReady = zlmrtpServerFactory.isStreamReady(mediaServerItem, app, stream);
- if (streamReady) {
- sendOk(device, sendRtpItem, sdp, serverTransaction, mediaServerItem, mediaTransmissionTCP, ssrc);
- }else {
- logger.warn("[璇煶閫氳瘽]锛� 鏈彂鐜板緟鎺ㄩ�佺殑娴�,app={},stream={}", app, stream);
- playService.stopAudioBroadcast(device.getDeviceId(), audioBroadcastCatch.getChannelId());
+ Boolean streamReady = zlmrtpServerFactory.isStreamReady(mediaServerItem, app, stream);
+ if (streamReady) {
+ sendOk(device, sendRtpItem, sdp, serverTransaction, mediaServerItem, mediaTransmissionTCP, ssrc);
+ }else {
+ logger.warn("[璇煶閫氳瘽]锛� 鏈彂鐜板緟鎺ㄩ�佺殑娴�,app={},stream={}", app, stream);
+ playService.stopAudioBroadcast(device.getDeviceId(), audioBroadcastCatch.getChannelId());
+ }
+ } catch (SdpException e) {
+ logger.error("[SDP瑙f瀽寮傚父]", e);
}
} else {
logger.warn("鏉ヨ嚜鏃犳晥璁惧/骞冲彴鐨勮姹�");
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
index 930ddb5..64f80ee 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
@@ -11,7 +11,6 @@
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
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.utils.Coordtransform;
import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
import com.genersoft.iot.vmp.gb28181.utils.XmlUtil;
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItemLite.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItemLite.java
index de68e30..01ac5c4 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItemLite.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItemLite.java
@@ -38,8 +38,6 @@
private String secret;
- private int streamNoneReaderDelayMS;
-
private int hookAliveInterval;
private int recordAssistPort;
@@ -60,9 +58,7 @@
this.rtspPort = mediaServerItem.getRtspPort();
this.rtspSSLPort = mediaServerItem.getRtspSSLPort();
this.secret = mediaServerItem.getSecret();
- this.streamNoneReaderDelayMS = mediaServerItem.getStreamNoneReaderDelayMS();
this.hookAliveInterval = mediaServerItem.getHookAliveInterval();
- this.streamNoneReaderDelayMS = mediaServerItem.getStreamNoneReaderDelayMS();
this.recordAssistPort = mediaServerItem.getRecordAssistPort();
}
@@ -169,14 +165,6 @@
public void setSecret(String secret) {
this.secret = secret;
- }
-
- public int getStreamNoneReaderDelayMS() {
- return streamNoneReaderDelayMS;
- }
-
- public void setStreamNoneReaderDelayMS(int streamNoneReaderDelayMS) {
- this.streamNoneReaderDelayMS = streamNoneReaderDelayMS;
}
public int getHookAliveInterval() {
--
Gitblit v1.8.0