ÜbersichtOverview

In diesem Artikel wird beschrieben, wie das direkte Routing die medienumgehung mit einem für Ice lite aktivierten Session Border Controller (SBC) unterstützt, wie in RFC 5245beschrieben.This article describes how Direct Routing supports media bypass with a Session Border Controller (SBC) enabled for ICE Lite as described in RFC 5245. Dieser Artikel richtet sich an sprach Administratoren, die für die Konfiguration der Verbindung zwischen dem lokalen SBC und dem SIP-Proxydienst verantwortlich sind.This article is intended for voice administrators who are responsible for configuring the connection between the on-premises SBC and the SIP proxy service.

Dieser Artikel enthält eine Übersicht über die Ice lite-Szenarien und die Anforderungen für die Interoperabilität.This article provides an overview of the ICE Lite scenarios and requirements for interoperability. In diesem Artikel werden die Nachrichtenformate und die erforderlichen Zustandsautomaten Übergänge beschrieben, um eine zuverlässige Anruf-und Medien Übermittlung zu gewährleisten.The article describes the message formats and the required state machine transitions for ensuring reliable call and media flow.

TerminologieTerminology

  • Erster Gruß – die ersten Worte, die vom Anrufer und angerufenen gesprochen werden.First Hello – The first words spoken by the caller and callee. Es ist wichtig, dass alle Anstrengungen unternommen werden, um sicherzustellen, dass die ersten Pakete von den Endpunkten für die meisten Anwendungsfälle zuverlässig bereitgestellt werden.It is important that all efforts are made to ensure that the first packets from the endpoints are delivered reliably for most use cases.

  • Forking – das Angebot des Anrufers wird möglicherweise an mehrere Endpunkte übermittelt, wenn der aufgerufene auf mehreren Geräten zur Verfügung steht (beispielsweise kann ein Team Benutzer in Teams für Windows und Teams für Android oder iPhone angemeldet sein).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).

  • Provisorische Antwort (183) – die Endpunkte für Anrufer für eine schnellere Anrufeinrichtung senden Sie eine Antwort mit den Kandidaten und Schlüsseln, die zum Einrichten des Medienflusses erforderlich sind.Provisional Answer (183) – The callee endpoints for faster call setup send an answer with the candidates and keys required to establish media flow. Dies erfolgt in Erwartung des Benutzers, der den Anruf (200OK) möglicherweise von dieser bestimmten aufgerufenen Instanz aus beantwortet.This is done in anticipation of the user potentially answering the call(200OK) from that specific callee instance. Mit Forking sollte der Anrufer bereit sein, mehrere provisorische Antworten zu erhalten.With forking, the caller should be ready to receive multiple provisional answers.

  • Re-invite – Angebot mit endgültigen Kandidaten, die vom ICE-Controlling-Endpunkt ausgewählt wurden.Re-Invite – Offer with final candidates selected by the ICE controlling endpoint. Dies hat das a = Remote-Candidate-Attribut, um alle Racebedingungen von der Behandlung mehrerer Gabeln zu lösen.This will have the a=remote-candidate attribute to resolve any race conditions from handling multiple forks.

  • Teams-Endpunkt – Dies kann entweder ein Server (medienprozessor, Transport Relay) oder der Client für Teams sein.Teams Endpoint – This could either be a server (Media Processor, Transport Relay) or the Teams client.

NachrichtenformatMessage format

Die Teams-Infrastruktur folgt RFC 5245 für Ice-lite.The Teams infrastructure follows RFC 5245 for ICE-Lite. Dies impliziert, dass alle Stun-Nachrichten mit RFC 5389kompatibel sind.This implies that all the STUN messages will be compliant with RFC 5389.

Das SBCS, wie es in RFC 5389 erforderlich ist, muss alle Betäubungs Attribute ignorieren, die Sie nicht erkennen, und die Nachrichten mit den bekannten Attributen weiterverarbeiten.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.

Wenn fehlerhafte Pakete empfangen werden, müssen die Pakete verworfen werden, ohne dass dies Auswirkungen auf die Einrichtung der Mediensitzung hat.If any malformed packets are received, the packets must be discarded without impacting the media session establishment.

Ice lite-AnforderungenICE Lite requirements

In diesem Abschnitt werden die Anforderungen für Ice lite kurz erfasst.This section briefly captures the requirements for ICE Lite.

Kandidaten SammlungCandidate gathering

Der SBC muss nur einen Kandidaten anbieten, der öffentlich erreichbar ist.The SBC must offer only one candidate that is publicly reachable. Derzeit werden nur IPv4-Kandidaten unterstützt.Currently, only IPV4 candidates are supported.

Verbindungs ÜberprüfungenConnectivity checks

Die Ice lite-Implementierung muss auf alle empfangenen Verbindungs Überprüfungen Antworten.The ICE Lite implementation must respond to any connectivity checks received. Der Ice lite-Endpunkt darf keine Verbindungs Prüfanforderungen senden.The ICE Lite endpoint must not send any connectivity check requests. (Wenn Verbindungs Überprüfungen verstoßen werden, wird die vollständige Implementierung beantwortet, was dazu führen kann, dass unerwartete Peer-abgeleitete Kandidaten erkannt werden und möglicherweise zu Anruf Fehlern führen.)(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.)

