Commit 1a746f28822fe7ca382eda6ede2e32d6cf8e6d01
1 parent
e9e4e8d4
将设备IP地址填入via Header中,避免部分设备回复200 OK时contact信息缺失导致无法回复ack
Showing
1 changed file
with
6 additions
and
2 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
| @@ -79,7 +79,8 @@ public class SIPRequestHeaderProvider { | @@ -79,7 +79,8 @@ public class SIPRequestHeaderProvider { | ||
| 79 | SipURI requestLine = layer.getAddressFactory().createSipURI(channelId, host.getAddress()); | 79 | SipURI requestLine = layer.getAddressFactory().createSipURI(channelId, host.getAddress()); |
| 80 | //via | 80 | //via |
| 81 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 81 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 82 | - ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); | 82 | + // ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); |
| 83 | + ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(device.getHost().getIp(), device.getHost().getPort(), device.getTransport(), viaTag); | ||
| 83 | viaHeader.setRPort(); | 84 | viaHeader.setRPort(); |
| 84 | viaHeaders.add(viaHeader); | 85 | viaHeaders.add(viaHeader); |
| 85 | //from | 86 | //from |
| @@ -108,6 +109,7 @@ public class SIPRequestHeaderProvider { | @@ -108,6 +109,7 @@ public class SIPRequestHeaderProvider { | ||
| 108 | request = layer.getMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); | 109 | request = layer.getMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); |
| 109 | 110 | ||
| 110 | Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); | 111 | Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); |
| 112 | + // Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort())); | ||
| 111 | request.addHeader(layer.getHeaderFactory().createContactHeader(concatAddress)); | 113 | request.addHeader(layer.getHeaderFactory().createContactHeader(concatAddress)); |
| 112 | 114 | ||
| 113 | ContentTypeHeader contentTypeHeader = layer.getHeaderFactory().createContentTypeHeader("Application", "SDP"); | 115 | ContentTypeHeader contentTypeHeader = layer.getHeaderFactory().createContentTypeHeader("Application", "SDP"); |
| @@ -122,7 +124,8 @@ public class SIPRequestHeaderProvider { | @@ -122,7 +124,8 @@ public class SIPRequestHeaderProvider { | ||
| 122 | SipURI requestLine = layer.getAddressFactory().createSipURI(device.getDeviceId(), host.getAddress()); | 124 | SipURI requestLine = layer.getAddressFactory().createSipURI(device.getDeviceId(), host.getAddress()); |
| 123 | //via | 125 | //via |
| 124 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 126 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 125 | - ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); | 127 | + // ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); |
| 128 | + ViaHeader viaHeader = layer.getHeaderFactory().createViaHeader(device.getHost().getIp(), device.getHost().getPort(), device.getTransport(), viaTag); | ||
| 126 | viaHeader.setRPort(); | 129 | viaHeader.setRPort(); |
| 127 | viaHeaders.add(viaHeader); | 130 | viaHeaders.add(viaHeader); |
| 128 | //from | 131 | //from |
| @@ -151,6 +154,7 @@ public class SIPRequestHeaderProvider { | @@ -151,6 +154,7 @@ public class SIPRequestHeaderProvider { | ||
| 151 | request = layer.getMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); | 154 | request = layer.getMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); |
| 152 | 155 | ||
| 153 | Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); | 156 | Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); |
| 157 | + // Address concatAddress = layer.getAddressFactory().createAddress(layer.getAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort())); | ||
| 154 | request.addHeader(layer.getHeaderFactory().createContactHeader(concatAddress)); | 158 | request.addHeader(layer.getHeaderFactory().createContactHeader(concatAddress)); |
| 155 | 159 | ||
| 156 | ContentTypeHeader contentTypeHeader = layer.getHeaderFactory().createContentTypeHeader("Application", "SDP"); | 160 | ContentTypeHeader contentTypeHeader = layer.getHeaderFactory().createContentTypeHeader("Application", "SDP"); |