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