stringtranslate.com

Protocolo de inicio de sesión

El Protocolo de inicio de sesión ( SIP ) es un protocolo de señalización utilizado para iniciar, mantener y finalizar sesiones de comunicación que incluyen aplicaciones de voz, vídeo y mensajería. [1] El SIP se utiliza en telefonía por Internet , en sistemas telefónicos IP privados, así como en llamadas de telefonía móvil a través de LTE ( VoLTE ). [2]

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). [3] Una llamada establecida con SIP puede constar de múltiples flujos de medios , pero no se requieren flujos separados para aplicaciones, como mensajería de texto , que intercambian datos como carga útil en el mensaje SIP.

El protocolo SIP funciona junto con otros protocolos que especifican y transportan los medios de la sesión. Por lo general, la negociación de los parámetros y el tipo de medios y la configuración de los medios se realizan con el Protocolo de descripción de sesión (SDP), que se transporta como carga útil en los mensajes SIP. El protocolo 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 se puede cifrar con Seguridad de capa de transporte (TLS). Para la transmisión de flujos de medios (voz, vídeo), la carga útil del protocolo SDP transportada en los mensajes SIP normalmente 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 fue aceptado como un protocolo de señalización 3GPP y un 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 fue revisada en RFC  3261 [4] y desde entonces se han publicado varias extensiones y aclaraciones. [5]

El protocolo SIP fue diseñado para proporcionar un protocolo de señalización y establecimiento de llamadas para comunicaciones basadas en IP que admita 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 en tiempo real , mensajería instantánea , información de presencia , transferencia de archivos , fax por Internet y juegos en línea . [1] [6] [7]

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

Operación del protocolo

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

El protocolo SIP solo interviene en las operaciones de señalización de una sesión de comunicación de medios y se utiliza principalmente para establecer y finalizar llamadas de voz o vídeo. El protocolo SIP se puede utilizar para establecer sesiones de dos partes ( unicast ) o de varias partes ( multicast ). También permite la modificación de llamadas existentes. La modificación puede implicar el cambio de direcciones o puertos , la invitación de más participantes y la adición o eliminación de flujos de medios. El protocolo SIP también ha encontrado aplicaciones en aplicaciones de mensajería, como la mensajería instantánea y la suscripción y notificación de eventos.

El protocolo SIP funciona en conjunto con otros protocolos que especifican el formato y la codificación de los medios y que transmiten los medios una vez que se establece la llamada. Para el establecimiento de la llamada, 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 los medios, el códec y el protocolo de comunicación de los medios. Los flujos de voz y vídeo se transmiten normalmente entre terminales mediante el Protocolo de transporte en tiempo real (RTP) o el Protocolo de transporte seguro en tiempo real (SRTP). [3] [8]

Cada recurso de una red SIP, como agentes de usuario, enrutadores de llamadas y buzones de correo de voz, se identifica mediante un Identificador uniforme de recursos (URI). La sintaxis del URI sigue la sintaxis estándar general que también se utiliza en servicios web y correo electrónico. [9] El esquema de URI utilizado para SIP es sip y un URI SIP típico tiene la forma sip:nombreusuario@nombredominio o sip:nombreusuario@puertohost , donde nombredominio requiere registros SRV de DNS para localizar los servidores para el dominio SIP mientras que puertohost 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 . [10] [11]

SIP emplea elementos de diseño similares al modelo de transacción de solicitud y respuesta HTTP. [12] 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, lo que proporciona un formato legible basado en texto.

El protocolo SIP puede transmitirse mediante varios protocolos de capa de transporte , incluidos 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). [13] [14] Los clientes SIP suelen utilizar TCP o UDP en los puertos 5060 o 5061 para el tráfico SIP a servidores y otros puntos finales. El puerto 5060 se utiliza habitualmente para el tráfico de señalización no cifrado, mientras que el puerto 5061 se utiliza normalmente para el tráfico cifrado con Seguridad de la capa de transporte (TLS).

