Browse Source
Merge pull request #34 from lawrencehj/wvp-28181-2.0
解决非默认端口无法Send Bye的问题
pull/38/head
648540858
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
14 additions and
10 deletions
-
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
-
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
-
web_src/src/components/gb28181/devicePlayer.vue
|
|
@ -409,12 +409,7 @@ public class SIPCommander implements ISIPCommander { |
|
|
|
try { |
|
|
|
MediaServerConfig mediaInfo = redisCatchStorage.getMediaInfo(); |
|
|
|
String ssrc = streamSession.createPlayBackSsrc(); |
|
|
|
String streamId = null; |
|
|
|
if (rtpEnable) { |
|
|
|
streamId = String.format("gb_playback_%s_%s", device.getDeviceId(), channelId); |
|
|
|
}else { |
|
|
|
streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase(); |
|
|
|
} |
|
|
|
String streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase(); |
|
|
|
// 添加订阅
|
|
|
|
JSONObject subscribeKey = new JSONObject(); |
|
|
|
subscribeKey.put("app", "rtp"); |
|
|
@ -531,7 +526,10 @@ public class SIPCommander implements ISIPCommander { |
|
|
|
Pattern p = Pattern.compile("(\\d+\\.\\d+\\.\\d+\\.\\d+)\\:(\\d+)"); |
|
|
|
Matcher matcher = p.matcher(vh); |
|
|
|
if (matcher.find()) { |
|
|
|
byeURI.setHost(matcher.group(1)); |
|
|
|
String ip = matcher.group(1); |
|
|
|
byeURI.setHost(ip); |
|
|
|
String port = matcher.group(2); |
|
|
|
byeURI.setPort(Integer.parseInt(port)); |
|
|
|
} |
|
|
|
ViaHeader viaHeader = (ViaHeader) byeRequest.getHeader(ViaHeader.NAME); |
|
|
|
String protocol = viaHeader.getTransport().toUpperCase(); |
|
|
|
|
|
@ -342,7 +342,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { |
|
|
|
try { |
|
|
|
// 回复200 OK
|
|
|
|
responseAck(evt); |
|
|
|
String seqNo = String.valueOf(System.currentTimeMillis()); |
|
|
|
String uuid = UUID.randomUUID().toString().replace("-", ""); |
|
|
|
RecordInfo recordInfo = new RecordInfo(); |
|
|
|
Element rootElement = getRootElement(evt); |
|
|
|
Element deviceIdElement = rootElement.element("DeviceID"); |
|
|
@ -398,7 +398,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { |
|
|
|
// 为防止连续请求该设备的录像数据,返回数据错乱,特增加sn进行区分
|
|
|
|
String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn; |
|
|
|
|
|
|
|
redis.set(cacheKey + "_" + seqNo, recordList, 90); |
|
|
|
redis.set(cacheKey + "_" + uuid, recordList, 90); |
|
|
|
List<Object> cacheKeys = redis.scan(cacheKey + "_*"); |
|
|
|
List<RecordItem> totalRecordList = new ArrayList<RecordItem>(); |
|
|
|
for (int i = 0; i < cacheKeys.size(); i++) { |
|
|
|
|
|
@ -183,7 +183,8 @@ export default { |
|
|
|
scanGroup: 0, |
|
|
|
tracks: [], |
|
|
|
coverPlaying:false, |
|
|
|
tracksLoading: false |
|
|
|
tracksLoading: false, |
|
|
|
recordPlay: "" |
|
|
|
}; |
|
|
|
}, |
|
|
|
methods: { |
|
|
@ -318,6 +319,10 @@ export default { |
|
|
|
this.convertStop(); |
|
|
|
} |
|
|
|
this.convertKey = '' |
|
|
|
if (this.recordPlay != '') { |
|
|
|
this.stopPlayRecord(); |
|
|
|
} |
|
|
|
this.recordPlay = '' |
|
|
|
}, |
|
|
|
|
|
|
|
copySharedInfo: function (data) { |
|
|
@ -384,6 +389,7 @@ export default { |
|
|
|
var streamInfo = res.data; |
|
|
|
that.streamId = streamInfo.streamId; |
|
|
|
that.videoUrl = streamInfo.ws_flv; |
|
|
|
that.recordPlay = true; |
|
|
|
}); |
|
|
|
} |
|
|
|
}, |
|
|
|