Información generalOverview

En este artículo se describe cómo el enrutamiento directo admite la omisión de elementos multimedia con un controlador de borde de sesión (SBC) habilitado para ICE Lite, como se describe en RFC 5245.This article describes how Direct Routing supports media bypass with a Session Border Controller (SBC) enabled for ICE Lite as described in RFC 5245. Este artículo está dirigido a los administradores de voz responsables de configurar la conexión entre el SBC local y el servicio de proxy SIP.This article is intended for voice administrators who are responsible for configuring the connection between the on-premises SBC and the SIP proxy service.

Este artículo proporciona una descripción general de los escenarios de ICE Lite y los requisitos de interoperabilidad.This article provides an overview of the ICE Lite scenarios and requirements for interoperability. En este artículo se describen los formatos de mensaje y las transiciones de equipos de estado necesarias para garantizar una llamada y un flujo de medios confiables.The article describes the message formats and the required state machine transitions for ensuring reliable call and media flow.

TerminologíaTerminology

  • Primero Hola: las primeras palabras que habla la persona que llama y la persona que llama.First Hello – The first words spoken by the caller and callee. Es importante que se realicen todos los esfuerzos para asegurarse de que los primeros paquetes de los puntos de conexión se entreguen de manera confiable para la mayoría de los casos de uso.It is important that all efforts are made to ensure that the first packets from the endpoints are delivered reliably for most use cases.

  • Bifurcación: la oferta de la persona que llama puede ser entregada a varios puntos de conexión de llamadas si el destinatario de la llamada está disponible en varios dispositivos (por ejemplo, un usuario de equipos puede haber iniciado sesión en Teams para Windows y Teams para Android o iPhone).Forking – The offer from the caller might be delivered to multiple callee endpoints if the callee is available on multiple devices (for example, a Teams user might be signed into Teams for Windows and Teams for Android or iPhone).

  • Respuesta provisional (183): los puntos de conexión de llamadas para acelerar la configuración de llamadas envían una respuesta con los candidatos y claves necesarios para establecer el flujo de medios.Provisional Answer (183) – The callee endpoints for faster call setup send an answer with the candidates and keys required to establish media flow. Esto se realiza en previsión de que el usuario pueda responder a la llamada (200OK) de esa instancia específica del destinatario.This is done in anticipation of the user potentially answering the call(200OK) from that specific callee instance. Con la ramificación, la persona que llama debe estar lista para recibir varias respuestas provisionales.With forking, the caller should be ready to receive multiple provisional answers.

  • Volver a invitar: oferta con candidatos finales seleccionado por el punto final del control de hielo.Re-Invite – Offer with final candidates selected by the ICE controlling endpoint. Esto tendrá el atributo a = candidato a candidatos remotos para resolver las condiciones de carrera y controlar varias bifurcaciones.This will have the a=remote-candidate attribute to resolve any race conditions from handling multiple forks.

  • Punto de conexión de equipos: puede ser un servidor (procesador multimedia, retransmisión de transporte) o el cliente de Teams.Teams Endpoint – This could either be a server (Media Processor, Transport Relay) or the Teams client.

Formato del mensajeMessage format

La infraestructura de Teams sigue el RFC 5245 para ICE-Lite.The Teams infrastructure follows RFC 5245 for ICE-Lite. Esto implica que todos los mensajes STUN serán compatibles con el RFC 5389.This implies that all the STUN messages will be compliant with RFC 5389.

El SBCs según lo solicite el RFC 5389 debe omitir los atributos STUN que no reconozcan y continuar procesando los mensajes con los atributos conocidos.The SBCs as required by RFC 5389 must ignore any STUN attributes that they do not recognize, and continue to process the messages with the known attributes.

Si se reciben paquetes mal formados, los paquetes se deben descartar sin afectar al establecimiento de la sesión de medios.If any malformed packets are received, the packets must be discarded without impacting the media session establishment.

Requisitos de ICE LiteICE Lite requirements

Esta sección captura brevemente los requisitos de ICE Lite.This section briefly captures the requirements for ICE Lite.

Recopilación de candidatosCandidate gathering

La SBC debe ofrecer un candidato que sea accesible públicamente.The SBC must offer only one candidate that is publicly reachable. Actualmente, solo se admiten los candidatos IPV4.Currently, only IPV4 candidates are supported.

