|
|
@@ -47,7 +47,10 @@ import org.springframework.web.context.request.async.DeferredResult;
|
|
|
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;
|
|
|
@@ -377,10 +380,27 @@ public class ZLMHttpHookListener {
|
|
|
redisCatchStorage.updateStreamAuthorityInfo(param.getApp(), param.getStream(), streamAuthorityInfo);
|
|
|
|
|
|
if (!"broadcast".equals(param.getApp()) && !"talk".equals(param.getApp())) {
|
|
|
- Map<String, String> params = MediaServerUtils.urlParamToMap(param.getParams());
|
|
|
- param.setParamMap(params);
|
|
|
+ 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, params.get("callId"));
|
|
|
+ param.getApp(), param.getStream(), tracks, param.getParamMap().get("callId"));
|
|
|
param.setStreamInfo(new StreamContent(streamInfoByAppAndStream));
|
|
|
|
|
|
param.setSeverId(userSetting.getServerId());
|