Las redes de telefonía basadas en SIP a menudo implementan funciones de procesamiento de llamadas del Sistema de señalización 7 (SS7), para el cual existen extensiones especiales del protocolo SIP, aunque los dos protocolos en sí son muy diferentes. SS7 es un protocolo centralizado, caracterizado por una arquitectura de red central compleja y puntos finales tontos (auriculares telefónicos tradicionales). SIP es un protocolo cliente-servidor de pares equipotentes. Las funciones SIP se implementan en los puntos finales que se comunican, mientras que la arquitectura SS7 tradicional se utiliza solo entre 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) cuando responde a una solicitud. Por lo tanto, en principio, dos puntos finales SIP pueden funcionar sin ninguna infraestructura SIP intermedia. Sin embargo, por razones operativas 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 clientes y servidores de agente de usuario. [15]

Agente de usuario

Un agente de usuario es un punto final de red lógico 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 mientras dura una transacción SIP. [6]

Un teléfono SIP es un teléfono IP que implementa 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 llamada y transferir llamada. [16] [17] 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 basados ​​en software se difumina y los elementos SIP se implementan en las funciones básicas del firmware de muchos dispositivos de comunicaciones con capacidad IP, como los teléfonos inteligentes .

En SIP, al igual que 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, [18] 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 entidad intermediaria con el fin de realizar solicitudes en nombre de otros elementos de la red. Un servidor proxy cumple principalmente la función de enrutamiento de llamadas; envía solicitudes SIP a otra entidad más cercana al destino. Los servidores proxy también son útiles para hacer cumplir la política, por ejemplo, para determinar si un usuario tiene permiso para realizar una llamada. Un servidor 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 bifurcados. La bifurcación de una solicitud SIP establece múltiples diálogos a partir de una única solicitud. Por lo tanto, una llamada puede ser respondida 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 puntos finales.

Servidor de redireccionamiento

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

Registrador

Registro de agente de usuario SIP en el registrador SIP con autenticación.

Un registrador es un punto final SIP que proporciona un servicio de ubicación. Acepta solicitudes REGISTER, registrando la dirección y otros parámetros del agente de usuario. Para las 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 a la URI SIP del agente registrador. Múltiples agentes de usuario pueden registrarse para la misma URI, con el resultado de que todos los agentes de usuario registrados reciben las llamadas a la URI.

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

Controlador de borde de sesión

Establecimiento de una sesión a través de un agente de usuario back-to-back .

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

Puerta

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

Mensajes SIP

SIP es un protocolo basado en texto con una sintaxis similar a la de HTTP. Existen 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 URI de solicitud, que indica dónde debe enviarse la solicitud. [19] La primera línea de una respuesta tiene un código de respuesta .

Solicitudes

Las solicitudes inician una funcionalidad del protocolo. Las envía 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, generalmente, indican el éxito, el fracaso u otro estado de la transacción.

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: [20]

Actas

Ejemplo: el UAC del Usuario1 utiliza una transacción de cliente de invitación para enviar el mensaje INVITE (1) inicial. Si no se recibe respuesta después de un período de espera controlado por temporizador, el UAC puede optar por finalizar la transacción o retransmitir el INVITE. Una vez que se recibe una respuesta, el Usuario1 está seguro de que el INVITE se entregó de manera confiable. El UAC del Usuario1 debe entonces reconocer la respuesta. Al recibir el ACK (2), ambos lados de la transacción están completos. En este caso, es posible que se haya establecido un diálogo. [21]

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 es controlado por varios temporizadores. Las transacciones de cliente envían solicitudes y las transacciones de servidor responden a esas solicitudes con una o más respuestas. Las respuestas pueden incluir respuestas provisionales con un código de respuesta en el formato 1xx y una o varias respuestas finales (2xx – 6xx).

Las transacciones se clasifican además como de tipo invitación o de tipo no invitación . Las transacciones de invitación se diferencian 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 OK .

Mensajería instantánea y presencia

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

