Protocolo de Iniciacion de Sesion

AjustarCompartirImprimirCitar
Protocolo de comunicaciones de voz sobre IP

El Protocolo de inicio de sesión (SIP) es un protocolo de señalización utilizado para iniciar, mantener y terminar sesiones de comunicación que incluyen aplicaciones de voz, video y mensajería. SIP se utiliza en telefonía por Internet, en sistemas privados de telefonía IP, así como en llamadas de telefonía móvil sobre LTE (VoLTE).

El protocolo define el formato específico de los mensajes intercambiados y la secuencia de comunicaciones para la cooperación de los participantes. SIP es un protocolo basado en texto que incorpora muchos elementos del Protocolo de transferencia de hipertexto (HTTP) y el Protocolo simple de transferencia de correo (SMTP). Una llamada establecida con SIP puede constar de varios flujos de medios, pero no se requieren flujos separados para aplicaciones, como la mensajería de texto, que intercambian datos como carga útil en el mensaje SIP.

SIP funciona junto con varios otros protocolos que especifican y transportan los medios de la sesión. Por lo general, la negociación de parámetros y tipos de medios y la configuración de medios se realizan con el Protocolo de descripción de sesión (SDP), que se transporta como carga útil en los mensajes SIP. SIP está diseñado para ser independiente del protocolo de capa de transporte subyacente y se puede utilizar con el Protocolo de datagramas de usuario (UDP), el Protocolo de control de transmisión (TCP) y el Protocolo de transmisión de control de flujo (SCTP). Para transmisiones seguras de mensajes SIP a través de enlaces de red inseguros, el protocolo puede cifrarse con Transport Layer Security (TLS). Para la transmisión de flujos de medios (voz, video), la carga útil SDP transportada en mensajes SIP generalmente emplea el Protocolo de transporte en tiempo real (RTP) o el Protocolo de transporte seguro en tiempo real (SRTP).

Historia

SIP fue diseñado originalmente por Mark Handley, Henning Schulzrinne, Eve Schooler y Jonathan Rosenberg en 1996 para facilitar el establecimiento de sesiones multimedia de multidifusión en Mbone. El protocolo se estandarizó como RFC 2543 en 1999. En noviembre de 2000, SIP se aceptó como protocolo de señalización 3GPP y elemento permanente de la arquitectura del subsistema multimedia IP (IMS) para servicios multimedia de transmisión basados en IP en redes celulares. En junio de 2002, la especificación se revisó en RFC 3261 y desde entonces se han publicado varias extensiones y aclaraciones.

SIP se diseñó para proporcionar un protocolo de establecimiento de llamadas y señalización para comunicaciones basadas en IP que admite las funciones y características de procesamiento de llamadas presentes en la red telefónica pública conmutada (PSTN) con la visión de admitir nuevas aplicaciones multimedia. Se ha ampliado para videoconferencias, distribución de medios de transmisión, mensajería instantánea, información de presencia, transferencia de archivos, fax por Internet y juegos en línea.

SIP se distingue por sus defensores por tener raíces en la comunidad de Internet más que en la industria de las telecomunicaciones. SIP ha sido estandarizado principalmente por el Grupo de Trabajo de Ingeniería de Internet (IETF), mientras que otros protocolos, como H.323, se han asociado tradicionalmente con la Unión Internacional de Telecomunicaciones (UIT).

Operación de protocolo

Un ejemplo de intercambio de mensajes SIP entre dos usuarios, Alice y Bob, para establecer y terminar una sesión de medios directos.

SIP solo está involucrado en las operaciones de señalización de una sesión de comunicación de medios y se usa principalmente para establecer y finalizar llamadas de voz o video. SIP se puede utilizar para establecer sesiones bipartitas (unidifusión) o multipartitas (multidifusión). También permite la modificación de llamadas existentes. La modificación puede implicar cambiar direcciones o puertos, invitar a más participantes y agregar o eliminar flujos de medios. SIP también ha encontrado aplicaciones en las aplicaciones de mensajería, como la mensajería instantánea y la suscripción y notificación de eventos.

SIP funciona junto con varios otros protocolos que especifican el formato y la codificación de los medios y que transportan los medios una vez que se establece la llamada. Para el establecimiento de llamadas, el cuerpo de un mensaje SIP contiene una unidad de datos del Protocolo de descripción de sesión (SDP), que especifica el formato de medios, el códec y el protocolo de comunicación de medios. Los flujos de medios de voz y video generalmente se transportan entre los terminales utilizando el Protocolo de transporte en tiempo real (RTP) o el Protocolo de transporte seguro en tiempo real (SRTP).

