| | |
| | | import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; |
| | | import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract; |
| | | import com.genersoft.iot.vmp.gb28181.utils.SipUtils; |
| | | import com.genersoft.iot.vmp.utils.GitUtil; |
| | | import gov.nist.javax.sip.ResponseEventExt; |
| | | import gov.nist.javax.sip.message.SIPResponse; |
| | | import gov.nist.javax.sip.stack.SIPClientTransaction; |
| | | import gov.nist.javax.sip.stack.SIPDialog; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | @Autowired |
| | | private SipFactory sipFactory; |
| | | |
| | | @Autowired |
| | | private GitUtil gitUtil; |
| | | |
| | | @Override |
| | | public void afterPropertiesSet() throws Exception { |
| | | // 添加消息处理的订阅 |
| | |
| | | // 下发ack |
| | | if (statusCode == Response.OK) { |
| | | ResponseEventExt event = (ResponseEventExt)evt; |
| | | SIPDialog dialog = (SIPDialog)evt.getDialog(); |
| | | SIPDialog dialog = new SIPDialog((SIPClientTransaction) event.getClientTransaction(), (SIPResponse) event.getResponse()); |
| | | CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME); |
| | | Request reqAck = dialog.createAck(cseq.getSeqNumber()); |
| | | SipURI requestURI = (SipURI) reqAck.getRequestURI(); |
| | |
| | | } |
| | | requestURI.setPort(event.getRemotePort()); |
| | | reqAck.setRequestURI(requestURI); |
| | | UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); |
| | | UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory, gitUtil); |
| | | reqAck.addHeader(userAgentHeader); |
| | | Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); |
| | | reqAck.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); |