Comprobaciones de conectividadConnectivity checks

La implementación de ICE Lite debe responder a las comprobaciones de conectividad recibidas.The ICE Lite implementation must respond to any connectivity checks received. El punto final de ICE Lite no debe enviar solicitudes de comprobación de conectividad.The ICE Lite endpoint must not send any connectivity check requests. (Si se envían infracciones las comprobaciones de conectividad, la implementación completa responderá, lo que puede provocar que se descubran candidatos derivados del mismo nivel inesperados y producir errores de llamadas).(If connectivity checks are sent in violation, the full implementation will respond, which can result in unexpected peer-derived candidates being discovered and potentially result in call failures.)

NominacionesNominations

El extremo de la implementación completa de ICE siempre será el extremo de control y seguirá las nominaciones "normales" para seleccionar los candidatos finales que se usarán para el flujo de medios.The ICE full implementation endpoint will always be the Controlling endpoint, and will follow “Regular” nominations for selecting the final candidates to be used for media flow. El punto final de hielo Lite puede usar las nominaciones para concluir la ruta que se utilizará para los medios y el establecimiento completo de llamadas.The ICE Lite endpoint can use the nominations to conclude the path to be used for media and complete call establishment.

Nota: en el caso de bifurcación con puntos de conexión del mismo nivel enviando respuestas provisionales de 183, la SBC debe estar preparada para responder a las comprobaciones de varios puntos finales y también a las nominaciones de varios puntos finales si las nominaciones se producen antes de 200OK.Note: In the case of forking with peer endpoints sending 183 provisional answers, the SBC must be ready to respond to checks from multiple endpoints and also nominations from multiple endpoints if the nominations happen before 200OK. En función de la convergencia de la máquina de estado de hielo en la ruta de acceso final y en el momento de la respuesta del usuario, las nominaciones pueden ocurrir antes o después de la 200OK.Depending on the convergence of the ICE state machine on the final path and timing of the user answering, the nominations can happen before or after 200OK. La SBC debe poder controlar ambos casos.The SBC must be able to handle both cases.

Convergencia de la ramificaciónConverging for forking

Si la oferta de la horquilla de SBC para los puntos de conexión de varios equipos, los puntos de conexión de Teams pueden responder con una respuesta provisional y empezar las comprobaciones de conectividad.If the offer from the SBC forks to multiple Teams endpoints, the Teams endpoints may respond with a provisional answer and start connectivity checks. El SBC debe estar preparado para recibir comprobaciones de conectividad y responder a las comprobaciones de conectividad de varios puntos de conexión del mismo nivel.The SBC must be prepared to receive connectivity checks and respond to connectivity checks from multiple peer endpoints. Por ejemplo, el usuario de Teams podría iniciar sesión en un equipo de escritorio y un teléfono móvil.For example, the Teams user could be signed on to both a desktop and a cell phone. Se notificará a ambos dispositivos de la llamada entrante y se intentarán las comprobaciones de conectividad con el SBC.Both devices will be notified of the inbound call and will attempt connectivity checks with the SBC.

Hasta el momento, solo uno de los puntos de conexión responderá a la llamada (200OK).Eventually only one of the endpoints will answer the call (200OK). Al recibir la 200OK, la SBC puede configurar el contexto adecuado para procesar los paquetes de medios.On receiving the 200OK, the SBC can set up the right context for processing the media packets.

EscenariosScenarios

Llamada entrante de SBCInbound call from SBC

Para este escenario, hay varios puntos de conexión posibles del mismo nivel que el SBC debe controlar:For this scenario, there are several possible peer endpoints that the SBC must handle:

  • Los puntos de conexión de servidor normalmente responderán directamente con 200OK.Server endpoints will typically respond directly with 200OK. Se trata de puntos de conexión de hielo completos que normalmente participan en el buzón de voz, la cola de llamadas y los escenarios de operador automático.These are full ICE endpoints that are typically involved in Voicemail, Call queue, and Auto attendant scenarios.

  • Los puntos de conexión de cliente pueden enviar varias respuestas provisionales con diferentes etiquetas from/to (183) seguidas de 200OK desde el extremo que responde a la llamada.Client endpoints can send multiple provisional answers with different From/To tags (183) followed by a 200OK from the endpoint that answers the call. Estos son puntos de conexión de hielo completos que suelen representar clientes de usuario final.These are full ICE endpoints typically representing end user clients.

  • Otros puntos de conexión de SBC.Other SBC endpoints. Estos son puntos de conexión de ICE Lite generalmente implicados en el escenario de llamadas simultáneas a puntos de conexión de cliente y otro número de teléfono.These are ICE Lite endpoints typically involved in the scenario of simultaneously ringing client endpoints and another phone number(s).