Prueba de conformidad

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

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. [24] El software mide indicadores de rendimiento como el retraso de respuesta, la relación respuesta/captura , la fluctuación de RTP y la pérdida de paquetes , el tiempo de retardo de ida y vuelta .

Aplicaciones

La 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 permite enrutar llamadas telefónicas desde el sistema telefónico de centralita privada (PBX) de un cliente a la PSTN. Estos 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 velocidad básica (BRI) o interfaz de velocidad primaria (PRI).

El trunking SIP es un término de marketing similar que se prefiere cuando el servicio se utiliza para simplificar una infraestructura de telecomunicaciones al compartir el circuito de acceso del operador para el tráfico de voz, datos e Internet, al tiempo que se elimina la necesidad de circuitos PRI. [25] [26]

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

SIP se utiliza 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í. [27]

Implementaciones

La División de Tecnologías de Redes Avanzadas del Instituto Nacional de Estándares y Tecnología (NIST) de Estados Unidos ofrece una implementación de Java de dominio público [28] 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 con una serie de RFC de extensión, entre ellos RFC  6665 (notificación de eventos) y RFC  3262 (respuestas provisionales confiables).

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

Interconexión SIP-ISUP

SIP-I, Session Initiation Protocol with encapsulated ISUP , 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, telefonía por vídeo, fax y datos. SIP-I y SIP-T [29] son ​​dos protocolos con características similares, en particular para permitir que los mensajes ISUP se transporten a través de redes SIP. Esto conserva todos los detalles disponibles en el encabezado ISUP. [a] SIP-I fue definido por la ITU-T , mientras que SIP-T fue definido por el IETF . [30]

Encriptación

Las preocupaciones sobre la seguridad de las llamadas a través de Internet pública se han abordado mediante el cifrado del protocolo SIP para una transmisión segura . El esquema URI SIPS se utiliza para exigir que la comunicación SIP se proteja con Transport Layer Security (TLS). Los URI SIPS tienen el formato sips:[email protected].

El cifrado de extremo a extremo de SIP solo es posible si existe una conexión directa entre los puntos finales de la comunicación. Si bien se puede realizar una conexión directa a través de SIP punto a punto o mediante una VPN entre los puntos finales, la mayoría de las comunicaciones SIP implican múltiples saltos, siendo el primer salto de un agente de usuario al ITSP del agente de usuario . En el caso de múltiples saltos, SIPS solo protegerá 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 vídeo), que son conexiones independientes del flujo de señalización SIPS, pueden cifrarse mediante SRTP. El intercambio de claves para SRTP se realiza con SDES ( RFC  4568) o con ZRTP ( RFC  6189). Cuando se utiliza SDES, las claves se transmitirán a través de SIP inseguro a menos que se utilice SIPS. También se puede añadir un intercambio MIKEY ( RFC  3830) a SIP para determinar las claves de sesión para su uso con SRTP.

Véase también

Notas

  1. ^ Los detalles de ISUP son importantes ya que existen muchas variantes de ISUP específicas de cada país que se han implementado durante los últimos 30 años y no siempre es posible expresar todos los mismos detalles utilizando un mensaje SIP nativo.