NominierungenNominations

Der vollständige Implementierungs Endpunkt für ICE ist immer der steuernde Endpunkt und folgt "normalen" Nominierungen für die Auswahl der endgültigen Kandidaten, die für den Medienfluss verwendet werden sollen.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. Der Ice lite-Endpunkt kann die Nominierungen verwenden, um den für Medien und die komplette Anrufeinrichtung zu verwendenden Pfad abzuschließen.The ICE Lite endpoint can use the nominations to conclude the path to be used for media and complete call establishment.

Hinweis: bei der Verzweigung mit Peer Endpunkten, die 183 provisorische Antworten senden, muss der SBC bereit sein, auf Prüfungen von mehreren Endpunkten und auch Nominierungen von mehreren Endpunkten zu reagieren, wenn die Nominierungen vor 200OK erfolgen.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. Je nach Konvergenz des ICE State Machine auf dem endgültigen Pfad und dem Zeitpunkt der Antwort des Benutzers können die Nominierungen vor oder nach dem 200OK erfolgen.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. Der SBC muss in der Lage sein, beide Fälle zu verarbeiten.The SBC must be able to handle both cases.

Konvergierende für VerzweigungConverging for forking

Wenn das Angebot des SBC an mehrere Endpunkte für Teams abzweigt, können die Endpunkte der Teams mit einer provisorischen Antwort Antworten und Verbindungs Prüfungen starten.If the offer from the SBC forks to multiple Teams endpoints, the Teams endpoints may respond with a provisional answer and start connectivity checks. Der SBC muss bereit sein, Verbindungs Überprüfungen zu empfangen und auf Verbindungs Überprüfungen von mehreren Peer Endpunkten zu reagieren.The SBC must be prepared to receive connectivity checks and respond to connectivity checks from multiple peer endpoints. So kann beispielsweise der Benutzer von Teams sowohl auf einem Desktop-Computer als auch auf einem Mobiltelefon angemeldet sein.For example, the Teams user could be signed on to both a desktop and a cell phone. Beide Geräte werden über den eingehenden Anruf benachrichtigt und versuchen, Verbindungs Prüfungen mit dem SBC durchführen zu lassen.Both devices will be notified of the inbound call and will attempt connectivity checks with the SBC.

Schließlich wird nur einer der Endpunkte den Anruf annehmen (200OK).Eventually only one of the endpoints will answer the call (200OK). Beim Empfang des 200OK kann der SBC den richtigen Kontext für die Verarbeitung der Medienpakete einrichten.On receiving the 200OK, the SBC can set up the right context for processing the media packets.

SzenarienScenarios

Eingehender Anruf von SBCInbound call from SBC

Für dieses Szenario gibt es mehrere mögliche Peer Endpunkte, die vom SBC behandelt werden müssen:For this scenario, there are several possible peer endpoints that the SBC must handle:

  • Server Endpunkte werden in der Regel direkt mit 200OK beantwortet.Server endpoints will typically respond directly with 200OK. Hierbei handelt es sich um vollständige Ice-Endpunkte, die normalerweise in Szenarien für Voicemail, Anrufwarteschlange und automatische Telefonzentrale involviert sind.These are full ICE endpoints that are typically involved in Voicemail, Call queue, and Auto attendant scenarios.

  • Client Endpunkte können mehrere provisorische Antworten mit unterschiedlichen from/to-Tags (183) senden, gefolgt von einem 200OK vom Endpunkt, der den Anruf annimmt.Client endpoints can send multiple provisional answers with different From/To tags (183) followed by a 200OK from the endpoint that answers the call. Hierbei handelt es sich um vollständige Ice-Endpunkte, die Endbenutzer Clients darstellen.These are full ICE endpoints typically representing end user clients.

  • Andere SBC-Endpunkte.Other SBC endpoints. Hierbei handelt es sich um Ice lite-Endpunkte, die normalerweise in das Szenario der gleichzeitigen Klingeln von Clientendpunkten und anderen Telefonnummern involviert sind.These are ICE Lite endpoints typically involved in the scenario of simultaneously ringing client endpoints and another phone number(s).

Der SBC muss auf alle gültigen Verbindungs Prüfungsanforderungen Antworten, die von den vollständigen Ice-Endpunkten empfangen werden.The SBC must respond to all valid connectivity check requests received from the full ICE endpoints. Pro RFC werden die vollständigen Ice-Endpunkte zu steuernden Endpunkten.Per RFC, the full ICE endpoints will become Controlling endpoints. Die Endpunkte der Teams (Client/Server) führen "reguläre" Nominierungen aus, um Verbindungs Prüfungen abzuschließen.The Teams (client/server) endpoints will perform “Regular” nominations to complete connectivity checks. Die endgültige 200Ok kann entweder von einem Endpunkt sein, der ein früheres Medium gesendet hat, oder von einem anderen Endpunkt.The final 200Ok can either be from an endpoint that sent early media or from a different endpoint. Beim Empfang des 200Ok muss der SBC den richtigen Kontext für den Medienfluss einrichten.On receiving the 200Ok, the SBC must set up the right context for media flow.

