|
|
@@ -4,7 +4,10 @@ import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
import javax.sip.*;
|
|
|
-//import javax.sip.message.Request;
|
|
|
+import javax.sip.address.SipURI;
|
|
|
+import javax.sip.header.FromHeader;
|
|
|
+import javax.sip.header.HeaderAddress;
|
|
|
+import javax.sip.header.ToHeader;
|
|
|
|
|
|
import com.genersoft.iot.vmp.common.StreamInfo;
|
|
|
import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
|
|
|
@@ -12,14 +15,11 @@ import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcesso
|
|
|
import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
|
|
|
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
|
|
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
/**
|
|
|
* @Description:ACK请求处理器
|
|
|
* @author: swwheihei
|
|
|
* @date: 2020年5月3日 下午5:31:45
|
|
|
*/
|
|
|
-@Component
|
|
|
public class AckRequestProcessor extends SIPRequestAbstractProcessor {
|
|
|
|
|
|
private IRedisCatchStorage redisCatchStorage;
|
|
|
@@ -38,10 +38,8 @@ public class AckRequestProcessor extends SIPRequestAbstractProcessor {
|
|
|
if (dialog == null) return;
|
|
|
//DialogState state = dialog.getState();
|
|
|
if (/*request.getMethod().equals(Request.INVITE) &&*/ dialog.getState()== DialogState.CONFIRMED) {
|
|
|
- String remoteUri = dialog.getRemoteParty().getURI().toString();
|
|
|
- String localUri = dialog.getLocalParty().getURI().toString();
|
|
|
- String platformGbId = remoteUri.substring(remoteUri.indexOf(":") + 1, remoteUri.indexOf("@"));
|
|
|
- String channelId = localUri.substring(remoteUri.indexOf(":") + 1, remoteUri.indexOf("@"));
|
|
|
+ String platformGbId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser();
|
|
|
+ String channelId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser();
|
|
|
SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(platformGbId, channelId);
|
|
|
String is_Udp = sendRtpItem.isTcp() ? "0" : "1";
|
|
|
String deviceId = sendRtpItem.getDeviceId();
|