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 84 SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, host.getAddress());
85 85 //via
86 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 92 viaHeader.setRPort();
89 93 viaHeaders.add(viaHeader);
90 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 53 Dialog dialog = evt.getDialog();
54 54 CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
55 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 65 } catch (InvalidArgumentException | SipException e) {
60 66 e.printStackTrace();
... ...