Todos los recursos de una red SIP, como agentes de usuario, enrutadores de llamadas y buzones de correo de voz, se identifican mediante un identificador uniforme de recursos (URI). La sintaxis del URI sigue la sintaxis estándar general que también se usa en servicios web y correo electrónico. El esquema de URI utilizado para SIP es sip y un SIP URI típico tiene la forma sip:nombre de usuario@nombre de dominio o sip:nombre de usuario@puerto de host, donde domainname requiere registros DNS SRV para ubicar los servidores para el dominio SIP, mientras que hostport puede ser una dirección IP o un nombre de dominio completo del host y el puerto. Si se requiere transmisión segura, se utiliza el esquema sips.

SIP emplea elementos de diseño similares al modelo de transacción de solicitud y respuesta HTTP. Cada transacción consta de una solicitud de cliente que invoca un método o función particular en el servidor y al menos una respuesta. SIP reutiliza la mayoría de los campos de encabezado, las reglas de codificación y los códigos de estado de HTTP, proporcionando un formato legible basado en texto.

SIP puede ser transportado por varios protocolos de capa de transporte, incluido el Protocolo de control de transmisión (TCP), el Protocolo de datagramas de usuario (UDP) y el Protocolo de transmisión de control de flujo (SCTP). Los clientes SIP normalmente usan TCP o UDP en los números de puerto 5060 o 5061 para el tráfico SIP a servidores y otros puntos finales. El puerto 5060 se usa comúnmente para el tráfico de señalización no encriptado, mientras que el puerto 5061 se usa normalmente para el tráfico encriptado con Transport Layer Security (TLS).

Las redes de telefonía basadas en SIP a menudo implementan funciones de procesamiento de llamadas del Signaling System 7 (SS7), para las cuales existen extensiones de protocolo SIP especiales, aunque los dos protocolos en sí son muy diferentes. SS7 es un protocolo centralizado, caracterizado por una arquitectura de red central compleja y terminales tontos (teléfonos tradicionales). SIP es un protocolo cliente-servidor de pares equipotentes. Las funciones SIP se implementan en los puntos finales de comunicación, mientras que la arquitectura SS7 tradicional se usa solo entre los centros de conmutación.

Elementos de red

Los elementos de red que utilizan el Protocolo de inicio de sesión para la comunicación se denominan agentes de usuario SIP. Cada agente de usuario (UA) realiza la función de un cliente de agente de usuario (UAC) cuando solicita una función de servicio, y la de un servidor de agente de usuario (UAS) al responder a una solicitud. Por lo tanto, dos extremos SIP cualesquiera pueden, en principio, operar sin ninguna infraestructura SIP intermedia. Sin embargo, por motivos operativos de red, para proporcionar servicios públicos a los usuarios y para servicios de directorio, SIP define varios tipos específicos de elementos de servidor de red. Cada uno de estos elementos de servicio también se comunica dentro del modelo cliente-servidor implementado en los clientes y servidores del agente de usuario.

Agente de usuario

Un agente de usuario es un extremo de red lógica que envía o recibe mensajes SIP y administra sesiones SIP. Los agentes de usuario tienen componentes de cliente y servidor. El cliente de agente de usuario (UAC) envía solicitudes SIP. El servidor de agente de usuario (UAS) recibe solicitudes y devuelve una respuesta SIP. A diferencia de otros protocolos de red que fijan los roles de cliente y servidor, por ejemplo, en HTTP, en el que un navegador web solo actúa como cliente y nunca como servidor, SIP requiere que ambos pares implementen ambos roles. Los roles de UAC y UAS solo duran la duración de una transacción SIP.

Un teléfono SIP es un teléfono IP que implementa las funciones de cliente y servidor de un agente de usuario SIP y proporciona las funciones de llamada tradicionales de un teléfono, como marcar, responder, rechazar, retener y transferir llamadas. Los teléfonos SIP pueden implementarse como un dispositivo de hardware o como un softphone. A medida que los proveedores implementan cada vez más SIP como una plataforma de telefonía estándar, la distinción entre teléfonos SIP basados en hardware y software se vuelve borrosa y los elementos SIP se implementan en las funciones básicas de firmware de muchos dispositivos de comunicación con capacidad IP, como los teléfonos inteligentes.

En SIP, como en HTTP, el agente de usuario puede identificarse mediante un campo de encabezado de mensaje (User-Agent), que contiene una descripción de texto del software, hardware o el nombre del producto. El campo de agente de usuario se envía en mensajes de solicitud, lo que significa que el servidor SIP receptor puede evaluar esta información para realizar la configuración específica del dispositivo o la activación de funciones. Los operadores de elementos de red SIP a veces almacenan esta información en portales de cuentas de clientes, donde puede ser útil para diagnosticar problemas de compatibilidad con SIP o para mostrar el estado del servicio.

