+

Search Tips   |   Advanced Search

Example: SIP servlet SendOnServlet class


The SendOnServlet class is a simple SIP servlet that would perform the basic function of being called on each INVITE and sending the request on from there.

 

SendOnServlet class

Function could be inserted to log this invite request or reject the INVITE based on some specific criteria.

package com.example;
 import java.io.IOException;
 import javax.servlet.sip.*;
 import java.servlet.ServletException;
 public class SendOnServlet extends SipServlet {
  public void doInvite(SipServletRequest req) 
       throws ServletException, java.io.IOException {
     
//send on the request
     req.getProxy().proxyTo(req.getRequestURI);
  }
}

The doInvite method could be altered to do something such as reject the invite for some specific criteria simply. In the example doInvite method below, all requests from domains outside of example.com will be rejected with a Forbidden response.

   public void doInvite(SipServletRequest req) throws ServletException, java.io.IOException { if (req.getFrom().getURI().isSipURI()){
     SipURI uri = (SipURI)req.getFrom.getURI();
     if (!uri.getHost().equals(“example.com”)) {
        domain req.createResponse(SipServletResponse.SC_FORBIDDEN, “Calls outside example.com not accepted”).send();
 return;
     }
  }
  
//proxy all other requests on to their original destination
  req.getProxy().proxyTo(req.getRequestURI());


SendOnServlet deployment descriptor: <sip-app> <display-name>Send-on Servlet</display-name> <servlet> <servlet-name>SendOnServlet</servlet-name> <servlet-class>com.example.SendOnServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SendOnServlet</servlet-name> <pattern> <equal> <var>request.method</var> <value>INVITE</value> </equal> </pattern> </servlet-mapping> </sip-app>





 

Related tasks


Browse all SIP topics
SIP servlets

 

Related


SIP SipServletRequest and SipServletResponse classes
SIP SipSession and SipApplicationSession classes
Example: SIP servlet simple proxy
Example: SIP servlet Proxy servlet class