Commit ce1aa6137be3513352bef34bc23a598d52810dd5
1 parent
4e8659e1
增加Subject头
Showing
2 changed files
with
6 additions
and
10 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
| ... | ... | @@ -9,13 +9,7 @@ import javax.sip.SipFactory; |
| 9 | 9 | import javax.sip.SipProvider; |
| 10 | 10 | import javax.sip.address.Address; |
| 11 | 11 | import javax.sip.address.SipURI; |
| 12 | -import javax.sip.header.CSeqHeader; | |
| 13 | -import javax.sip.header.CallIdHeader; | |
| 14 | -import javax.sip.header.ContentTypeHeader; | |
| 15 | -import javax.sip.header.FromHeader; | |
| 16 | -import javax.sip.header.MaxForwardsHeader; | |
| 17 | -import javax.sip.header.ToHeader; | |
| 18 | -import javax.sip.header.ViaHeader; | |
| 12 | +import javax.sip.header.*; | |
| 19 | 13 | import javax.sip.message.Request; |
| 20 | 14 | |
| 21 | 15 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -83,7 +77,7 @@ public class SIPRequestHeaderProvider { |
| 83 | 77 | return request; |
| 84 | 78 | } |
| 85 | 79 | |
| 86 | - public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { | |
| 80 | + public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc) throws ParseException, InvalidArgumentException, PeerUnavailableException { | |
| 87 | 81 | Request request = null; |
| 88 | 82 | Host host = device.getHost(); |
| 89 | 83 | //请求行 |
| ... | ... | @@ -122,7 +116,9 @@ public class SIPRequestHeaderProvider { |
| 122 | 116 | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); |
| 123 | 117 | // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort())); |
| 124 | 118 | request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |
| 125 | - | |
| 119 | + // Subject | |
| 120 | + SubjectHeader subjectHeader = sipFactory.createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getSipId(), 0)); | |
| 121 | + request.addHeader(subjectHeader); | |
| 126 | 122 | ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "SDP"); |
| 127 | 123 | request.setContent(content, contentTypeHeader); |
| 128 | 124 | return request; | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| ... | ... | @@ -309,7 +309,7 @@ public class SIPCommander implements ISIPCommander { |
| 309 | 309 | } |
| 310 | 310 | content.append("y="+ssrc+"\r\n");//ssrc |
| 311 | 311 | |
| 312 | - Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "live", null); | |
| 312 | + Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "live", null, ssrc); | |
| 313 | 313 | |
| 314 | 314 | ClientTransaction transaction = transmitRequest(device, request); |
| 315 | 315 | streamSession.put(ssrc, transaction); | ... | ... |