Servidor proxy

Un servidor proxy es un servidor de red con componentes UAC y UAS que funciona como una entidad intermediaria con el fin de realizar solicitudes en nombre de otros elementos de la red. Un servidor proxy desempeña principalmente el papel de enrutamiento de llamadas; envía solicitudes SIP a otra entidad más cercana al destino. Los proxies también son útiles para hacer cumplir las políticas, por ejemplo, para determinar si un usuario puede realizar una llamada. Un proxy interpreta y, si es necesario, reescribe partes específicas de un mensaje de solicitud antes de reenviarlo.

Los servidores proxy SIP que enrutan mensajes a más de un destino se denominan servidores proxy de bifurcación. La bifurcación de una solicitud SIP establece múltiples diálogos a partir de una única solicitud. Por lo tanto, una llamada puede responderse desde uno de los múltiples puntos finales SIP. Para la identificación de múltiples diálogos, cada diálogo tiene un identificador con contribuciones de ambos extremos.

Servidor de redirección

Un servidor de redireccionamiento es un servidor de agente de usuario que genera respuestas 3xx (redireccionamiento) a las solicitudes que recibe, indicando al cliente que se comunique con un conjunto alternativo de URI. Un servidor de redirección permite que los servidores proxy dirijan las invitaciones de sesión SIP a dominios externos.

Registrador

Registro de agente de usuario SIP a SIP registrador con autenticación.

Un registrador es un extremo SIP que proporciona un servicio de ubicación. Acepta solicitudes de REGISTRO, registrando la dirección y otros parámetros del agente de usuario. Para solicitudes posteriores, proporciona un medio esencial para localizar posibles pares de comunicación en la red. El servicio de ubicación vincula una o más direcciones IP al SIP URI del agente registrador. Varios agentes de usuario pueden registrarse para el mismo URI, con el resultado de que todos los agentes de usuario registrados reciben las llamadas al URI.

Los registradores SIP son elementos lógicos y, a menudo, se ubican junto con los servidores proxy SIP. Para mejorar la escalabilidad de la red, los servicios de ubicación pueden ubicarse con un servidor de redirección.

Controlador de borde de sesión

Establecimiento de una sesión a través de un agente de usuario retrocedente.

Los controladores de borde de sesión (SBC) funcionan como intermediarios entre los agentes de usuario y los servidores SIP para varios tipos de funciones, incluida la ocultación de topología de red y la asistencia en NAT transversal. Los SBC son una solución diseñada de forma independiente y no se mencionan en el SIP RFC.

Puerta de enlace

Las puertas de enlace se pueden usar para interconectar una red SIP con otras redes, como PSTN, que usan diferentes protocolos o tecnologías.

Mensajes SIP

SIP es un protocolo basado en texto con una sintaxis similar a la de HTTP. Hay dos tipos diferentes de mensajes SIP: solicitudes y respuestas. La primera línea de una solicitud tiene un método, que define la naturaleza de la solicitud, y un Request-URI, que indica dónde debe enviarse la solicitud. La primera línea de una respuesta tiene un código de respuesta.

Solicitudes

Las solicitudes inician una funcionalidad del protocolo. Son enviados por un cliente de agente de usuario al servidor y se responden con una o más respuestas SIP, que devuelven un código de resultado de la transacción y, en general, indican el éxito, la falla u otro estado de la transacción.

Solicitudes de SIP
Solicitud de nombreDescripciónNotasReferencias RFC
REGÍSTRATERegistrar la URI lista en el campo To-header con un servidor de ubicación y lo asocia con la dirección de red dada en un Contacto Campo de cabecera.El comando implementa un servicio de localización.RFC 3261
INVITEIniciar un diálogo para establecer una llamada. La solicitud es enviada por un cliente agente de usuario a un servidor de agente de usuario.Cuando se envía durante un diálogo establecido (revital) modifica las sesiones, por ejemplo colocando una llamada en espera.RFC 3261
ACKConfirme que una entidad ha recibido una respuesta final a una solicitud INVITE.RFC 3261
BYESeñala la terminación de un diálogo y termina una llamada.Este mensaje puede ser enviado por cualquier punto final de un diálogo.RFC 3261
CANCELCancele cualquier solicitud pendiente.Por lo general significa terminar una llamada mientras sigue sonando, antes de responder.RFC 3261
UPDATEModifique el estado de una sesión sin cambiar el estado del diálogo.RFC 3311
REFERPida al destinatario que emita una solicitud con el propósito de la transferencia de llamadas.RFC 3515
PRACKConfirmación provisional.PRACK se envía en respuesta a la respuesta provisional (1x).RFC 3262
SUBSCRIBEInicia una suscripción para la notificación de eventos de un notificador.RFC 6665
NOTIFICAInformar a un suscriptor de notificaciones de un nuevo evento.RFC 6665
PUBLISHPublicar un evento a un servidor de notificación.RFC 3903
MESSAGEEntrega un mensaje de texto.Se utiliza en aplicaciones de mensajería instantánea.RFC 3428
INFOEnviar información de media sesión que no modifique el estado de la sesión.Este método se utiliza a menudo para el relé DTMF.RFC 6086
OPCIONESConsultar las capacidades de un punto final.A menudo se utiliza para fines de mantenimiento NAT.RFC 3261

