Recepción de mensaje no coincidentes en SIP (Session Initiation Protocol) en Liberty

Utilice la API UnmatchedMessageListener para recibir mensajes de solicitud o respuesta SIP (Session Initiation Protocol) entrantes que no puede procesar el contenedor SIP.

Antes de empezar

En el archivo server.xml, instale y configure la característica sipServlet-1.1. Para obtener más información, consulte Administración de Session Initiation Protocol (SIP) en Liberty.

Acerca de esta tarea

El contenedor SIP proporciona una interfaz que permite a una aplicación recibir todos los mensajes de solicitud o respuesta entrantes que no han podido coincidir con ningún diálogo existente. Cualquier mensaje de solicitud o respuesta que no ha coincidido con ningún diálogo existente se conoce como mensaje no coincidente.

Una solicitud no coincidente es una solicitud que tiene las etiquetas Para y De, pero que no se ha encontrado el diálogo relacionado en el contenedor SIP porque nunca se ha creado o este diálogo está en el estado invalidado. Cuando el contenedor SIP recibe una solicitud entrante no coincidente, el contenedor responde con una respuesta La llamada/transacción 481 no existe y, después, envía la solicitud entrante a la clase de escucha. La solicitud entrante se envía como parte del suceso UnmatchedRequestEvent, que se define en el paquete com.ibm.websphere.sip.unmatchedMessages.events. El suceso contiene una interfaz para obtener la solicitud entrante no coincidente y el ServletContext relacionado con la aplicación que recibe el suceso. La aplicación puede utilizar el ServletContext para crear una nueva actividad SIP. El escucha no puede crear una respuesta para la solicitud no coincidente recibida ni enviar por proxy la solicitud. Cuando se produce esta condición, se produce una excepción IllegalStateException en el contenedor SIP.

Una respuesta no coincidente es una respuesta que se recibe en el contenedor SIP, pero la respuesta no coincide con ninguna solicitud saliente. Antes de que el contenedor SIP descarte la respuesta no coincidente, dicha respuesta se envía al escucha UnmatchedMessageListener como parte del sucesos UnmatchedResponseEvent. Al igual que en la solicitud no coincidente, la aplicación obtiene acceso a la respuesta no coincidente y al ServletContext de la aplicación relacionada.

Si una aplicación tiene más de un escucha UnmatchedMessageListener definido, cada escucha se inicia de forma independiente entre sí. Si tiene más de una aplicación en un solo servidor de aplicaciones y varias aplicaciones tienen escuchas UnmatchedMessageListener, todos los escuchas se inician en un orden aleatorio. Si una aplicación envía una solicitud a otra aplicación en el mismo servidor como parte de la composición de una aplicación, y el contenedor SIP determina que esta solicitud es una solicitud que no puede ser manejada por el contenedor SIP, se activan todos los escuchas UnmatchedMessageListener en dicho servidor.

La API UnmatchedMessageListener está definida en el archivo com.ibm.websphere.appserver.api.sipServlet del paquete com.ibm.websphere.sip.unmatchedMessages.

Procedimiento

Puede utilizar uno de los métodos siguientes en el código de aplicación para acceder a la API UnmatchedMessageListener:


Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_sip_unmatchedmsg_api.html