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,13 +9,7 @@ import javax.sip.SipFactory;
9 import javax.sip.SipProvider; 9 import javax.sip.SipProvider;
10 import javax.sip.address.Address; 10 import javax.sip.address.Address;
11 import javax.sip.address.SipURI; 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 import javax.sip.message.Request; 13 import javax.sip.message.Request;
20 14
21 import org.springframework.beans.factory.annotation.Autowired; 15 import org.springframework.beans.factory.annotation.Autowired;
@@ -83,7 +77,7 @@ public class SIPRequestHeaderProvider { @@ -83,7 +77,7 @@ public class SIPRequestHeaderProvider {
83 return request; 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 Request request = null; 81 Request request = null;
88 Host host = device.getHost(); 82 Host host = device.getHost();
89 //请求行 83 //请求行
@@ -122,7 +116,9 @@ public class SIPRequestHeaderProvider { @@ -122,7 +116,9 @@ public class SIPRequestHeaderProvider {
122 Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); 116 Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort()));
123 // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort())); 117 // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort()));
124 request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); 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 ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "SDP"); 122 ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "SDP");
127 request.setContent(content, contentTypeHeader); 123 request.setContent(content, contentTypeHeader);
128 return request; 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,7 +309,7 @@ public class SIPCommander implements ISIPCommander {
309 } 309 }
310 content.append("y="+ssrc+"\r\n");//ssrc 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 ClientTransaction transaction = transmitRequest(device, request); 314 ClientTransaction transaction = transmitRequest(device, request);
315 streamSession.put(ssrc, transaction); 315 streamSession.put(ssrc, transaction);