|  |  |  | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.utils.SipUtils; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.utils.GitUtil; | 
|---|
|  |  |  | import gov.nist.javax.sip.SipProviderImpl; | 
|---|
|  |  |  | import gov.nist.javax.sip.message.SIPRequest; | 
|---|
|  |  |  | import org.slf4j.Logger; | 
|---|
|  |  |  | import org.slf4j.LoggerFactory; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Qualifier; | 
|---|
|  |  |  | import org.springframework.stereotype.Component; | 
|---|
|  |  |  | import org.springframework.util.ObjectUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.sip.SipException; | 
|---|
|  |  |  | import javax.sip.SipFactory; | 
|---|
|  |  |  | import javax.sip.header.CallIdHeader; | 
|---|
|  |  |  | import javax.sip.header.UserAgentHeader; | 
|---|
|  |  |  | import javax.sip.header.ViaHeader; | 
|---|
|  |  |  | import javax.sip.message.Message; | 
|---|
|  |  |  | import javax.sip.message.Request; | 
|---|
|  |  |  | import javax.sip.message.Response; | 
|---|
|  |  |  | import java.net.InetAddress; | 
|---|
|  |  |  | import java.text.ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public CallIdHeader getNewCallIdHeader(String ip, String transport){ | 
|---|
|  |  |  | return  transport.equalsIgnoreCase("TCP") ? sipLayer.getTcpSipProvider(ip).getNewCallId() | 
|---|
|  |  |  | : sipLayer.getUdpSipProvider(ip).getNewCallId(); | 
|---|
|  |  |  | if (ObjectUtils.isEmpty(transport)) { | 
|---|
|  |  |  | return sipLayer.getUdpSipProvider().getNewCallId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SipProviderImpl sipProvider; | 
|---|
|  |  |  | if (ObjectUtils.isEmpty(ip)) { | 
|---|
|  |  |  | sipProvider = transport.equalsIgnoreCase("TCP") ? sipLayer.getTcpSipProvider() | 
|---|
|  |  |  | : sipLayer.getUdpSipProvider(); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | sipProvider = transport.equalsIgnoreCase("TCP") ? sipLayer.getTcpSipProvider(ip) | 
|---|
|  |  |  | : sipLayer.getUdpSipProvider(ip); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (sipProvider == null) { | 
|---|
|  |  |  | sipProvider = sipLayer.getUdpSipProvider(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (sipProvider != null) { | 
|---|
|  |  |  | return sipProvider.getNewCallId(); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | logger.warn("[新建CallIdHeader失败], ip={}, transport={}", ip, transport); | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|