Commit 5c3c3e6a4c144f77eb832fa9f736967d0bffa220
1 parent
d6262acf
修复消息发送失败导致后续次通道无法点播的bug
Showing
4 changed files
with
12 additions
and
9 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java
| ... | ... | @@ -76,7 +76,9 @@ public class SipSubscribe { |
| 76 | 76 | // 会话已结束 |
| 77 | 77 | dialogTerminated, |
| 78 | 78 | // 设备未找到 |
| 79 | - deviceNotFoundEvent | |
| 79 | + deviceNotFoundEvent, | |
| 80 | + // 设备未找到 | |
| 81 | + cmdSendFailEvent | |
| 80 | 82 | } |
| 81 | 83 | |
| 82 | 84 | public static class EventResult<EventObject>{ |
| ... | ... | @@ -86,6 +88,9 @@ public class SipSubscribe { |
| 86 | 88 | public String callId; |
| 87 | 89 | public EventObject event; |
| 88 | 90 | |
| 91 | + public EventResult() { | |
| 92 | + } | |
| 93 | + | |
| 89 | 94 | public EventResult(EventObject event) { |
| 90 | 95 | this.event = event; |
| 91 | 96 | if (event instanceof ResponseEvent) { | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
| ... | ... | @@ -46,8 +46,7 @@ public class SIPSender { |
| 46 | 46 | transmitRequest(ip, message, errorEvent, null); |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | - public void transmitRequest(String ip, Message message, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException, ParseException { | |
| 50 | - try { | |
| 49 | + public void transmitRequest(String ip, Message message, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException { | |
| 51 | 50 | ViaHeader viaHeader = (ViaHeader)message.getHeader(ViaHeader.NAME); |
| 52 | 51 | String transport = "UDP"; |
| 53 | 52 | if (viaHeader == null) { |
| ... | ... | @@ -104,9 +103,6 @@ public class SIPSender { |
| 104 | 103 | sipProvider.sendResponse((Response)message); |
| 105 | 104 | } |
| 106 | 105 | } |
| 107 | - } finally { | |
| 108 | -// logger.info("[SEND]:SUCCESS:{}", message); | |
| 109 | - } | |
| 110 | 106 | } |
| 111 | 107 | |
| 112 | 108 | public CallIdHeader getNewCallIdHeader(String ip, String transport){ | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
| ... | ... | @@ -142,8 +142,8 @@ public class SipUtils { |
| 142 | 142 | remotePort = request.getTopmostViaHeader().getRPort(); |
| 143 | 143 | // 解析本地地址替代 |
| 144 | 144 | if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) { |
| 145 | - remoteAddress = request.getTopmostViaHeader().getHost(); | |
| 146 | - remotePort = request.getTopmostViaHeader().getPort(); | |
| 145 | + remoteAddress = request.getRemoteAddress().getHostAddress(); | |
| 146 | + remotePort = request.getRemotePort(); | |
| 147 | 147 | } |
| 148 | 148 | } |
| 149 | 149 | ... | ... |
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
| ... | ... | @@ -398,7 +398,9 @@ public class PlayServiceImpl implements IPlayService { |
| 398 | 398 | mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc()); |
| 399 | 399 | |
| 400 | 400 | streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
| 401 | - SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult(new CmdSendFailEvent(null)); | |
| 401 | + SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult(); | |
| 402 | + eventResult.type = SipSubscribe.EventResultType.cmdSendFailEvent; | |
| 403 | + eventResult.statusCode = -1; | |
| 402 | 404 | eventResult.msg = "命令发送失败"; |
| 403 | 405 | errorEvent.response(eventResult); |
| 404 | 406 | } | ... | ... |