package com.genersoft.iot.vmp.gb28181.transmit.request.impl;  
 | 
  
 | 
import java.text.ParseException;  
 | 
  
 | 
import javax.sip.InvalidArgumentException;  
 | 
import javax.sip.RequestEvent;  
 | 
import javax.sip.ServerTransaction;  
 | 
import javax.sip.SipException;  
 | 
import javax.sip.header.ExpiresHeader;  
 | 
import javax.sip.message.Request;  
 | 
import javax.sip.message.Response;  
 | 
  
 | 
import org.springframework.stereotype.Component;  
 | 
  
 | 
import com.genersoft.iot.vmp.gb28181.SipLayer;  
 | 
import com.genersoft.iot.vmp.gb28181.transmit.request.ISIPRequestProcessor;  
 | 
  
 | 
/**      
 | 
 * @Description:SUBSCRIBE请求处理器  
 | 
 * @author: songww  
 | 
 * @date:   2020年5月3日 下午5:31:20       
 | 
 */  
 | 
@Component  
 | 
public class SubscribeRequestProcessor implements ISIPRequestProcessor {  
 | 
  
 | 
    /**     
 | 
     * 处理SUBSCRIBE请求    
 | 
     *   
 | 
     * @param evt  
 | 
     * @param layer  
 | 
     * @param transaction  
 | 
     * @param config      
 | 
     */  
 | 
    @Override  
 | 
    public void process(RequestEvent evt, SipLayer layer, ServerTransaction transaction) {  
 | 
        Request request = evt.getRequest();  
 | 
  
 | 
        try {  
 | 
            Response response = null;  
 | 
            response = layer.getMessageFactory().createResponse(200, request);  
 | 
            if (response != null) {  
 | 
                ExpiresHeader expireHeader = layer.getHeaderFactory().createExpiresHeader(30);  
 | 
                response.setExpires(expireHeader);  
 | 
            }  
 | 
            System.out.println("response : " + response.toString());  
 | 
  
 | 
            if (transaction != null) {  
 | 
                transaction.sendResponse(response);  
 | 
                transaction.terminate();  
 | 
            } else {  
 | 
                System.out.println("processRequest serverTransactionId is null.");  
 | 
            }  
 | 
  
 | 
        } catch (ParseException e) {  
 | 
            e.printStackTrace();  
 | 
        } catch (SipException e) {  
 | 
            e.printStackTrace();  
 | 
        } catch (InvalidArgumentException e) {  
 | 
            e.printStackTrace();  
 | 
        }  
 | 
          
 | 
    }  
 | 
  
 | 
}  
 |