Commit 616e1be0b43bc7445bffad63499752f2e568f895

Authored by lawrencehj
1 parent 2c1dbe63

修复ssrc释放失败问题、修正branch字段以符合国标

src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
@@ -15,6 +15,7 @@ import org.springframework.stereotype.Component; @@ -15,6 +15,7 @@ import org.springframework.stereotype.Component;
15 public class VideoStreamSessionManager { 15 public class VideoStreamSessionManager {
16 16
17 private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>(); 17 private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>();
  18 + private ConcurrentHashMap<String, String> ssrcMap = new ConcurrentHashMap<>();
18 19
19 public String createPlaySsrc(){ 20 public String createPlaySsrc(){
20 return SsrcUtil.getPlaySsrc(); 21 return SsrcUtil.getPlaySsrc();
@@ -24,16 +25,18 @@ public class VideoStreamSessionManager { @@ -24,16 +25,18 @@ public class VideoStreamSessionManager {
24 return SsrcUtil.getPlayBackSsrc(); 25 return SsrcUtil.getPlayBackSsrc();
25 } 26 }
26 27
27 - public void put(String ssrc,ClientTransaction transaction){  
28 - sessionMap.put(ssrc, transaction); 28 + public void put(String streamId,String ssrc,ClientTransaction transaction){
  29 + sessionMap.put(streamId, transaction);
  30 + ssrcMap.put(streamId, ssrc);
29 } 31 }
30 32
31 - public ClientTransaction get(String ssrc){  
32 - return sessionMap.get(ssrc); 33 + public ClientTransaction get(String streamId){
  34 + return sessionMap.get(streamId);
33 } 35 }
34 36
35 - public void remove(String ssrc) {  
36 - sessionMap.remove(ssrc);  
37 - SsrcUtil.releaseSsrc(ssrc); 37 + public void remove(String streamId) {
  38 + sessionMap.remove(streamId);
  39 + SsrcUtil.releaseSsrc(ssrcMap.get(streamId));
  40 + ssrcMap.remove(streamId);
38 } 41 }
39 } 42 }
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -235,7 +235,7 @@ public class SIPCommander implements ISIPCommander { @@ -235,7 +235,7 @@ public class SIPCommander implements ISIPCommander {
235 ptzXml.append("</Control>\r\n"); 235 ptzXml.append("</Control>\r\n");
236 236
237 String tm = Long.toString(System.currentTimeMillis()); 237 String tm = Long.toString(System.currentTimeMillis());
238 - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtz" + tm, null); 238 + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null);
239 239
240 transmitRequest(device, request); 240 transmitRequest(device, request);
241 return true; 241 return true;
@@ -272,7 +272,7 @@ public class SIPCommander implements ISIPCommander { @@ -272,7 +272,7 @@ public class SIPCommander implements ISIPCommander {
272 ptzXml.append("</Control>\r\n"); 272 ptzXml.append("</Control>\r\n");
273 273
274 String tm = Long.toString(System.currentTimeMillis()); 274 String tm = Long.toString(System.currentTimeMillis());
275 - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtz" + tm, null); 275 + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null);
276 transmitRequest(device, request); 276 transmitRequest(device, request);
277 return true; 277 return true;
278 } catch (SipException | ParseException | InvalidArgumentException e) { 278 } catch (SipException | ParseException | InvalidArgumentException e) {
@@ -387,9 +387,7 @@ public class SIPCommander implements ISIPCommander { @@ -387,9 +387,7 @@ public class SIPCommander implements ISIPCommander {
387 Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrc); 387 Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrc);
388 388
389 ClientTransaction transaction = transmitRequest(device, request, errorEvent); 389 ClientTransaction transaction = transmitRequest(device, request, errorEvent);
390 - streamSession.put(streamId, transaction);  
391 -  
392 - 390 + streamSession.put(streamId,ssrc, transaction);
393 391
394 } catch ( SipException | ParseException | InvalidArgumentException e) { 392 } catch ( SipException | ParseException | InvalidArgumentException e) {
395 e.printStackTrace(); 393 e.printStackTrace();
@@ -487,7 +485,7 @@ public class SIPCommander implements ISIPCommander { @@ -487,7 +485,7 @@ public class SIPCommander implements ISIPCommander {
487 Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null); 485 Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null);
488 486
489 ClientTransaction transaction = transmitRequest(device, request, errorEvent); 487 ClientTransaction transaction = transmitRequest(device, request, errorEvent);
490 - streamSession.put(streamId, transaction); 488 + streamSession.put(streamId, ssrc, transaction);
491 489
492 } catch ( SipException | ParseException | InvalidArgumentException e) { 490 } catch ( SipException | ParseException | InvalidArgumentException e) {
493 e.printStackTrace(); 491 e.printStackTrace();
@@ -893,7 +891,7 @@ public class SIPCommander implements ISIPCommander { @@ -893,7 +891,7 @@ public class SIPCommander implements ISIPCommander {
893 catalogXml.append("</Query>\r\n"); 891 catalogXml.append("</Query>\r\n");
894 892
895 String tm = Long.toString(System.currentTimeMillis()); 893 String tm = Long.toString(System.currentTimeMillis());
896 - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaDeviceInfo" + tm, "FromDev" + tm, null); 894 + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaDeviceInfo-" + tm, "FromDev" + tm, null);
897 895
898 transmitRequest(device, request); 896 transmitRequest(device, request);
899 897
@@ -923,7 +921,7 @@ public class SIPCommander implements ISIPCommander { @@ -923,7 +921,7 @@ public class SIPCommander implements ISIPCommander {
923 catalogXml.append("</Query>\r\n"); 921 catalogXml.append("</Query>\r\n");
924 922
925 String tm = Long.toString(System.currentTimeMillis()); 923 String tm = Long.toString(System.currentTimeMillis());
926 - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaCatalog" + tm, "FromCat" + tm, null); 924 + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaCatalog-" + tm, "FromCat" + tm, null);
927 925
928 transmitRequest(device, request, errorEvent); 926 transmitRequest(device, request, errorEvent);
929 } catch (SipException | ParseException | InvalidArgumentException e) { 927 } catch (SipException | ParseException | InvalidArgumentException e) {
@@ -958,7 +956,7 @@ public class SIPCommander implements ISIPCommander { @@ -958,7 +956,7 @@ public class SIPCommander implements ISIPCommander {
958 recordInfoXml.append("</Query>\r\n"); 956 recordInfoXml.append("</Query>\r\n");
959 957
960 String tm = Long.toString(System.currentTimeMillis()); 958 String tm = Long.toString(System.currentTimeMillis());
961 - Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), "ViaRecordInfoBranch", "fromRec" + tm, null); 959 + Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), "z9hG4bK-ViaRecordInfo-" + tm, "fromRec" + tm, null);
962 960
963 transmitRequest(device, request); 961 transmitRequest(device, request);
964 } catch (SipException | ParseException | InvalidArgumentException e) { 962 } catch (SipException | ParseException | InvalidArgumentException e) {
@@ -1101,7 +1099,7 @@ public class SIPCommander implements ISIPCommander { @@ -1101,7 +1099,7 @@ public class SIPCommander implements ISIPCommander {
1101 mobilePostitionXml.append("</Query>\r\n"); 1099 mobilePostitionXml.append("</Query>\r\n");
1102 1100
1103 String tm = Long.toString(System.currentTimeMillis()); 1101 String tm = Long.toString(System.currentTimeMillis());
1104 - Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), "viaTagPos" + tm, "fromTagPos" + tm, null); 1102 + Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null);
1105 1103
1106 transmitRequest(device, request, errorEvent); 1104 transmitRequest(device, request, errorEvent);
1107 1105
@@ -1134,7 +1132,7 @@ public class SIPCommander implements ISIPCommander { @@ -1134,7 +1132,7 @@ public class SIPCommander implements ISIPCommander {
1134 subscribePostitionXml.append("</Query>\r\n"); 1132 subscribePostitionXml.append("</Query>\r\n");
1135 1133
1136 String tm = Long.toString(System.currentTimeMillis()); 1134 String tm = Long.toString(System.currentTimeMillis());
1137 - Request request = headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), "viaTagPos" + tm, "fromTagPos" + tm, null, expires, "presence" ); //Position;id=" + tm.substring(tm.length() - 4)); 1135 + Request request = headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, expires, "presence" ); //Position;id=" + tm.substring(tm.length() - 4));
1138 transmitRequest(device, request); 1136 transmitRequest(device, request);
1139 1137
1140 return true; 1138 return true;
@@ -1187,7 +1185,7 @@ public class SIPCommander implements ISIPCommander { @@ -1187,7 +1185,7 @@ public class SIPCommander implements ISIPCommander {
1187 cmdXml.append("</Query>\r\n"); 1185 cmdXml.append("</Query>\r\n");
1188 1186
1189 String tm = Long.toString(System.currentTimeMillis()); 1187 String tm = Long.toString(System.currentTimeMillis());
1190 - Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), "viaTagPos" + tm, "fromTagPos" + tm, null, expires, "presence" ); 1188 + Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, expires, "presence" );
1191 transmitRequest(device, request); 1189 transmitRequest(device, request);
1192 1190
1193 return true; 1191 return true;