Frühe MedienEarly media

Wenn ein früher Medienfluss vorliegt, muss sich der SBC an den ersten Endpunkt verriegeln, der Streaming-Medien startet. der Medienfluss kann beginnen, bevor Kandidaten nominiert werden.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. Der SBC sollte in dieser Phase Unterstützung für das Senden von DTMF haben, um IVR/Voicemail-Szenarien zu ermöglichen.The SBC should have support for sending DTMF during this phase to enable IVR/voicemail scenarios. Der SBC sollte den Pfad mit der höchsten Priorität verwenden, auf dem er überprüft hat, ob die Nominierungen nicht abgeschlossen wurden.The SBC should use the highest priority path on which it has received checks if nominations have not completed.

Outbound-Anruf an SBCOutbound call to SBC

Die Endpunkte der Teams sind der Aufrufer für dieses Szenario und der steuernde Endpunkt.The Teams endpoints are the Caller for this scenario and will be the Controlling Endpoint. Beim Empfang einer provisorischen Antwort (183) oder einer endgültigen Antwort (200OK) startet der Team-Endpunkt Verbindungs Prüfungen und führt zu "normalen" Nominierungen, um die Verbindungs Prüfungen abzuschließen.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.

Hinweis: Wenn der SBC eine provisorische Antwort (183) sendet, muss der SBC bereit sein, Verbindungs Prüfanforderungen zu empfangen und die Nominierungen möglicherweise abzuschließen, bevor der 200OK vom SBC gesendet wird.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. Wenn Schecks und/oder Nominierungen abgeschlossen werden, bevor die 200OK eingehen, werden die Überprüfungen und/oder Nominierungen nach Eingang von 200OK nicht mehr durchgeführt.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. Der SBC darf die Ice-Kandidaten, das Kennwort und den ufrag (username-Fragment) nicht zwischen 183 und 200 ändern.The SBC must not change ICE candidates, password, and ufrag (username fragment) between 183 and 200.

Um frühe Medien zu unterstützen, kann der SBC mit dem Streaming der Medien an den Peer Ice-Kandidaten beginnen, wobei die höchste Priorität auf der Grundlage empfangener Verbindungs Überprüfungen liegt, noch bevor die Nominierungen vom Teams-Endpunkt abgeschlossen werden.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. Der SBC sollte erwarten, dass Medien aus Teams an einem beliebigen Kandidaten, bis die Nominierungen abgeschlossen sind.The SBC should expect media from Teams on any candidate until nominations are completed. Sobald ein Kandidat nominiert wurde, muss der SBC auf den richtigen Kontext zurückgesetzt werden, um Medienpakete zu senden und zu empfangen.Once a candidate is nominated, the SBC must reset to the right context to send and receive media packets.

Anforderungen für die SRTP-UnterstützungSRTP support requirements

Der SBC muss die SRTP-Verschlüsselungs Verschlüsselungs AES_CM_128_HMAC_SHA1_80 für Angebot und Antwort im folgenden Format unterstützen: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]

Der folgende Code ist ein Beispiel für das Crypto-Attribut im SDP-Angebot aus dem 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

Die Parameter MkII und length sind nicht erforderlich.MKI and Length parameters are not required.

Weitere Informationen finden Sie in RFC 4568, Abschnitt 6,1.For more information, see RFC 4568, section 6.1.

SDES-SupportanforderungenSDES support requirements

Das Gerät muss SDES in dem Format anbieten können, wie nachstehend beschrieben.The device must be able to offer SDES in the format as described below. Microsoft Media Processors bevorzugen immer SDES.Microsoft Media Processors always prefer SDES.

  • Auch wenn ein Client nur DTLS unterstützt, werden die Medien Prozessoren in SDES konvertiert, wenn keine medienumgehung erfolgt.With non-media bypass, even if a client only supports DTLS, the Media Processors will convert to SDES.

  • Wenn ein Client nur DTLS (zukünftiger Google Chrome-Status) ist, wird mit der medienumgehung ein MP-Element in den Pfad eingefügt, und der Anruf wird von der medienumgehung in die nicht-medienumgehung konvertiert.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. Zwischen der SBC-und der medienprozessor Komponente des direkten Routings wird immer SDES verwendet.Between the SBC and media processor component of Direct Routing, SDES is always used.

Derzeit gibt es keinen Team-Client, der nur DTLS bietet; Google hat jedoch angekündigt, dass Sie zu einem bestimmten Zeitpunkt die Unterstützung von SDES beenden werden.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.

Format für das Angebot von SBC im Bypass-ModusFormat for offer from SBC in bypass mode

Das Angebot muss SDES enthalten und kann DTLS optional im folgenden Format enthalten: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

Format für Antwort mit SDES in 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

Format für Angebot von Teams in SBCFormat for offer from Teams to SBC

Format für SDES-Angebot nur für 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