SIP-Klassen "SipServletRequest" und "SipServletResponse" in Liberty

Die Klassen "SipServletRequest" und "SipServletResponse" ähneln den Klassen "HttpServletRequest" und "HttpServletResponse", die beim Entwickeln von Webanwendungen verwendet werden.

Jede Klasse ermöglicht Ihnen, auf die Header in der SIP-Nachricht zuzugreifen und diese zu bearbeiten. Aufgrund der Asynchronität der Anforderungen und Antworten erstellt die Klasse "SipServletRequest" außerdem neue Antworten für die Anforderungen. Wenn Sie die Methode "doInvite" erweitern, wird nur die Klasse "SipServletRequest" an die Methode übergeben. Wenn eine Antwort an den Client gesendet werden soll, muss die Methode "createResponse" im Anforderungsobjekt aufgerufen werden, um eine Antwort zu erstellen. Dies veranschaulicht das folgende Beispiel:

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

Aufgrund ihrer Asynchronität können SIP-Servlets zunächst kompliziert erscheinen, doch ein so einfaches Codebeispiel wie das obige sendet eine Antwort an einen Client.

Das folgende Beispiel zeigt ein komplexeres SIP-Servlet. Wenn die folgende Methode in einem SIP-Servlet enthalten ist, blockiert das Servlet alle Rufe, die nicht von der Domäne example.com ausgehen.

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

// Überprüfen, dass der URI ein SIP-URI ist
	     if (req.getFrom().getURI().isSipURI()){
                 SipURI uri = (SipURI)req.getFrom.getURI();
                 if (!uri.getHost().equals("example.com")) {
                    // Antwort "Forbidden" für Rufe außerhalb der Domäne senden
                    req.createResponse(SipServletResponse.SC_FORBIDDEN).send();
                    return;
                 }
              }
              // Alle anderen Anforderungen an ihr ursprüngliches Ziel weiterleiten
              req.getProxy().proxyTo(req.getRequestURI);
        }

Informationen zu diesen Klassen finden Sie in SIP Servlet Specification 1.1 unter JSR 289.


Symbol das den Typ des Artikels anzeigt. Referenzartikel



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