Respuestas

Las respuestas son enviadas por el servidor del agente de usuario indicando el resultado de una solicitud recibida. Se reconocen varias clases de respuestas, determinadas por el rango numérico de los códigos de resultado:

  • 1x: Las respuestas provisionales a las solicitudes indican que la solicitud fue válida y se está tramitando.
  • 2xx: Finalización exitosa de la solicitud. Como respuesta a un INVITE, indica que se establece una llamada. El código más común es 200, que es un informe de éxito sin reservas.
  • 3xx: Para completar la solicitud es necesario redirigir la llamada. La solicitud debe completarse con un nuevo destino.
  • 4xx: La solicitud no puede completarse en el servidor por varias razones, incluyendo la sintaxis de mala solicitud (código 400).
  • 5xx: El servidor no cumplió una solicitud aparentemente válida, incluyendo errores internos del servidor (código 500).
  • 6xx: La solicitud no se puede cumplir en ningún servidor. Indica un fracaso global, incluyendo el rechazo de llamadas por el destino.

Transacciones

Ejemplo: UAC de usuario1 utiliza un invitar a la transacción cliente para enviar el mensaje inicial INVITE (1). Si no se recibe respuesta después de un período de espera controlado por el temporizador, el UAC puede optar por terminar la transacción o retransmitir el INVITE. Una vez recibida una respuesta, User1 confía en que el INVITE fue entregado de forma fiable. UAC de usuario1 debe entonces reconocer la respuesta. En la entrega de la ACK (2), ambas partes de la transacción están completas. En este caso, se puede haber establecido un diálogo.

SIP define un mecanismo de transacción para controlar los intercambios entre participantes y entregar mensajes de manera confiable. Una transacción es un estado de una sesión, que está controlado por varios temporizadores. Las transacciones del cliente envían solicitudes y las transacciones del servidor responden a esas solicitudes con una o más respuestas. Las respuestas pueden incluir respuestas provisionales con un código de respuesta en la forma 1xx, y una o varias respuestas finales (2xx – 6xx).

Las transacciones se clasifican además como tipo invitación o tipo no invitación. Las transacciones de invitación difieren en que pueden establecer una conversación de larga duración, denominada diálogo en SIP, y por lo tanto incluyen un acuse de recibo (ACK) de cualquier respuesta final que no falle, por ejemplo, 200 Aceptar.

Mensajería instantánea y presencia

El protocolo de inicio de sesión para mensajería instantánea y extensiones de uso de presencia (SIMPLE) es el conjunto de estándares basado en SIP para mensajería instantánea e información de presencia. El Protocolo de retransmisión de sesiones de mensajes (MSRP) permite sesiones de mensajes instantáneos y transferencia de archivos.

Pruebas de conformidad

La comunidad de desarrolladores de SIP se reúne regularmente en conferencias organizadas por SIP Forum para probar la interoperabilidad de las implementaciones de SIP. El lenguaje de especificación de prueba TTCN-3, desarrollado por un grupo de trabajo en ETSI (STF 196), se utiliza para especificar pruebas de conformidad para implementaciones SIP.

Pruebas de rendimiento

Al desarrollar software SIP o implementar una nueva infraestructura SIP, es importante probar la capacidad de los servidores y las redes IP para manejar cierta carga de llamadas: número de llamadas simultáneas y número de llamadas por segundo. El software de prueba de rendimiento SIP se utiliza para simular el tráfico SIP y RTP para ver si el servidor y la red IP son estables bajo la carga de llamadas. El software mide los indicadores de rendimiento como el retraso de respuesta, la relación respuesta/convulsión, la fluctuación RTP y la pérdida de paquetes, el tiempo de retraso de ida y vuelta.

