|
|
@@ -185,17 +185,23 @@ public class SipCommander {
|
|
|
redisCacheStorage.addRequestStream(streamId,device.getId(),channelId);
|
|
|
Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrcInfo.getSsrc(), callIdHeader);
|
|
|
messageBroker.handleReply(device.getId(), ZLMKeyGenerate.getStreamChangedKey(ZLMHttpHookSubscribe.HookType.on_stream_changed,mediaServerItem.getServerId(),"rtp",true,streamId), Duration.ofSeconds(15))
|
|
|
- .doOnNext(reply -> {
|
|
|
+ .flatMap(reply -> {
|
|
|
if(reply instanceof MediaMessageReply){
|
|
|
System.out.println("收到视频回调------------------------------------------" + System.currentTimeMillis() + "---------------------------------------");
|
|
|
MediaMessageReply<MediaItem> itemReply= (MediaMessageReply<MediaItem>) reply;
|
|
|
MediaItem mediaItem = itemReply.getResult();
|
|
|
if (userSetup.isWaitTrack() && mediaItem.getTracks() == null) {
|
|
|
- return;
|
|
|
+ return Mono.empty();
|
|
|
}
|
|
|
- event.accept(redisCacheStorage.getMediaServerItem(mediaItem.getMediaServerId()), JSONUtil.parseObj(mediaItem));
|
|
|
- subscribe.removeSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, subscribeKey);
|
|
|
+ return mediaServerItemService.createQuery()
|
|
|
+ .where(MediaServerItem::getServerId,mediaItem.getMediaServerId())
|
|
|
+ .fetchOne()
|
|
|
+ .doOnNext(mediaServer->{
|
|
|
+ event.accept(mediaServer, JSONUtil.parseObj(mediaItem));
|
|
|
+ subscribe.removeSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, subscribeKey);
|
|
|
+ });
|
|
|
}
|
|
|
+ return Mono.empty();
|
|
|
}).subscribe();
|
|
|
|
|
|
|