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 easily 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 following example, 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")) { //send forbidden response for calls outside 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>
Browse all SIP topics SIP servlets SIP SipServletRequest and SipServletResponse classes SIP SipSession and SipApplicationSession classes Example: SIP servlet simple proxy Example: SIP servlet Proxy servlet class