Beispiel: SIP-Servlet-Klasse SendOnServlet

Die Klasse SendOnServlet ist ein einfaches SIP-Servlet, das folgende Basisfunktion ausführt: Es wird bei jedem INVITE aufgerufen und sendet die Anforderung von dort weiter.

Klasse "SendOnServlet"

Auf der Basis bestimmter Kriterien könnten Funktionen zum Protokollieren dieser Invite-Anforderung oder zum Zurückweisen des INVITE auf einfache Weise eingefügt werden.

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 {
     //Anforderung weitersenden
     req.getProxy().proxyTo(req.getRequestURI);
  }
}

Die Methode doInvite könnte so geändert werden, dass Sie eine bestimmte Funktion ausführt, beispielsweise die Invite-Anforderung auf der Basis bestimmter Kriterien zurückweist. Im folgenden Beispiel werden alle Anforderungen von Domänen außerhalb von example.com mit der Antwort "Forbidden" abgelehnt.

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”)) {
				//Für Aufrufe außerhalb der Domäne eine Ablehnungsantwort senden
req.createResponse(SipServletResponse.SC_FORBIDDEN, “Calls outside example.com not accepted”).send();
return;
	   }
	}
		//Alle anderen Anforderungen an ihr ursprüngliches Ziel weiterleiten
		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>

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsip_servletsample2
Dateiname:rsip_servletsample2.html