Classes SipServletRequest et SipServletResponse SIP dans Liberty

Les classes SipServletRequest et SipServletResponse sont similaires aux classes HttpServletRequest et HttpServletResponse qui sont utilisées lorsque vous développez des applications Web.

Chaque classe vous permet d'accéder aux en-têtes des messages SIP et de les manipuler. En raison de la nature asynchrone des demandes et des réponses, la classe SipServletRequest crée également de nouvelles réponses pour les demandes. Lorsque vous étendez la méthode doInvite, seule la classe SipServletRequest est transmise à la méthode. Pour envoyer une réponse au client, vous devez appeler la méthode createResponse sur l'objet Request afin de créer une réponse, comme illustré dans l'exemple suivant :

protected void doInvite(SipServletRequest req) throws
 javax.servlet.ServletException, java.io.IOException {
	
	//send back a provisional Trying response
	SipServletResponse resp = req.createResponse(100);
resp.send();

En raison de leur nature asynchrone, les servlets SIP peuvent sembler compliquées ; toutefois, quelque chose aussi simple que l'exemple de réponse précédent envoie une réponse à un client.

L'exemple suivant illustre un servlet SIP plus complexe. Avec la méthode suivante incluse dans un servlet SIP, le servlet bloque tous les appels qui ne proviennent pas du domaine example.com.

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

//check to make sure that the URI is a SIP URI
	     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).send();
                    return;
                 }
              }
              //proxy all other requests on to their original destination
              req.getProxy().proxyTo(req.getRequestURI);
        }

Pour plus d'informations sur ces classes, voir la spécification SIP Servlet 1.1, JSR 289.


Icône indiquant le type de rubrique Rubrique de référence

Nom du fichier : rwlp_sip_servclass.html