Die SIP-Klassen SipServletRequest und SipServletResponse

Die Klassen SipServletRequest und SipServletResponse sind den Klassen HttpServletRequest und HttpServletResponse ähnlich.

Die Klassen SipServletRequest und SipServletResponse

Jede Klasse bietet Ihnen die erforderliche Funktionalität, um auf die Header in der SIP-Nachricht zuzugreifen und diese zu bearbeiten. Weil Anforderungen und Antworten asynchron sind, wird diese Klasse auch dazu verwendet, neue Antworten für die Anforderungen zu erstellen. Wenn Sie die Methode doInvite erweitern, wird nur die Klasse SipServletRequest an die Methode übergeben. Damit eine Antwort an den Client gesendet wird, müssen Sie zunächst die Methode createResponse für das Anforderungsobjekt (Request) aufrufen, um eine Antwort zu erstellen. Beispiel:

protected void doInvite(SipServletRequest req) throws
 javax.servlet.ServletException, java.io.IOException {
	
		//Eine vorläufige Trying-Antwort zurücksenden
		SipServletResponse resp = req.createResponse(100);
resp.send();

Da sie asynchron sind, können SIP-Servlets kompliziert aussehen. Aber selbst ein Code, der so einfach ist wie im oben aufgeführten Beispiel, kann eine Antwort an einen Client senden.

Es folgt ein komplexeres Beispiel eines SIP-Servlets. Mit der folgenden, in einem SIP-Servlet enthaltenen Methode blockiert das Servlet alle Aufrufe, die nicht von der Domäne beispiel.com empfangen werden.

protected void doInvite(SipServletRequest req) throws
 javax.servlet.ServletException, java.io.IOException {

//Prüfen, ob der URI ein SIP URI ist
	     if (req.getFrom().getURI().isSipURI()){
                 	   SipURI uri = (SipURI)req.getFrom.getURI();
                 if (!uri.getHost().equals("beispiel.com")) {
                    		//Für Aufrufe außerhalb der Domäne eine Ablehnungsantwort senden
                    req.createResponse(SipServletResponse.SC_FORBIDDEN).send();
                    return;
                 }
              }
              	//Alle anderen Anforderungen an ihr ursprüngliches Ziel weiterleiten
              req.getProxy().proxyTo(req.getRequestURI);
        }

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_servclass1
Dateiname:rsip_servclass1.html