From 21c0eb821f8d9f6df9bd310e3fef4cbbab83d3cc Mon Sep 17 00:00:00 2001 From: songww <songww@inspur.com> Date: 星期四, 21 五月 2020 09:29:58 +0800 Subject: [PATCH] 增加跨域代码,允许VUE跨域访问 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 47 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java index 4204ce7..9b1783f 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java @@ -1,15 +1,25 @@ package com.genersoft.iot.vmp.gb28181.transmit.response.impl; +import java.text.ParseException; + +import javax.sip.ClientTransaction; import javax.sip.Dialog; import javax.sip.InvalidArgumentException; import javax.sip.ResponseEvent; import javax.sip.SipException; +import javax.sip.address.SipURI; +import javax.sip.header.CSeqHeader; +import javax.sip.header.ViaHeader; import javax.sip.message.Request; +import javax.sip.message.Response; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.SipLayer; +import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorFactory; import com.genersoft.iot.vmp.gb28181.transmit.response.ISIPResponseProcessor; /** @@ -20,18 +30,51 @@ @Component public class InviteResponseProcessor implements ISIPResponseProcessor { + private final static Logger logger = LoggerFactory.getLogger(SIPProcessorFactory.class); + /** * 澶勭悊invite鍝嶅簲 * - * @param request + * @param evt * 鍝嶅簲娑堟伅 */ @Override public void process(ResponseEvent evt, SipLayer layer, SipConfig config) { try { - Dialog dialog = evt.getDialog(); - Request reqAck =dialog.createAck(1L); - dialog.sendAck(reqAck); + Response response = evt.getResponse(); + int statusCode = response.getStatusCode(); + //trying涓嶄細鍥炲 + if(statusCode == Response.TRYING){ + + } + //鎴愬姛鍝嶅簲 + //涓嬪彂ack + if(statusCode == Response.OK){ +// ClientTransaction clientTransaction = evt.getClientTransaction(); +// if(clientTransaction == null){ +// logger.error("鍥炲ACK鏃讹紝clientTransaction涓簄ull >>> {}",response); +// return; +// } +// Dialog clientDialog = clientTransaction.getDialog(); +// +// CSeqHeader clientCSeqHeader = (CSeqHeader) response.getHeader(CSeqHeader.NAME); +// long cseqId = clientCSeqHeader.getSeqNumber(); +// /* +// createAck鍑芥暟锛屽垱寤虹殑ackRequest锛屼細閲囩敤Invite鍝嶅簲鐨�200OK锛屼腑鐨刢ontact瀛楁涓殑鍦板潃锛屼綔涓虹洰鏍囧湴鍧�銆� +// 鏈夌殑缁堢浼犱笂鏉ョ殑鍙兘杩樻槸鍐呯綉鍦板潃锛屼細閫犳垚ack鍙戦�佷笉鍑哄幓銆傛帴鍙椾笉鍒伴煶瑙嗛娴� +// 鎵�浠ュ湪姝ゅ缁熶竴鏇挎崲鍦板潃銆傚拰鍝嶅簲娑堟伅鐨刅ia澶翠腑鐨勫湴鍧�淇濇寔涓�鑷淬�� +// */ +// Request ackRequest = clientDialog.createAck(cseqId); +// SipURI requestURI = (SipURI) ackRequest.getRequestURI(); +// ViaHeader viaHeader = (ViaHeader) response.getHeader(ViaHeader.NAME); +// requestURI.setHost(viaHeader.getHost()); +// requestURI.setPort(viaHeader.getPort()); +// clientDialog.sendAck(ackRequest); + + Dialog dialog = evt.getDialog(); + Request reqAck =dialog.createAck(1L); + dialog.sendAck(reqAck); + } } catch (InvalidArgumentException | SipException e) { e.printStackTrace(); } -- Gitblit v1.8.0