Liberty의 SIP SipServletRequest 및 SipServletResponse 클래스

SipServletRequest 및 SipServletResponse 클래스는 웹 애플리케이션을 개발할 때 사용되는 HttpServletRequest 및 HttpServletResponse 클래스와 유사합니다.

각각의 클래스는 SIP 메시지의 헤더에 액세스하여 이를 조작하는 기능을 제공합니다. 요청 및 응답의 비동기 특성 때문에 SipServletRequest 클래스는 요청에 대한 새 응답도 작성합니다. doInvite 메소드를 확장할 때는 SipServletRequest 클래스만 해당 메소드에 전달됩니다. 클라이언트에 응답을 전송하려면, 다음 예에 표시된 대로 요청 오브젝트에서 createResponse 메소드를 호출하여 응답을 작성해야 합니다.

protected void doInvite(SipServletRequest req) throws
 javax.servlet.ServletException, java.io.IOException {
	
	//send back a provisional Trying response
	SipServletResponse resp = req.createResponse(100);
resp.send();

비동기 특성 때문에 SIP 서블릿은 복잡한 것처럼 보일 수 있습니다. 그러나 이전 코드 샘플처럼 단순하게 클라이언트에 응답이 전송됩니다.

다음 예는 보다 복잡한 SIP 서블릿을 표시합니다. SIP 서블릿에 포함되어 있는 다음 메소드를 사용하여, 서블릿은 example.com 도메인에서 나오지 않은 모든 호출을 차단합니다.

protected void doInvite(SipServletRequest req) throws
 javax.servlet.ServletException, java.io.IOException {

//check to make sure that the URI is a SIP URI
	     if (req.getFrom().getURI().isSipURI()){
                 SipURI uri = (SipURI)req.getFrom.getURI();
                 if (!uri.getHost().equals("example.com")) {
                    //send forbidden response for calls outside domain
                    req.createResponse(SipServletResponse.SC_FORBIDDEN).send();
                    return;
                 }
              }
              //proxy all other requests on to their original destination
              req.getProxy().proxyTo(req.getRequestURI);
        }

이 클래스에 대한 자세한 정보는 SIP Servlet Specification 1.1, JSR 289의 내용을 참조하십시오.


주제의 유형을 표시하는 아이콘 참조 주제

파일 이름: rwlp_sip_servclass.html