Administración de Session Initiation Protocol (SIP) en Liberty

Puede configurar SIP en Liberty añadiendo y configurando elementos en el archivo server.xml.

Antes de empezar

Instale la característica sipServlet-1.1 en el servidor Liberty. Para obtener más información, consulte Añadir y eliminar características de Liberty.

Acerca de esta tarea

Esta tarea describe cómo configurar manualmente SIP para Liberty en el archivo server.xml. De forma alternativa, puede configurar SIP utilizando las herramientas de desarrollador que habilitan automáticamente todas las configuraciones en el archivo server.xml. Para obtener más información, consulte WebSphere Developer Tools > Desarrollo > Desarrollo de aplicaciones SIP.

Si desea más información sobre los elementos y atributos que puede utilizar para configurar SIP en Liberty, consulte la documentación para el Servlet Sip.

Procedimiento

  1. En el archivo server.xml, configure el contenedor SIP añadiendo un elemento sipContainer.

    Si desea una lista completa de atributos y sus descripciones, consulte Elemento sipContainer.

    <sipContainer invalidateSessionOnShutdown="true" msgArrivalTimeAttr="true" markInternalResponse="true"></sipContainer>
  2. Configure la pila SIP añadiendo un elemento sipStack. Puede configurar el comportamiento como respuestas automáticas, información de mensaje y reutilización de conexión.

    Si desea una lista completa de atributos y sus descripciones, consulte Elemento sipStack.

    <sipStack hideMessageBody="true" hideMessageReqUri="true"
        auto100OnInvite="false" auto482OnMergedRequests="true"
        forceConnectionReuse="false" acceptNonUtf8Bytes="true"
        pathMtu="1600" compactHeaders="API">
        <commaSeparatedHeaders>Comma separated headers</commaSeparatedHeaders>
        <hideMessageHeaders>iup</hideMessageHeaders>
        <sipQuotedParameters>Require</sipQuotedParameters>
    </sipStack>
    Los temporizadores SIP proporcionan un mecanismo para la caducidad de sesión. Puede establecer valores para los temporizadores SIP que son diferentes de los valores predeterminados especificados en RFC 3261 especificando los atributos de temporizador en el elemento sipStack.
    <sipStack timerT1="500" timerT2="4000" timerT4="5000" timerA="500" timerB="32000" timerD="32000"
    timerE="500" timerF="32000" timerG="500" timerH="32000" timerI="5000" timerJ="32000" timerK="5000"></sipStack>
  3. Configure el direccionador de aplicaciones SIP añadiendo un elemento sipApplicationRouter. Cuando configure un direccionador de aplicaciones SIP, puede utilizar el direccionador de aplicaciones predeterminado (DAR) o crear una direccionador de aplicaciones personalizado. El componente DAR utiliza un archivo de texto de configuración que se modela como un archivo de propiedades Java™ para definir el orden en el cual el direcccionador de aplicaciones envía solicitudes SIP a aplicaciones.

    Si no configura un direccionador de aplicaciones y despliega manualmente las aplicaciones, las aplicaciones se desencadenan en el orden en el que se han desplegado las aplicaciones. Si despliega varias aplicaciones a través del archivo server.xml, no puede definir el orden de la aplicación.

    • Para utilizar el componente DAR con un archivo de configuración DAR, especifique la ubicación del archivo .properties de DAR en el atributo sipDarConfiguration del elemento sipApplicationRouter.
      <sipApplicationRouter sipDarConfiguration="pathToDar.properties"></sipApplicationRouter>
    • Para utilizar un direccionador de aplicaciones personalizado, configure el direccionador en el archivo server.xml:
      1. Añada la característica bells-1.0 al archivo server.xml.
        <featureManager>
             <feature>bells-1.0</feature>
        </featureManager>
        Si desea más información, consulte la documentación para bells-1.0.
      2. En el archivo server.xml, añada el archivo JAR del direccionador de aplicaciones personalizado como una biblioteca compartida y añada la configuración de bell para el servicio javax.servlet.sip.ar.spi.SipApplicationRouterProvider.
        <library id="carLib" name="carLib" description="Custom App Router Library">
             <file name="pathToJar.jar"></file>
        </library>
        <bell libraryRef="carLib">
        	<service>javax.servlet.sip.ar.spi.SipApplicationRouterProvider</service>
        </bell>
        Si desea más información sobre bibliotecas compartidas, consulte Bibliotecas compartidas
      3. En el elemento sipApplicationRouter, establezca el atributo carProvider en el nombre completo de la clase del proveedor de direccionador de aplicaciones personalizado.
        <sipApplicationRouter carProvider="example.example"></sipApplicationRouter>
    Puede especificar el código de respuesta de error que envía el contenedor SIP, si no se puede correlacionar ningún servlet activo con una solicitud inicial entrante añadiendo el atributo sipNoRouteErrorCode al elemento sipApplicationRouter.
    <sipApplicationRouter carProvider="example.example" sipNoRouteErrorCode="403"></sipApplicationRouter>

    Si desea una lista completa de atributos y sus descripciones, consulte Elemento sipApplicationRouter.

  4. Configure los puntos finales SIP añadiendo un elemento sipEndpoint. Puede configurar puertos personalizados, hosts y el comportamiento de enlace. Cualquier punto final SIP que configura altera temporalmente el punto final predeterminado.

    Si desea una lista completa de atributos y sus descripciones, consulte Elemento sipEndpoint.

    <sipEndpoint host="localhost" sipTCPPort="5060" bindRetries="60" bindRetriesDelay="5000"></sipEndpoint>
    Nota: La seguridad de la capa de transporte (TLS) está inhabilita de forma predeterminada. Para habilitar TLS para su contenedor SIP, habilite y configure la comunicación SSL para el servidor Liberty. Para obtener más información, consulte Habilitación de la comunicación SSL en Liberty.
  5. Configure el rendimiento de SIP añadiendo un elemento sipTasksDispatcher. Puede configurar el número de tareas SIP que se pueden ejecutar simultáneamente. Una tarea de aplicación SIP es una secuencia de código de aplicación que se ejecuta en serie en el contenedor SIP en una sola hebra. Por ejemplo, la implementación de la aplicación de un método SipServlet.doInvite() o un método SipTimerListener.timeout() se consideran cada una como una sola tarea, si el código de la aplicación al que se llama desde estos métodos se ejecuta em serie en una hebra Liberty gestionada proporcionada por el contenedor. El número máximo real de tareas SIP simultáneas está limitado por el número máximo de hebras Liberty gestionadas.

    Si desea una lista completa de atributos y sus descripciones, consulte Elemento sipTasksDispatcher.

    <sipContainer>
         <sipTasksDispatcher concurrentContainerTasks="15"/>
    </sipContainer>
  6. Si desea resolver URI de SIP utilizando los registros de NAPTR (Naming Authority Pointer) del Sistema de nombres de dominio (DNS), configure un programa de resolución de dominios.
    1. Añada y configure un elemento domainResolver. Si configura este elemento, los URI de SIP se resuelven a través del DNS en la dirección IP, puerto y protocolo de transporte del siguiente salto de contacto.
      Nota: SIP no soporta el uso de procedimientos de DNS para que un servidor envíe una respuesta a un cliente de copia de seguridad, si el cliente principal falla.

      Si desea una lista completa de atributos y sus descripciones, consulte Elemento domainResolver.

      <domainResolver dnsAutoResolve="true">
           <dnsServers>dns.server.com</dnsServers>
      </domainResolver>
    2. Configure el servidor DNS para que funcione con el contenedor SIP. El ejemplo siguiente es un archivo BIND db para configurar el soporte RFC 3263 en un servidor DNS.
      ; Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
      ; Copyright (C) 2001  Internet Software Consortium.
      ;
      ; Permission to use, copy, modify, and distribute this software for any
      ; purpose with or without fee is hereby granted, provided that the above
      ; copyright notice and this permission notice appear in all copies.
      ;
      ; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
      ; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
      ; AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
      ; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
      ; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
      ; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
      ; PERFORMANCE OF THIS SOFTWARE.
      
      ; $Id: include.db,v 1.2.206.1 2004/03/06 10:22:13 marka Exp $
      
      ; Test $INCLUDE current domain name and origin semantics
      
      example.com. 43200 IN SOA ns.example.com. email.example.com. ( 2003032001 10800 3600 604800 86400 )
      ;
      example.com.             43200 IN NS      ns.example.com.
      ;
      ns.example.com.          43200 IN A       10.0.0.20
      sipserver1.example.com.  43200 IN A       10.0.0.21
      sipserver2.example.com.  43200 IN A       10.0.0.22
      sipserver3.example.com.  43200 IN A       10.0.0.23
      ;
      router.example.com.        43200  IN CNAME sipserver3
      ;
      sipserver1.example.com.  43200 IN AAAA    fec0:0:0:0:0:0:0:abcd
      sipserver2.example.com.  43200 IN AAAA    fec0:0:0:0:0:0:0:abba
      ;
      _sip._udp.example.com.   43200 IN SRV 2 0 5060  sipserver1.example.com.
      _sip._udp.example.com.   43200 IN SRV 2 0 5060  sipserver2.example.com.
      _sip._tcp.example.com.   43200 IN SRV 1 4 5060  sipserver1.example.com.
      _sip._tcp.example.com.   43200 IN SRV 1 2 5060  sipserver2.example.com.
      _sips._tcp.example.com.  43200 IN SRV 0 1 5061  sipserver1.example.com.
      _sips._tcp.example.com.  43200 IN SRV 0 0 5061  sipserver2.example.com.
      ;
      example.com. 43200 IN NAPTR 0 0 "s" "SIPS+D2T" "" _sips._tcp.example.com.
      example.com. 43200 IN NAPTR 1 0 "s" "SIP+D2T"  "" _sip._tcp.example.com.
      example.com. 43200 IN NAPTR 2 0 "s" "SIP+D2U"  "" _sip._udp.example.com.
    Si desea más información sobre cómo realizar búsquedas de DNS en las aplicaciones SIP, consulte Realización de búsquedas de DNS en aplicaciones SIP (Session Initiation Protocol) en Liberty.

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_sip_adm.html