Aplicaciones

Conexión SIP es un término de marketing para los servicios de voz sobre Protocolo de Internet (VoIP) que ofrecen muchos proveedores de servicios de telefonía por Internet (ITSP). El servicio proporciona enrutamiento de llamadas telefónicas desde el sistema telefónico de la centralita privada (PBX) de un cliente a la PSTN. Dichos servicios pueden simplificar la infraestructura del sistema de información corporativa al compartir el acceso a Internet para voz y datos, y eliminar el costo de los circuitos telefónicos de Interfaz de tarifa básica (BRI) o Interfaz de tarifa primaria (PRI).

SIP trunking es un término de marketing similar preferido cuando el servicio se usa para simplificar una infraestructura de telecomunicaciones al compartir el circuito de acceso del operador para el tráfico de voz, datos e Internet mientras se elimina la necesidad de circuitos PRI.

Las cámaras de videovigilancia habilitadas para SIP pueden iniciar llamadas para alertar al operador de eventos, como el movimiento de objetos en un área protegida.

SIP se usa en audio sobre IP para aplicaciones de transmisión donde proporciona un medio interoperable para que las interfaces de audio de diferentes fabricantes se conecten entre sí.

Implementaciones

La División de Tecnologías de Redes Avanzadas del Instituto Nacional de Estándares y Tecnología (NIST) de EE. UU. proporciona una implementación de Java de dominio público que sirve como implementación de referencia para el estándar. La implementación puede funcionar en escenarios de servidor proxy o agente de usuario y se ha utilizado en numerosos proyectos comerciales y de investigación. Es compatible con RFC 3261 en su totalidad y una serie de RFC de extensión, incluidos RFC 6665 (notificación de eventos) y RFC 3262 (respuestas provisionales confiables).

Existen muchas otras implementaciones SIP comerciales y de código abierto. Consulte la Lista de software SIP.

Interfuncionamiento SIP-ISUP

SIP-I, Protocolo de inicio de sesión con ISUP encapsulado, es un protocolo utilizado para crear, modificar y finalizar sesiones de comunicación basadas en ISUP utilizando redes SIP e IP. Los servicios que utilizan SIP-I incluyen voz, video telefonía, fax y datos. SIP-I y SIP-T son dos protocolos con características similares, en particular para permitir el transporte de mensajes ISUP a través de redes SIP. Esto conserva todos los detalles disponibles en el encabezado ISUP. SIP-I fue definido por ITU-T, mientras que SIP-T fue definido por IETF.

Cifrado

Las preocupaciones sobre la seguridad de las llamadas a través de la Internet pública se han resuelto mediante el cifrado del protocolo SIP para una transmisión segura. El esquema URI SIPS se utiliza para exigir que la comunicación SIP esté protegida con Transport Layer Security (TLS). Los URI de SIPS toman la forma sips:user@example.com.

El cifrado de extremo a extremo de SIP solo es posible si existe una conexión directa entre los puntos finales de comunicación. Si bien se puede realizar una conexión directa a través de SIP de igual a igual o a través de una VPN entre los puntos finales, la mayoría de las comunicaciones SIP involucran múltiples saltos, siendo el primer salto desde un agente de usuario hasta el ITSP del agente de usuario. Para el caso de múltiples saltos, SIPS solo asegurará el primer salto; los saltos restantes normalmente no estarán protegidos con TLS y la comunicación SIP será insegura. Por el contrario, el protocolo HTTPS proporciona seguridad de extremo a extremo, ya que se realiza con una conexión directa y no implica la noción de saltos.

Los flujos de medios (audio y video), que son conexiones separadas del flujo de señalización SIPS, se pueden cifrar mediante SRTP. El intercambio de claves para SRTP se realiza con SDES (RFC 4568) o con ZRTP (RFC 6189). Cuando se usa SDES, las claves se transmitirán a través de SIP inseguro a menos que se use SIPS. También se puede agregar un intercambio MIKEY (RFC 3830) a SIP para determinar las claves de sesión para usar con SRTP.

Contenido relacionado

Compresor (desambiguación)

Un compresor es un dispositivo mecánico que aumenta la presión de un gas reduciendo su...

Codigo de color

Un código de color es un sistema de visualización de información mediante el uso de diferentes...

Telecomunicaciones en las Islas Vírgenes Británicas

Las llamadas desde las Islas Vírgenes Británicas a EE. UU., Canadá y otras naciones NANP del Caribe se marcan como 1 + código de área NANP + número de 7...
Más resultados...
Tamaño del texto: