From a56d8c70d6dd8f6fedc98aa768c3a2182d54acb8 Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期二, 13 四月 2021 11:33:26 +0800
Subject: [PATCH] 优化编码信息信息页面
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 68 +++++++++++++++++++++++++++++++---
1 files changed, 62 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index abf9cf7..e186649 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -23,7 +23,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
@@ -47,8 +46,7 @@
public class SIPCommander implements ISIPCommander {
private final Logger logger = LoggerFactory.getLogger(SIPCommander.class);
-
-
+
@Autowired
private SipConfig sipConfig;
@@ -92,7 +90,9 @@
@Autowired
private SipSubscribe sipSubscribe;
-
+ public SipConfig getSipConfig() {
+ return sipConfig;
+ }
/**
* 浜戝彴鏂瑰悜鏀炬帶鍒讹紝浣跨敤閰嶇疆鏂囦欢涓殑榛樿闀滃ご绉诲姩閫熷害
@@ -340,7 +340,7 @@
@Override
public void playStreamCmd(Device device, String channelId, ZLMHttpHookSubscribe.Event event, SipSubscribe.Event errorEvent) {
try {
-
+ if (device == null) return;
String ssrc = streamSession.createPlaySsrc();
String streamId = null;
if (rtpEnable) {
@@ -623,11 +623,67 @@
*/
@Override
public boolean audioBroadcastCmd(Device device, String channelId) {
- // TODO Auto-generated method stub
+ // 鏀逛负鏂扮殑瀹炵幇
return false;
}
/**
+ * 璇煶骞挎挱
+ *
+ * @param device 瑙嗛璁惧
+ * @param channelId 棰勮閫氶亾
+ */
+ @Override
+ public boolean audioBroadcastCmd(Device device) {
+ try {
+ StringBuffer broadcastXml = new StringBuffer(200);
+ broadcastXml.append("<?xml version=\"1.0\" ?>\r\n");
+ broadcastXml.append("<Notify>\r\n");
+ broadcastXml.append("<CmdType>Broadcast</CmdType>\r\n");
+ broadcastXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
+ broadcastXml.append("<SourceID>" + sipConfig.getSipId() + "</SourceID>\r\n");
+ broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n");
+ broadcastXml.append("</Notify>\r\n");
+
+ String tm = Long.toString(System.currentTimeMillis());
+
+ CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
+ : udpSipProvider.getNewCallId();
+
+ Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), "z9hG4bK-ViaBcst-" + tm, "FromBcst" + tm, null, callIdHeader);
+ transmitRequest(device, request);
+ return true;
+ } catch (SipException | ParseException | InvalidArgumentException e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+ @Override
+ public void audioBroadcastCmd(Device device, SipSubscribe.Event errorEvent) {
+ try {
+ StringBuffer broadcastXml = new StringBuffer(200);
+ broadcastXml.append("<?xml version=\"1.0\" ?>\r\n");
+ broadcastXml.append("<Notify>\r\n");
+ broadcastXml.append("<CmdType>Broadcast</CmdType>\r\n");
+ broadcastXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
+ broadcastXml.append("<SourceID>" + sipConfig.getSipId() + "</SourceID>\r\n");
+ broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n");
+ broadcastXml.append("</Notify>\r\n");
+
+ String tm = Long.toString(System.currentTimeMillis());
+
+ CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
+ : udpSipProvider.getNewCallId();
+
+ Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), "z9hG4bK-ViaBcst-" + tm, "FromBcst" + tm, null, callIdHeader);
+ transmitRequest(device, request, errorEvent);
+ } catch (SipException | ParseException | InvalidArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ /**
* 闊宠棰戝綍鍍忔帶鍒�
*
* @param device 瑙嗛璁惧
--
Gitblit v1.8.0