Referencias

  1. ^ ab "¿Qué es SIP?". Network World . 11 de mayo de 2004. Archivado desde el original el 24 de junio de 2014.
  2. ^ "4G | ShareTechnote". www.sharetechnote.com . Consultado el 9 de marzo de 2023 .
  3. ^ de Johnston, Alan B. (2004). SIP: Entendiendo el Protocolo de Inicio de Sesión (Segunda edición). Artech House. ISBN 9781580531689.
  4. ^ "Carta del grupo de trabajo central de SIP". Grupo de trabajo de ingeniería de Internet . 2010-12-07 . Consultado el 2011-01-11 .
  5. ^ "Buscar borradores de Internet y RFC". Grupo de trabajo de ingeniería de Internet .
  6. ^ ab SIP: Protocolo de inicio de sesión. 2002. doi : 10.17487/RFC3261 . RFC 3261.
  7. ^ Rouse, Margaret. "Protocolo de inicio de sesión (SIP)". TechTarget .
  8. ^ Coll, Eric (2016). Telecom 101. Instituto de Formación Teracom. págs. 77–79. ISBN 9781894887038.
  9. ^ Identificadores uniformes de recursos (URI): sintaxis genérica. 2005. doi : 10.17487/RFC3986 . RFC 3986.
  10. ^ Miikka Poikselkä y otros. 2004.
  11. ^ Brian Reid y Steve Goodman 2015.
  12. ^ "SIP: Protocolo de inicio de sesión". IETF .
  13. ^ El Protocolo de transmisión de control de flujo (SCTP) como transporte para el Protocolo de inicio de sesión (SIP). 2005. doi : 10.17487/RFC4168 . RFC 4168.
  14. ^ Montazerolghaem, Ahmadreza; Hosseini Seno, Seyed Amin; Yaghmaee, Mohammad Hossein; Tashtarian, Farzad (1 de junio de 2016). "Mecanismo de mitigación de sobrecarga para redes VoIP: un enfoque de capa de transporte basado en la gestión de recursos". Transactions on Emerging Telecommunications Technologies . 27 (6): 857–873. doi :10.1002/ett.3038. ISSN  2161-3915. S2CID  27215205.
  15. ^ Montazerolghaem, A.; Moghaddam, MHY; Leon-Garcia, A. (marzo de 2018). "OpenSIP: hacia redes SIP definidas por software". IEEE Transactions on Network and Service Management . 15 (1): 184–199. arXiv : 1709.01320 . doi :10.1109/TNSM.2017.2741258. ISSN  1932-4537. S2CID  3873601.
  16. ^ Azzedine (2006). Manual de algoritmos para redes inalámbricas y computación móvil. CRC Press. p. 774. ISBN 978-1-58488-465-1.
  17. ^ Porter, Thomas; Andy Zmolek; Jan Kanclirz; Antonio Rosela (2006). Seguridad práctica de VoIP. Syngress. págs. 76-77. ISBN 978-1-59749-060-3.
  18. ^ "User-Agents We Have Known". Usuario de VoIP. Archivado desde el original el 16 de julio de 2011.
  19. ^ Stallings, pág. 214
  20. ^ Stallings, págs. 216-217
  21. ^ Wright, James. "SIP - An Introduction" (PDF) . Konnetic . Consultado el 11 de enero de 2011 .
  22. ^ "SIPit Wiki" . Consultado el 7 de octubre de 2017 .
  23. ^ Experiencias en el uso de TTCN-3 para pruebas de SIP y OSP (PDF) , archivado desde el original (PDF) el 30 de marzo de 2014
  24. ^ "Pruebas de rendimiento y estrés de servidores SIP, clientes y redes IP". StarTrinity. 13 de agosto de 2016.
  25. ^ "AT&T analiza su arquitectura de interconexión SIP". sip-trunking.tmcnet.com . Consultado el 20 de marzo de 2017 .
  26. ^ "Diapositivas de PowerPoint de transporte SIP de AT&T de la Conferencia y Exposición VoIP del IIT". HD Voice News . 19 de octubre de 2010 . Consultado el 20 de marzo de 2017 .
  27. ^ Jonsson, Lars; Mathias Coinchon (2008). "Transmisión de contribuciones de audio a través de IP" (PDF) . EBU Technical Review . Consultado el 27 de diciembre de 2010 .
  28. ^ "Proyecto JAIN SIP". GitHub . Consultado el 24 de junio de 2024 .
  29. ^ Contexto y arquitecturas de SIP-T. Septiembre de 2002. doi : 10.17487/RFC3372 . RFC 3372.
  30. ^ "¿Por qué SIP-I? Recomendación sobre protocolos básicos de conmutación" (PDF) . Archivado desde el original (PDF) el 17 de marzo de 2012.

Enlaces externos