| | |
| | | |
| | | @Override |
| | | public void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element rootElement) { |
| | | logger.info("接收到DeviceInfo查询消息"); |
| | | logger.info("[DeviceInfo查询]消息"); |
| | | FromHeader fromHeader = (FromHeader) evt.getRequest().getHeader(FromHeader.NAME); |
| | | try { |
| | | // 回复200 OK |
| | |
| | | @Component |
| | | public class RegisterResponseProcessor extends SIPResponseProcessorAbstract { |
| | | |
| | | private Logger logger = LoggerFactory.getLogger(RegisterResponseProcessor.class); |
| | | private final Logger logger = LoggerFactory.getLogger(RegisterResponseProcessor.class); |
| | | private final String method = "REGISTER"; |
| | | |
| | | @Autowired |
| | |
| | | |
| | | ParentPlatformCatch parentPlatformCatch = redisCatchStorage.queryPlatformCatchInfo(platformGBId); |
| | | if (parentPlatformCatch == null) { |
| | | logger.warn(String.format("收到 %s 的注册/注销%S请求, 但是平台缓存信息未查询到!!!", platformGBId, response.getStatusCode())); |
| | | logger.warn(String.format("[收到注册/注销%S请求]平台:%s,但是平台缓存信息未查询到!!!", response.getStatusCode(),platformGBId)); |
| | | return; |
| | | } |
| | | String action = parentPlatformCatch.getParentPlatform().getExpires().equals("0") ? "注销" : "注册"; |
| | | logger.info(String.format("收到 %s %s的%S响应", platformGBId, action, response.getStatusCode() )); |
| | | logger.info(String.format("[%s %S响应]%s ", action, response.getStatusCode(), platformGBId )); |
| | | ParentPlatform parentPlatform = parentPlatformCatch.getParentPlatform(); |
| | | if (parentPlatform == null) { |
| | | logger.warn(String.format("收到 %s %s的%S请求, 但是平台信息未查询到!!!", platformGBId, action, response.getStatusCode())); |
| | |
| | | return result; |
| | | } |
| | | |
| | | public int createRTPServer(MediaServerItem mediaServerItem, String streamId, int ssrc) { |
| | | public int createRTPServer(MediaServerItem mediaServerItem, String streamId, int ssrc, Integer port) { |
| | | int result = -1; |
| | | // 查询此rtp server 是否已经存在 |
| | | JSONObject rtpInfo = zlmresTfulUtils.getRtpInfo(mediaServerItem, streamId); |
| | |
| | | param.put("enable_tcp", 1); |
| | | param.put("stream_id", streamId); |
| | | // 推流端口设置0则使用随机端口 |
| | | if (port == null) { |
| | | param.put("port", 0); |
| | | }else { |
| | | param.put("port", port); |
| | | } |
| | | param.put("ssrc", ssrc); |
| | | JSONObject openRtpServerResultJson = zlmresTfulUtils.openRtpServer(mediaServerItem, param); |
| | | |
| | |
| | | |
| | | SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String ssrc, boolean ssrcCheck, boolean isPlayback); |
| | | |
| | | SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String ssrc, boolean ssrcCheck, boolean isPlayback, Integer port); |
| | | |
| | | void closeRTPServer(String deviceId, String channelId, String ssrc); |
| | | |
| | | void clearRTPServer(MediaServerItem mediaServerItem); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String presetSsrc, boolean ssrcCheck, boolean isPlayback) { |
| | | public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String presetSsrc, boolean ssrcCheck, boolean isPlayback, Integer port) { |
| | | if (mediaServerItem == null || mediaServerItem.getId() == null) { |
| | | return null; |
| | | } |
| | |
| | | } |
| | | int rtpServerPort = mediaServerItem.getRtpProxyPort(); |
| | | if (mediaServerItem.isRtpEnable()) { |
| | | rtpServerPort = zlmrtpServerFactory.createRTPServer(mediaServerItem, streamId, ssrcCheck?Integer.parseInt(ssrc):0); |
| | | rtpServerPort = zlmrtpServerFactory.createRTPServer(mediaServerItem, streamId, ssrcCheck?Integer.parseInt(ssrc):0, port); |
| | | } |
| | | redisUtil.set(key, mediaServerItem); |
| | | return new SSRCInfo(rtpServerPort, ssrc, streamId); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String ssrc, boolean ssrcCheck, boolean isPlayback) { |
| | | return openRTPServer(mediaServerItem, streamId, ssrc, ssrcCheck, isPlayback, null); |
| | | } |
| | | |
| | | @Override |
| | | public void closeRTPServer(String deviceId, String channelId, String stream) { |
| | | String mediaServerId = streamSession.getMediaServerId(deviceId, channelId, stream); |
| | | String ssrc = streamSession.getSSRC(deviceId, channelId, stream); |
| | |
| | | // 关闭rtp server |
| | | mediaServerService.closeRTPServer(device.getDeviceId(), channelId, finalSsrcInfo.getStream()); |
| | | // 重新开启ssrc server |
| | | mediaServerService.openRTPServer(mediaServerItem, finalSsrcInfo.getStream(), ssrcInResponse, device.isSsrcCheck(), false); |
| | | mediaServerService.openRTPServer(mediaServerItem, finalSsrcInfo.getStream(), ssrcInResponse, device.isSsrcCheck(), false, finalSsrcInfo.getPort()); |
| | | |
| | | } |
| | | } |