sql/update.sql
@@ -1,4 +1,4 @@ alter table wvp.media_server alter table media_server drop column streamNoneReaderDelayMS; alter table stream_proxy 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("来自设备的Invite请求非语音广播,已忽略,requesterId: {}/{}", requesterId, channelId); try { responseAck(serverTransaction, Response.FORBIDDEN); } catch (SipException | InvalidArgumentException | ParseException e) { logger.error("[命令发送失败] 来自设备的Invite请求非语音广播 FORBIDDEN: {}", e.getMessage()); } return; } Request request = serverTransaction.getRequest(); @@ -920,6 +924,7 @@ if (ssrcIndex > 0) { substring = contentString.substring(0, ssrcIndex); } try { SessionDescription sdp = SdpFactory.getInstance().createSessionDescription(substring); // 获取支持的格式 @@ -955,7 +960,11 @@ 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(); @@ -964,7 +973,11 @@ 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, @@ -972,7 +985,11 @@ mediaTransmissionTCP); if (sendRtpItem == null) { logger.warn("服务器端口资源不足"); try { responseAck(serverTransaction, Response.BUSY_HERE); } catch (SipException | InvalidArgumentException | ParseException e) { logger.error("[命令发送失败] invite 服务器端口资源不足: {}", e.getMessage()); } return; } sendRtpItem.setTcp(mediaTransmissionTCP); @@ -1001,6 +1018,9 @@ logger.warn("[语音通话], 未发现待推送的流,app={},stream={}", app, stream); playService.stopAudioBroadcast(device.getDeviceId(), audioBroadcastCatch.getChannelId()); } } catch (SdpException e) { logger.error("[SDP解析异常]", e); } } else { logger.warn("来自无效设备/平台的请求"); try { 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; 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() {