| package com.genersoft.iot.vmp.gb28181.transmit.request.impl;  | 
|   | 
| import javax.sip.Dialog;  | 
| import javax.sip.InvalidArgumentException;  | 
| import javax.sip.RequestEvent;  | 
| import javax.sip.ServerTransaction;  | 
| import javax.sip.SipException;  | 
| import javax.sip.message.Request;  | 
|   | 
| import org.springframework.stereotype.Component;  | 
|   | 
| import com.genersoft.iot.vmp.gb28181.SipLayer;  | 
| import com.genersoft.iot.vmp.gb28181.transmit.request.ISIPRequestProcessor;  | 
|   | 
| import gov.nist.javax.sip.header.CSeq;  | 
|   | 
| /**      | 
|  * @Description:ACK请求处理器    | 
|  * @author: songww  | 
|  * @date:   2020年5月3日 下午5:31:45       | 
|  */  | 
| @Component  | 
| public class AckRequestProcessor implements ISIPRequestProcessor {  | 
|       | 
|     /**     | 
|      * 处理  ACK请求  | 
|      *   | 
|      * @param evt  | 
|      * @param layer  | 
|      * @param transaction  | 
|      * @param config      | 
|      */    | 
|     @Override  | 
|     public void process(RequestEvent evt, SipLayer layer, ServerTransaction transaction) {  | 
|         Request request = evt.getRequest();  | 
|         Dialog dialog = evt.getDialog();  | 
|         try {  | 
|             Request ackRequest = null;  | 
|             CSeq csReq = (CSeq) request.getHeader(CSeq.NAME);  | 
|             ackRequest = dialog.createAck(csReq.getSeqNumber());  | 
|             dialog.sendAck(ackRequest);  | 
|             System.out.println("send ack to callee:" + ackRequest.toString());  | 
|         } catch (SipException e) {  | 
|             e.printStackTrace();  | 
|         } catch (InvalidArgumentException e) {  | 
|             e.printStackTrace();  | 
|         }  | 
|           | 
|     }  | 
|   | 
| }  |