| | |
| | | import javax.servlet.http.HttpServletRequest;
|
| | | import javax.sip.InvalidArgumentException;
|
| | | import javax.sip.SipException;
|
| | | import java.net.MalformedURLException;
|
| | | import java.net.URL;
|
| | | import java.text.ParseException;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | | import java.util.UUID;
|
| | |
| | | streamAuthorityInfo.setOriginTypeStr(param.getOriginTypeStr());
|
| | | }
|
| | | redisCatchStorage.updateStreamAuthorityInfo(param.getApp(), param.getStream(), streamAuthorityInfo);
|
| | |
|
| | | if (!"broadcast".equals(param.getApp()) && !"talk".equals(param.getApp())) {
|
| | | String paramsStr = param.getParams();
|
| | | if (paramsStr == null) {
|
| | | // 兼容arm zlm 无法获取到Params的问题
|
| | | URL url = null;
|
| | | try {
|
| | | url = new URL("http" + param.getOriginUrl().substring(4));
|
| | | } catch (MalformedURLException ignored) {}
|
| | | if (url != null) {
|
| | | paramsStr = url.getQuery();
|
| | | }
|
| | | }
|
| | | if (paramsStr != null) {
|
| | | Map<String, String> params = MediaServerUtils.urlParamToMap(paramsStr);
|
| | | param.setParamMap(params);
|
| | | }else {
|
| | | param.setParamMap(new HashMap<>());
|
| | | logger.warn("获取推流的params信息失败");
|
| | | }
|
| | |
|
| | | StreamInfo streamInfoByAppAndStream = mediaService.getStreamInfoByAppAndStream(mediaInfo,
|
| | | param.getApp(), param.getStream(), tracks, param.getParamMap().get("callId"));
|
| | | param.setStreamInfo(new StreamContent(streamInfoByAppAndStream));
|
| | |
|
| | | param.setSeverId(userSetting.getServerId());
|
| | | streamPushService.updatePush(param);
|
| | | // 冗余数据,自己系统中自用
|
| | | redisCatchStorage.addPushListItem(param.getApp(), param.getStream(), param);
|
| | | }
|
| | | }
|
| | | }else {
|
| | | redisCatchStorage.removePushListItem(param.getApp(), param.getStream(), param.getMediaServerId());
|
| | | }
|
| | | // TODO 修改为第一个为准 后续不再处理
|
| | | if ("rtsp".equals(param.getSchema())) {
|
| | | logger.info("流变化:注册->{}, app->{}, stream->{}", param.isRegist(), param.getApp(), param.getStream());
|
| | | if (param.isRegist()) {
|
| | |
| | | param.setStreamInfo(new StreamContent(streamInfoByAppAndStream));
|
| | |
|
| | | redisCatchStorage.addStream(mediaInfo, type, param.getApp(), param.getStream(), param);
|
| | | if (param.getOriginType() == OriginType.RTSP_PUSH.ordinal()
|
| | | || param.getOriginType() == OriginType.RTMP_PUSH.ordinal()
|
| | | || param.getOriginType() == OriginType.RTC_PUSH.ordinal()) {
|
| | | param.setSeverId(userSetting.getServerId());
|
| | | streamPushService.updatePush(param);
|
| | | // 冗余数据,自己系统中自用
|
| | | redisCatchStorage.addPushListItem(param.getApp(), param.getStream(), param);
|
| | | }
|
| | |
|
| | | } else {
|
| | | // 兼容流注销时类型从redis记录获取
|
| | | OnStreamChangedHookParam onStreamChangedHookParam = redisCatchStorage.getStreamInfo(
|