Commit e56fcc48e1b86f90df52bc5254668dad8a3a06c2

Authored by Lawrence
1 parent 73f2c89d

临时修改解决内网Ack问题

src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
@@ -84,7 +84,11 @@ public class SIPRequestHeaderProvider { @@ -84,7 +84,11 @@ public class SIPRequestHeaderProvider {
84 SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, host.getAddress()); 84 SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, host.getAddress());
85 //via 85 //via
86 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); 86 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
87 - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); 87 + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getHost().getIp(), device.getHost().getPort(), device.getTransport(), viaTag);
  88 + viaHeader.setRPort();
  89 + viaHeaders.add(viaHeader);
  90 +
  91 + viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag);
88 viaHeader.setRPort(); 92 viaHeader.setRPort();
89 viaHeaders.add(viaHeader); 93 viaHeaders.add(viaHeader);
90 //from 94 //from
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java
@@ -53,8 +53,14 @@ public class InviteResponseProcessor implements ISIPResponseProcessor { @@ -53,8 +53,14 @@ public class InviteResponseProcessor implements ISIPResponseProcessor {
53 Dialog dialog = evt.getDialog(); 53 Dialog dialog = evt.getDialog();
54 CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME); 54 CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
55 Request reqAck = dialog.createAck(cseq.getSeqNumber()); 55 Request reqAck = dialog.createAck(cseq.getSeqNumber());
56 - dialog.sendAck(reqAck);  
57 56
  57 + SipURI requestURI = (SipURI) reqAck.getRequestURI();
  58 + ViaHeader viaHeader = (ViaHeader) response.getHeader(ViaHeader.NAME);
  59 + requestURI.setHost(viaHeader.getHost());
  60 + requestURI.setPort(viaHeader.getPort());
  61 + reqAck.setRequestURI(requestURI);
  62 +
  63 + dialog.sendAck(reqAck);
58 } 64 }
59 } catch (InvalidArgumentException | SipException e) { 65 } catch (InvalidArgumentException | SipException e) {
60 e.printStackTrace(); 66 e.printStackTrace();