Commit ce1aa6137be3513352bef34bc23a598d52810dd5

Authored by 648540858
1 parent 4e8659e1

增加Subject头

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);
... ...