Ejemplo: Clase del servlet SIP SendOnServlet

La clase SendOnServlet es un servlet SIP sencillo que puede realizar la función básica de ser llamada en cada INVITE y enviar la solicitud a partir de ahí.

Clase SendOnServlet

La función se puede insertar fácilmente para anotar cronológicamente esta solicitud INVITE o rechazar la solicitud INVITE según algún criterio específico.

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 {
     //enviar la solicitud
     req.getProxy().proxyTo(req.getRequestURI);
  }
}

El método doInvite puede alterarse para hacer algo como, por ejemplo, rechazar la solicitud INVITE simplemente para un criterio específico. En el ejemplo siguiente, todas las solicitudes de dominios que estén fuera de example.com se rechazarán con una respuesta Forbidden.

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”)) {
		//enviar respuesta prohibida para llamadas fuera del dominio
req.createResponse(SipServletResponse.SC_FORBIDDEN, “No se aceptan llamadas fuera de example.com”).send();
return;
	   }
	}
	//enviar mediante proxy las otras solicitudes a su destino original
		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>

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsip_servletsample2
File name: rsip_servletsample2.html