|
|
@@ -26,6 +26,7 @@ import gov.nist.javax.sip.SipProviderImpl;
|
|
|
import gov.nist.javax.sip.SipStackImpl;
|
|
|
import gov.nist.javax.sip.message.MessageFactoryImpl;
|
|
|
import gov.nist.javax.sip.message.SIPRequest;
|
|
|
+import gov.nist.javax.sip.stack.SIPClientTransaction;
|
|
|
import gov.nist.javax.sip.stack.SIPDialog;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
@@ -433,7 +434,14 @@ public class SIPCommander implements ISIPCommander {
|
|
|
}), e ->{
|
|
|
// 这里为例避免一个通道的点播只有一个callID这个参数使用一个固定值
|
|
|
streamSession.put(device.getDeviceId(), channelId ,"play", stream, ssrcInfo.getSsrc(), mediaServerItem.getId(), ((ResponseEvent)e.event).getClientTransaction(), VideoStreamSessionManager.SessionType.play);
|
|
|
- streamSession.put(device.getDeviceId(), channelId ,"play", e.dialog);
|
|
|
+ Dialog sipDialog = null;
|
|
|
+ if (e.dialog == null) {
|
|
|
+ SIPClientTransaction clientTransaction = (SIPClientTransaction)((ResponseEvent)e.event).getClientTransaction();
|
|
|
+ sipDialog = new SIPDialog(clientTransaction, clientTransaction.getLastResponse());
|
|
|
+ }else {
|
|
|
+ sipDialog = e.dialog;
|
|
|
+ }
|
|
|
+ streamSession.put(device.getDeviceId(), channelId ,"play", sipDialog);
|
|
|
okEvent.response(e);
|
|
|
});
|
|
|
|