InviteRequestProcessor类中,channelid从invite消息的header subject获取,不再从第一行request line获取。原因是和第三方平台对接时,发送的invite消息第一行为国标平台编码而不是设备通道编码,导致报错通道不存在,返回404。

This commit is contained in:
李防
2022-03-07 14:20:27 +08:00
parent cbea5f64c9
commit 335916f1f1
2 changed files with 14 additions and 1 deletions

View File

@@ -2,8 +2,10 @@ package com.genersoft.iot.vmp.gb28181.utils;
import gov.nist.javax.sip.address.AddressImpl;
import gov.nist.javax.sip.address.SipUri;
import gov.nist.javax.sip.header.Subject;
import javax.sip.header.FromHeader;
import javax.sip.header.Header;
import javax.sip.message.Request;
/**
@@ -18,6 +20,13 @@ public class SipUtils {
FromHeader fromHeader = (FromHeader)request.getHeader(FromHeader.NAME);
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) {
AddressImpl address = (AddressImpl)fromHeader.getAddress();