El SBC debe responder a todas las solicitudes de comprobación de conectividad válidas recibidas de los puntos de conexión de hielo completos.The SBC must respond to all valid connectivity check requests received from the full ICE endpoints. Por RFC, los puntos de conexión de hielo completos se convertirán en el control de los puntos de conexión.Per RFC, the full ICE endpoints will become Controlling endpoints. Los puntos de conexión de Teams (cliente/servidor) realizarán nominaciones "normales" para completar las comprobaciones de conectividad.The Teams (client/server) endpoints will perform “Regular” nominations to complete connectivity checks. El 200Ok final puede ser de un extremo que envió medios anteriores o de un extremo diferente.The final 200Ok can either be from an endpoint that sent early media or from a different endpoint. Al recibir la 200Ok, el SBC debe configurar el contexto adecuado para el flujo de medios.On receiving the 200Ok, the SBC must set up the right context for media flow.

Primeros mediosEarly media

Si hay un flujo de medios temprano, el SBC debe aplatchar el primer punto de conexión que empiece a transmitir contenido multimedia; el flujo de medios puede iniciarse antes de que se nominar candidatos.If there is early media flow, the SBC must latch to the first endpoint that starts streaming media; media flow can start before candidates are nominated. El SBC debería admitir el envío de DTMF durante esta fase para habilitar escenarios de IVR/buzón de voz.The SBC should have support for sending DTMF during this phase to enable IVR/voicemail scenarios. La SBC debe usar la ruta de prioridad más alta en la que ha recibido comprobaciones si las nominaciones no se han completado.The SBC should use the highest priority path on which it has received checks if nominations have not completed.

Llamada saliente a SBCOutbound call to SBC

Los puntos de conexión de Teams son la persona que llama para este escenario y será el extremo de control.The Teams endpoints are the Caller for this scenario and will be the Controlling Endpoint. Al recibir una respuesta provisional (183) o una respuesta final (200OK), el punto de conexión de Teams iniciará las comprobaciones de conectividad y continuará con las nominaciones "normales" para completar las comprobaciones de conectividad.On receiving either a provisional answer (183) or a final answer(200OK), the Teams endpoint will start connectivity checks and proceed to “Regular” nominations to complete the connectivity checks.

Nota: Si la SBC envía una respuesta provisional (183), la SBC debe estar lista para recibir solicitudes de comprobación de conectividad y posiblemente completar las nominaciones antes de que el SBC envíe el 200OK.Note: If the SBC sends a provisional answer (183), the SBC must be ready to receive connectivity check requests and potentially complete the nominations before the 200OK is sent by the SBC. Si se completan las comprobaciones o nominaciones antes de que se reciba la 200OK, los controles o nominaciones no se volverán a realizar una vez recibida la 200OK.If checks and/or nominations are completed before the 200OK is received, checks and/or nominations will not be performed again after 200OK is received. La SBC no debe cambiar los candidatos para hielo, la contraseña y el ufrag (fragmento de nombre de usuario) entre 183 y 200.The SBC must not change ICE candidates, password, and ufrag (username fragment) between 183 and 200.

Para admitir los medios iniciales, la SBC puede iniciar la transmisión de los medios al candidato de ICE del mismo nivel, con la mayor prioridad en función de las comprobaciones de conectividad recibidas, incluso antes de que las noventa se completen mediante el punto de conexión de Teams.To support early media, the SBC may start streaming the media to the peer ICE candidate, with the highest priority based on received connectivity checks, even before nominations are completed by Teams endpoint. La SBC debe esperar medios de los equipos de cualquier candidato hasta que se completen las nominaciones.The SBC should expect media from Teams on any candidate until nominations are completed. Una vez que se ha designado a un candidato, el SBC debe restablecer el contexto adecuado para enviar y recibir paquetes de medios.Once a candidate is nominated, the SBC must reset to the right context to send and receive media packets.

