|
@@ -342,8 +342,7 @@ public class SIPCommander implements ISIPCommander {
|
|
|
try {
|
|
try {
|
|
|
if (device == null) return;
|
|
if (device == null) return;
|
|
|
String streamMode = device.getStreamMode().toUpperCase();
|
|
String streamMode = device.getStreamMode().toUpperCase();
|
|
|
-
|
|
|
|
|
- logger.info("{} 分配的ZLM为: {} [{}:{}]", streamId, mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
|
|
|
|
|
|
|
+ //logger.info("{} 分配的ZLM为: {} [{}:{}]", streamId, mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
|
|
|
// 添加订阅
|
|
// 添加订阅
|
|
|
JSONObject subscribeKey = new JSONObject();
|
|
JSONObject subscribeKey = new JSONObject();
|
|
|
subscribeKey.put("app", "rtp");
|
|
subscribeKey.put("app", "rtp");
|
|
@@ -418,7 +417,6 @@ public class SIPCommander implements ISIPCommander {
|
|
|
: udpSipProvider.getNewCallId();
|
|
: udpSipProvider.getNewCallId();
|
|
|
|
|
|
|
|
Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrcInfo.getSsrc(), callIdHeader);
|
|
Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrcInfo.getSsrc(), callIdHeader);
|
|
|
-
|
|
|
|
|
String finalStreamId = streamId;
|
|
String finalStreamId = streamId;
|
|
|
transmitRequest(device, request, (e -> {
|
|
transmitRequest(device, request, (e -> {
|
|
|
streamSession.remove(device.getDeviceId(), channelId);
|
|
streamSession.remove(device.getDeviceId(), channelId);
|
|
@@ -428,8 +426,6 @@ public class SIPCommander implements ISIPCommander {
|
|
|
streamSession.put(device.getDeviceId(), channelId ,ssrcInfo.getSsrc(), finalStreamId, mediaServerItem.getId(),e.getClientTransaction());
|
|
streamSession.put(device.getDeviceId(), channelId ,ssrcInfo.getSsrc(), finalStreamId, mediaServerItem.getId(),e.getClientTransaction());
|
|
|
streamSession.put(device.getDeviceId(), channelId , e.getDialog());
|
|
streamSession.put(device.getDeviceId(), channelId , e.getDialog());
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
} catch ( SipException | ParseException | InvalidArgumentException e) {
|
|
} catch ( SipException | ParseException | InvalidArgumentException e) {
|
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
|
}
|
|
}
|
|
@@ -447,9 +443,7 @@ public class SIPCommander implements ISIPCommander {
|
|
|
public void playbackStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId, String startTime, String endTime, ZLMHttpHookSubscribe.Event event
|
|
public void playbackStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId, String startTime, String endTime, ZLMHttpHookSubscribe.Event event
|
|
|
, SipSubscribe.Event errorEvent) {
|
|
, SipSubscribe.Event errorEvent) {
|
|
|
try {
|
|
try {
|
|
|
-
|
|
|
|
|
logger.info("{} 分配的ZLM为: {} [{}:{}]", ssrcInfo.getStreamId(), mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
|
|
logger.info("{} 分配的ZLM为: {} [{}:{}]", ssrcInfo.getStreamId(), mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
|
|
|
-
|
|
|
|
|
// 添加订阅
|
|
// 添加订阅
|
|
|
JSONObject subscribeKey = new JSONObject();
|
|
JSONObject subscribeKey = new JSONObject();
|
|
|
subscribeKey.put("app", "rtp");
|
|
subscribeKey.put("app", "rtp");
|
|
@@ -473,10 +467,7 @@ public class SIPCommander implements ISIPCommander {
|
|
|
content.append("t="+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime)+" "
|
|
content.append("t="+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime)+" "
|
|
|
+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime) +"\r\n");
|
|
+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime) +"\r\n");
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
String streamMode = device.getStreamMode().toUpperCase();
|
|
String streamMode = device.getStreamMode().toUpperCase();
|
|
|
-
|
|
|
|
|
if (userSetup.isSeniorSdp()) {
|
|
if (userSetup.isSeniorSdp()) {
|
|
|
if("TCP-PASSIVE".equals(streamMode)) {
|
|
if("TCP-PASSIVE".equals(streamMode)) {
|
|
|
content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
|
content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
|
@@ -522,14 +513,10 @@ public class SIPCommander implements ISIPCommander {
|
|
|
content.append("a=connection:new\r\n");
|
|
content.append("a=connection:new\r\n");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc
|
|
content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc
|
|
|
-
|
|
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
-
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
: udpSipProvider.getNewCallId();
|
|
: udpSipProvider.getNewCallId();
|
|
|
-
|
|
|
|
|
Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader);
|
|
Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader);
|
|
|
|
|
|
|
|
transmitRequest(device, request, errorEvent, okEvent -> {
|
|
transmitRequest(device, request, errorEvent, okEvent -> {
|
|
@@ -579,11 +566,7 @@ public class SIPCommander implements ISIPCommander {
|
|
|
content.append("c=IN IP4 "+mediaServerItem.getSdpIp()+"\r\n");
|
|
content.append("c=IN IP4 "+mediaServerItem.getSdpIp()+"\r\n");
|
|
|
content.append("t="+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime)+" "
|
|
content.append("t="+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime)+" "
|
|
|
+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime) +"\r\n");
|
|
+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime) +"\r\n");
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
String streamMode = device.getStreamMode().toUpperCase();
|
|
String streamMode = device.getStreamMode().toUpperCase();
|
|
|
-
|
|
|
|
|
if (userSetup.isSeniorSdp()) {
|
|
if (userSetup.isSeniorSdp()) {
|
|
|
if("TCP-PASSIVE".equals(streamMode)) {
|
|
if("TCP-PASSIVE".equals(streamMode)) {
|
|
|
content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
|
content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
|
|
@@ -637,9 +620,7 @@ public class SIPCommander implements ISIPCommander {
|
|
|
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
: udpSipProvider.getNewCallId();
|
|
: udpSipProvider.getNewCallId();
|
|
|
-
|
|
|
|
|
Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader);
|
|
Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader);
|
|
|
-
|
|
|
|
|
ClientTransaction transaction = transmitRequest(device, request, errorEvent);
|
|
ClientTransaction transaction = transmitRequest(device, request, errorEvent);
|
|
|
streamSession.put(device.getDeviceId(), channelId, ssrcInfo.getSsrc(), ssrcInfo.getStreamId(), mediaServerItem.getId(), transaction);
|
|
streamSession.put(device.getDeviceId(), channelId, ssrcInfo.getSsrc(), ssrcInfo.getStreamId(), mediaServerItem.getId(), transaction);
|
|
|
|
|
|
|
@@ -775,12 +756,9 @@ public class SIPCommander implements ISIPCommander {
|
|
|
broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n");
|
|
broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n");
|
|
|
broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n");
|
|
broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n");
|
|
|
broadcastXml.append("</Notify>\r\n");
|
|
broadcastXml.append("</Notify>\r\n");
|
|
|
-
|
|
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
-
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
: udpSipProvider.getNewCallId();
|
|
: udpSipProvider.getNewCallId();
|
|
|
-
|
|
|
|
|
Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), "z9hG4bK-ViaBcst-" + tm, "FromBcst" + tm, null, callIdHeader);
|
|
Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), "z9hG4bK-ViaBcst-" + tm, "FromBcst" + tm, null, callIdHeader);
|
|
|
transmitRequest(device, request, errorEvent);
|
|
transmitRequest(device, request, errorEvent);
|
|
|
} catch (SipException | ParseException | InvalidArgumentException e) {
|
|
} catch (SipException | ParseException | InvalidArgumentException e) {
|
|
@@ -811,12 +789,9 @@ public class SIPCommander implements ISIPCommander {
|
|
|
}
|
|
}
|
|
|
cmdXml.append("<RecordCmd>" + recordCmdStr + "</RecordCmd>\r\n");
|
|
cmdXml.append("<RecordCmd>" + recordCmdStr + "</RecordCmd>\r\n");
|
|
|
cmdXml.append("</Control>\r\n");
|
|
cmdXml.append("</Control>\r\n");
|
|
|
-
|
|
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
-
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
: udpSipProvider.getNewCallId();
|
|
: udpSipProvider.getNewCallId();
|
|
|
-
|
|
|
|
|
Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromRecord" + tm, null, callIdHeader);
|
|
Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromRecord" + tm, null, callIdHeader);
|
|
|
transmitRequest(device, request, errorEvent);
|
|
transmitRequest(device, request, errorEvent);
|
|
|
return true;
|
|
return true;
|
|
@@ -842,12 +817,9 @@ public class SIPCommander implements ISIPCommander {
|
|
|
cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
|
|
cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
|
|
|
cmdXml.append("<TeleBoot>Boot</TeleBoot>\r\n");
|
|
cmdXml.append("<TeleBoot>Boot</TeleBoot>\r\n");
|
|
|
cmdXml.append("</Control>\r\n");
|
|
cmdXml.append("</Control>\r\n");
|
|
|
-
|
|
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
-
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
: udpSipProvider.getNewCallId();
|
|
: udpSipProvider.getNewCallId();
|
|
|
-
|
|
|
|
|
Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null, callIdHeader);
|
|
Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null, callIdHeader);
|
|
|
transmitRequest(device, request);
|
|
transmitRequest(device, request);
|
|
|
return true;
|
|
return true;
|
|
@@ -874,12 +846,9 @@ public class SIPCommander implements ISIPCommander {
|
|
|
cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
|
|
cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
|
|
|
cmdXml.append("<GuardCmd>" + guardCmdStr + "</GuardCmd>\r\n");
|
|
cmdXml.append("<GuardCmd>" + guardCmdStr + "</GuardCmd>\r\n");
|
|
|
cmdXml.append("</Control>\r\n");
|
|
cmdXml.append("</Control>\r\n");
|
|
|
-
|
|
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
-
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
: udpSipProvider.getNewCallId();
|
|
: udpSipProvider.getNewCallId();
|
|
|
-
|
|
|
|
|
Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null, callIdHeader);
|
|
Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null, callIdHeader);
|
|
|
transmitRequest(device, request, errorEvent);
|
|
transmitRequest(device, request, errorEvent);
|
|
|
return true;
|
|
return true;
|