From cf8a22f50b81fa30abaa518bdce660cd65deabea Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期五, 15 一月 2021 15:33:24 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java | 57 +++++++++++++++++++++++---------------------------------- 1 files changed, 23 insertions(+), 34 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 f825584..93f533f 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 @@ -2,7 +2,6 @@ import java.text.ParseException; -import javax.sip.ClientTransaction; import javax.sip.Dialog; import javax.sip.InvalidArgumentException; import javax.sip.ResponseEvent; @@ -13,6 +12,7 @@ import javax.sip.message.Request; import javax.sip.message.Response; +import gov.nist.javax.sip.header.CSeq; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -22,58 +22,47 @@ import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorFactory; import com.genersoft.iot.vmp.gb28181.transmit.response.ISIPResponseProcessor; -/** + +/** * @Description:澶勭悊INVITE鍝嶅簲 - * @author: songww - * @date: 2020骞�5鏈�3鏃� 涓嬪崍4:43:52 + * @author: swwheihei + * @date: 2020骞�5鏈�3鏃� 涓嬪崍4:43:52 */ @Component public class InviteResponseProcessor implements ISIPResponseProcessor { - private final static Logger logger = LoggerFactory.getLogger(SIPProcessorFactory.class); - + private final static Logger logger = LoggerFactory.getLogger(InviteResponseProcessor.class); + /** * 澶勭悊invite鍝嶅簲 * - * @param evt - * 鍝嶅簲娑堟伅 - */ + * @param evt 鍝嶅簲娑堟伅 + * @throws ParseException + */ @Override - public void process(ResponseEvent evt, SipLayer layer, SipConfig config) { + public void process(ResponseEvent evt, SipLayer layer, SipConfig config) throws ParseException { try { Response response = evt.getResponse(); int statusCode = response.getStatusCode(); - //trying涓嶄細鍥炲 - if(statusCode == Response.TRYING){ - + // 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(); + // 鎴愬姛鍝嶅簲 + // 涓嬪彂ack + if (statusCode == Response.OK) { + Dialog dialog = evt.getDialog(); + CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME); + Request reqAck = dialog.createAck(cseq.getSeqNumber()); - 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(); + SipURI requestURI = (SipURI) reqAck.getRequestURI(); ViaHeader viaHeader = (ViaHeader) response.getHeader(ViaHeader.NAME); requestURI.setHost(viaHeader.getHost()); requestURI.setPort(viaHeader.getPort()); - clientDialog.sendAck(ackRequest); + reqAck.setRequestURI(requestURI); + + dialog.sendAck(reqAck); } } catch (InvalidArgumentException | SipException e) { - e.printStackTrace(); - } catch (ParseException e) { e.printStackTrace(); } } -- Gitblit v1.8.0