Merge pull request #379 from MeBetterMan/wvp-28181-2.0
级联场景,invite消息中获取channelid。以前从invite的第一行读取,现在从subject header读取。pull/423/head
commit
2142b7ffcd
|
@ -29,6 +29,7 @@ import gov.nist.javax.sdp.TimeDescriptionImpl;
|
||||||
import gov.nist.javax.sdp.fields.TimeField;
|
import gov.nist.javax.sdp.fields.TimeField;
|
||||||
import gov.nist.javax.sip.address.AddressImpl;
|
import gov.nist.javax.sip.address.AddressImpl;
|
||||||
import gov.nist.javax.sip.address.SipUri;
|
import gov.nist.javax.sip.address.SipUri;
|
||||||
|
import gov.nist.javax.sip.header.Subject;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
@ -43,6 +44,7 @@ import javax.sip.SipException;
|
||||||
import javax.sip.address.SipURI;
|
import javax.sip.address.SipURI;
|
||||||
import javax.sip.header.CallIdHeader;
|
import javax.sip.header.CallIdHeader;
|
||||||
import javax.sip.header.FromHeader;
|
import javax.sip.header.FromHeader;
|
||||||
|
import javax.sip.header.Header;
|
||||||
import javax.sip.message.Request;
|
import javax.sip.message.Request;
|
||||||
import javax.sip.message.Response;
|
import javax.sip.message.Response;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
@ -114,7 +116,9 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||||
try {
|
try {
|
||||||
Request request = evt.getRequest();
|
Request request = evt.getRequest();
|
||||||
SipURI sipURI = (SipURI) request.getRequestURI();
|
SipURI sipURI = (SipURI) request.getRequestURI();
|
||||||
String channelId = sipURI.getUser();
|
//从subject读取channelId,不再从request-line读取。 有些平台request-line是平台国标编码,不是设备国标编码。
|
||||||
|
//String channelId = sipURI.getUser();
|
||||||
|
String channelId = SipUtils.getChannelIdFromHeader(request);
|
||||||
String requesterId = SipUtils.getUserIdFromFromHeader(request);
|
String requesterId = SipUtils.getUserIdFromFromHeader(request);
|
||||||
CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME);
|
CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME);
|
||||||
if (requesterId == null || channelId == null) {
|
if (requesterId == null || channelId == null) {
|
||||||
|
|
|
@ -2,8 +2,10 @@ package com.genersoft.iot.vmp.gb28181.utils;
|
||||||
|
|
||||||
import gov.nist.javax.sip.address.AddressImpl;
|
import gov.nist.javax.sip.address.AddressImpl;
|
||||||
import gov.nist.javax.sip.address.SipUri;
|
import gov.nist.javax.sip.address.SipUri;
|
||||||
|
import gov.nist.javax.sip.header.Subject;
|
||||||
|
|
||||||
import javax.sip.header.FromHeader;
|
import javax.sip.header.FromHeader;
|
||||||
|
import javax.sip.header.Header;
|
||||||
import javax.sip.message.Request;
|
import javax.sip.message.Request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,6 +20,13 @@ public class SipUtils {
|
||||||
FromHeader fromHeader = (FromHeader)request.getHeader(FromHeader.NAME);
|
FromHeader fromHeader = (FromHeader)request.getHeader(FromHeader.NAME);
|
||||||
return getUserIdFromFromHeader(fromHeader);
|
return getUserIdFromFromHeader(fromHeader);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 从subject读取channelId
|
||||||
|
* */
|
||||||
|
public static String getChannelIdFromHeader(Request request) {
|
||||||
|
Header subject = request.getHeader("subject");
|
||||||
|
return ((Subject) subject).getSubject().split(":")[0];
|
||||||
|
}
|
||||||
|
|
||||||
public static String getUserIdFromFromHeader(FromHeader fromHeader) {
|
public static String getUserIdFromFromHeader(FromHeader fromHeader) {
|
||||||
AddressImpl address = (AddressImpl)fromHeader.getAddress();
|
AddressImpl address = (AddressImpl)fromHeader.getAddress();
|
||||||
|
|
Loading…
Reference in New Issue