| | |
| | | // 会话已结束 |
| | | dialogTerminated, |
| | | // 设备未找到 |
| | | deviceNotFoundEvent |
| | | deviceNotFoundEvent, |
| | | // 设备未找到 |
| | | cmdSendFailEvent |
| | | } |
| | | |
| | | public static class EventResult<EventObject>{ |
| | |
| | | public String callId; |
| | | public EventObject event; |
| | | |
| | | public EventResult() { |
| | | } |
| | | |
| | | public EventResult(EventObject event) { |
| | | this.event = event; |
| | | if (event instanceof ResponseEvent) { |
| | |
| | | transmitRequest(ip, message, errorEvent, null); |
| | | } |
| | | |
| | | public void transmitRequest(String ip, Message message, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException, ParseException { |
| | | try { |
| | | public void transmitRequest(String ip, Message message, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException { |
| | | ViaHeader viaHeader = (ViaHeader)message.getHeader(ViaHeader.NAME); |
| | | String transport = "UDP"; |
| | | if (viaHeader == null) { |
| | |
| | | sipProvider.sendResponse((Response)message); |
| | | } |
| | | } |
| | | } finally { |
| | | // logger.info("[SEND]:SUCCESS:{}", message); |
| | | } |
| | | } |
| | | |
| | | public CallIdHeader getNewCallIdHeader(String ip, String transport){ |
| | |
| | | remotePort = request.getTopmostViaHeader().getRPort(); |
| | | // 解析本地地址替代 |
| | | if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) { |
| | | remoteAddress = request.getTopmostViaHeader().getHost(); |
| | | remotePort = request.getTopmostViaHeader().getPort(); |
| | | remoteAddress = request.getRemoteAddress().getHostAddress(); |
| | | remotePort = request.getRemotePort(); |
| | | } |
| | | } |
| | | |
| | |
| | | mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc()); |
| | | |
| | | streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
| | | SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult(new CmdSendFailEvent(null)); |
| | | SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult(); |
| | | eventResult.type = SipSubscribe.EventResultType.cmdSendFailEvent; |
| | | eventResult.statusCode = -1; |
| | | eventResult.msg = "命令发送失败"; |
| | | errorEvent.response(eventResult); |
| | | } |