Requisitos de soporte técnico de SRTPSRTP support requirements

La SBC debe admitir el cifrado de cifrado SRTP AES_CM_128_HMAC_SHA1_80 para la oferta y la respuesta en el siguiente formato:The SBC must support SRTP encryption cipher AES_CM_128_HMAC_SHA1_80 for offer and answer in the following format:

"inline:" <key||salt> ["|" lifetime]

El siguiente es un ejemplo del atributo criptográfico en la oferta de SDP de SBC:The following is an example of the crypto attribute in the SDP offer from the SBC:

a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:V/Lr6Lsvhad/crSB9kCQ28jrYDxR2Yfk5bXryH5V|2^31

Los parámetros MKI y length no son obligatorios.MKI and Length parameters are not required.

Para obtener más información, consulte la sección 6,1 de RFC 4568.For more information, see RFC 4568, section 6.1.

Requisitos de asistencia de SDESSDES support requirements

El dispositivo debe poder ofrecer SDES en el formato que se describe a continuación.The device must be able to offer SDES in the format as described below. Los procesadores de multimedia de Microsoft siempre prefieren SDES.Microsoft Media Processors always prefer SDES.

  • Con la omisión de contenido no multimedia, incluso si un cliente solo admite DTLS, los procesadores multimedia se convertirán en SDES.With non-media bypass, even if a client only supports DTLS, the Media Processors will convert to SDES.

  • Con la omisión de elementos multimedia, si un cliente solo se DTLS (el próximo estado de Google Chrome), el enrutamiento directo insertará un módulo de administración en la ruta de acceso, lo que convierte la llamada de la omisión de medios en una omisión no multimedia.With media bypass, if a client is DTLS only (future Google Chrome state), Direct Routing will insert an MP in the path, converting the call from media bypass to non-media bypass. Entre el componente de el procesador multimedia y la SBC de enrutamiento directo, siempre se usa SDES.Between the SBC and media processor component of Direct Routing, SDES is always used.

Por el momento, no hay ningún cliente de equipos que solo ofrezca DTLS; sin embargo, Google ha anunciado que, en algún momento, dejarán de admitir SDES.Currently, there are no Teams client that offer only DTLS; however Google has announced that at some point in time they will stop supporting SDES.

Formato de la oferta de SBC en el modo de omisiónFormat for offer from SBC in bypass mode

La oferta debe contener SDES y puede contener DTLS opcional en el siguiente formato:Offer must contain SDES and can contain DTLS optional in the following format:

m=audio 54056 UDP/TLS/RTP/SAVP 0 8 76 77 18 9 101 13
a=rtcp:54056
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:krXco0QRglwErMqtbMs2zSw29tBdmdgXpEYZhQmp|2^31
a=fingerprint:sha-256 AE:24:07:15:5C:B7:45:1A:E4:45:60:C1:1E:68:0E:CC:8D:A6:78:3B:76:65:BB:B0:77:88:07:F8:98:18:62:34
a=setup:actpass
a=rtcp-mux

Formato de la respuesta que contiene SDES a SBCFormat for answer containing SDES to SBC

m=audio 54056 RTP/SAVP 111 103 104 9 0 8 description 106 13 110 112 113 126
a=rtcp:54056
a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:fBc61ikv1kMy0sF85DblNqTzVAbFa7hJQ9GKb6Yj|2^31|1:1
a=crypto:3 AES_CM_128_HMAC_SHA1_80 inline:O1qT9tWbs/NwJVwhfrgF5tCrbNOxnVDqkIqTx4rz|2^31
a=rtcp-mux

Formato de la oferta de Teams a SBCFormat for offer from Teams to SBC

Formato de SDES solo para la oferta de SBCFormat for SDES only offer to SBC

m=audio 52884 RTP/SAVP 111 103 104 9 0 8 106 13 110 112 113 126
a=crypto:0 AES_CM_128_HMAC_SHA1_32 inline:Hr4D2cgUu9+Uza5Igz/JkVx59DAxDbaxJg862ibQ|2^31
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:JPEaIxHegfuv53ykBPZk8hV0GO8kTiiqRMfHimEE|2^31
a=rtcp:52884
a=rtcp-mux