PanoramicaOverview

Questo articolo descrive in che modo il routing diretto supporta il bypass multimediale con un session border controller (SBC) abilitato per ICE Lite, come descritto in 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. Questo articolo è rivolto agli amministratori vocali responsabili della configurazione della connessione tra il servizio SBC locale e il servizio 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.

Questo articolo fornisce una panoramica degli scenari e dei requisiti ice Lite per l'interoperabilità.This article provides an overview of the ICE Lite scenarios and requirements for interoperability. L'articolo descrive i formati dei messaggi e le transizioni richieste della macchina a stati per garantire un flusso affidabile di chiamate e supporti.The article describes the message formats and the required state machine transitions for ensuring reliable call and media flow.

TerminologiaTerminology

  • First Hello: le prime parole pronunciate dal chiamante e dal chiamato.First Hello – The first words spoken by the caller and callee. È importante fare tutto il possibile per garantire che i primi pacchetti degli endpoint siano recapitati in modo affidabile per la maggior parte dei casi d'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.

  • Forking: l'offerta del chiamante potrebbe essere recapitata a più endpoint del chiamato se il chiamato è disponibile su più dispositivi (ad esempio, un utente di Teams potrebbe aver eseguito l'accesso a Teams per Windows e Teams per 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).

  • Risposta provvisoria (183) - Gli endpoint del chiamato per una configurazione più rapida della chiamata inviano una risposta con i candidati e i tasti necessari per stabilire il flusso multimediale.Provisional Answer (183) – The callee endpoints for faster call setup send an answer with the candidates and keys required to establish media flow. Questa operazione viene eseguita in previsione che l'utente risponda potenzialmente alla chiamata(200OK) da quella specifica istanza del chiamato.This is done in anticipation of the user potentially answering the call(200OK) from that specific callee instance. Con il forking, il chiamante dovrebbe essere pronto a ricevere più risposte provvisorie.With forking, the caller should be ready to receive multiple provisional answers.

  • Re-Invite: offerta con i candidati finali selezionati dall'endpoint di controllo ICE.Re-Invite – Offer with final candidates selected by the ICE controlling endpoint. Questo avrà l'attributo a=remote-candidate per risolvere eventuali condizioni di gara dalla gestione di più forche.This will have the a=remote-candidate attribute to resolve any race conditions from handling multiple forks.

  • Teams Endpoint: può trattarsi di un server (Processore multimediale, Inoltro di trasporto) o Teams client.Teams Endpoint – This could either be a server (Media Processor, Transport Relay) or the Teams client.

Formato del messaggioMessage format

L Teams dell'infrastruttura segue l'RFC 5245 per ICE-Lite.The Teams infrastructure follows RFC 5245 for ICE-Lite. Questo implica che tutti i messaggi STUN saranno conformi a RFC 5389.This implies that all the STUN messages will be compliant with RFC 5389.

Gli SBC come richiesto da RFC 5389 devono ignorare gli attributi STUN che non riconoscono e continuare a elaborare i messaggi con gli attributi noti.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.

Se vengono ricevuti pacchetti in formato non corretto, i pacchetti devono essere eliminati senza influire sulla creazione della sessione multimediale.If any malformed packets are received, the packets must be discarded without impacting the media session establishment.

Requisiti ice LiteICE Lite requirements

Questa sezione acquisisce brevemente i requisiti per ICE Lite.This section briefly captures the requirements for ICE Lite.

Raccolta di candidatiCandidate gathering

L'SBC deve offrire un solo candidato accessibile pubblicamente.The SBC must offer only one candidate that is publicly reachable. Attualmente sono supportati solo i candidati IPV4.Currently, only IPV4 candidates are supported.

Controlli di connettivitàConnectivity checks

L'implementazione ICE Lite deve rispondere a tutti i controlli di connettività ricevuti.The ICE Lite implementation must respond to any connectivity checks received. L'endpoint ICE Lite non deve inviare richieste di controllo della connettività.The ICE Lite endpoint must not send any connectivity check requests. Se i controlli di connettività vengono inviati in violazione, l'implementazione completa risponderà, il che può comportare l'individuarsi di candidati imprevisti derivati da peer e potenzialmente errori di chiamata.(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.)

CandidatureNominations

L'endpoint di implementazione completa ICE sarà sempre l'endpoint di controllo e seguirà le nomine "regolari" per la selezione dei candidati finali da usare per il flusso multimediale.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. L'endpoint ICE Lite può usare le nomine per concludere il percorso da usare per i supporti multimediali e completare la creazione di chiamate.The ICE Lite endpoint can use the nominations to conclude the path to be used for media and complete call establishment.

Nota: nel caso di un forking con endpoint peer che inviano 183 risposte provvisorie, SBC deve essere pronto a rispondere ai controlli provenienti da più endpoint e anche alle nomine da più endpoint se le nomine si verificano prima del 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. A seconda della convergenza della macchina a stati ICE sul percorso finale e dell'intervallo di risposta dell'utente, le nomine possono avvenire prima o dopo il 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. SBC deve essere in grado di gestire entrambi i casi.The SBC must be able to handle both cases.

Convergenza per il forkingConverging for forking

Se l'offerta da SBC viene forcata a più endpoint Teams, gli endpoint Teams possono rispondere con una risposta provvisoria e avviare i controlli di connettività.If the offer from the SBC forks to multiple Teams endpoints, the Teams endpoints may respond with a provisional answer and start connectivity checks. SBC deve essere preparato per ricevere i controlli di connettività e rispondere ai controlli di connettività da più endpoint peer.The SBC must be prepared to receive connectivity checks and respond to connectivity checks from multiple peer endpoints. Ad esempio, l Teams utente potrebbe essere connesso sia a un desktop che a un cellulare.For example, the Teams user could be signed on to both a desktop and a cell phone. Entrambi i dispositivi riceveranno una notifica della chiamata in ingresso e tenteranno di verificare la connettività con SBC.Both devices will be notified of the inbound call and will attempt connectivity checks with the SBC.

Alla fine solo uno degli endpoint risponderà alla chiamata (200OK).Eventually only one of the endpoints will answer the call (200OK). Quando si riceve 200OK, SBC può configurare il contesto giusto per l'elaborazione dei pacchetti multimediali.On receiving the 200OK, the SBC can set up the right context for processing the media packets.

ScenariScenarios

Chiamata in ingresso da SBCInbound call from SBC

Per questo scenario, sono disponibili diversi endpoint peer che il servizio SBC deve gestire:For this scenario, there are several possible peer endpoints that the SBC must handle:

  • Gli endpoint del server in genere rispondono direttamente con 200OK.Server endpoints will typically respond directly with 200OK. Si tratta di endpoint ICE completi che in genere sono coinvolti negli scenari di segreteria telefonica, coda di chiamata e operatore automatico.These are full ICE endpoints that are typically involved in Voicemail, Call queue, and Auto attendant scenarios.

  • Gli endpoint client possono inviare più risposte provvisorie con tag From/To diversi (183) seguiti da un 200OK dall'endpoint che risponde alla chiamata.Client endpoints can send multiple provisional answers with different From/To tags (183) followed by a 200OK from the endpoint that answers the call. Si tratta di endpoint ICE completi che rappresentano in genere i client degli utenti finali.These are full ICE endpoints typically representing end user clients.

  • Altri endpoint SBC.Other SBC endpoints. Si tratta di endpoint ICE Lite in genere coinvolti nello scenario di squillo simultaneo degli endpoint client e di altri numeri di telefono.These are ICE Lite endpoints typically involved in the scenario of simultaneously ringing client endpoints and another phone number(s).

SBC deve rispondere a tutte le richieste di controllo della connettività valide ricevute dagli endpoint ICE completi.The SBC must respond to all valid connectivity check requests received from the full ICE endpoints. Per RFC, gli endpoint ICE completi diventeranno Controllo degli endpoint.Per RFC, the full ICE endpoints will become Controlling endpoints. Gli endpoint Teams (client/server) eseguiranno nomine "regolari" per completare i controlli di connettività.The Teams (client/server) endpoints will perform “Regular” nominations to complete connectivity checks. Il 200Ok finale può essere da un endpoint che ha inviato elementi multimediali iniziali o da un endpoint diverso.The final 200Ok can either be from an endpoint that sent early media or from a different endpoint. Quando si riceve 200Ok, SBC deve configurare il contesto giusto per il flusso multimediale.On receiving the 200Ok, the SBC must set up the right context for media flow.

Elementi multimediali inizialiEarly media

Se è presente un flusso multimediale iniziale, il dispositivo SBC deve eseguire il latch al primo endpoint che avvia lo streaming multimediale. il flusso multimediale può iniziare prima della nomina dei candidati.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. L'SBC dovrebbe avere il supporto per l'invio di DTMF durante questa fase per abilitare gli scenari IVR/segreteria telefonica.The SBC should have support for sending DTMF during this phase to enable IVR/voicemail scenarios. L'SBC deve usare il percorso con la priorità più alta in cui ha ricevuto i controlli se le nomine non sono state completate.The SBC should use the highest priority path on which it has received checks if nominations have not completed.

Chiamata in uscita a SBCOutbound call to SBC

Gli Teams endpoint sono il Chiamante per questo scenario e saranno l'endpoint di controllo.The Teams endpoints are the Caller for this scenario and will be the Controlling Endpoint. Quando si riceve una risposta provvisoria (183) o una risposta finale(200OK), l'endpoint di Teams avvia i controlli di connettività e procede alle nomine "regolari" per completare i controlli di connettività.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: se SBC invia una risposta provvisoria (183), deve essere pronto per ricevere le richieste di verifica della connettività e potenzialmente completare le nomine prima che il 200OK venga inviato dalla SBC.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. Se i controlli e/o le nomine vengono completate prima della ricezione del 200OK, i controlli e/o le nomine non verranno eseguiti di nuovo dopo la ricezione di 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. L'SBC non deve modificare i candidati ICE, la password e l'ufrag (frammento del nome utente) tra 183 e 200.The SBC must not change ICE candidates, password, and ufrag (username fragment) between 183 and 200.

Per supportare i primi media, la SBC può iniziare a trasmettere i contenuti multimediali al candidato ICE peer, con la priorità più alta in base ai controlli di connettività ricevuti, anche prima che le candidature siano completate da un endpoint Teams finale.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 dovrebbe aspettarsi che i media Teams su qualsiasi candidato fino al completamento delle candidature.The SBC should expect media from Teams on any candidate until nominations are completed. Dopo la nomina di un candidato, il SBC deve reimpostare il contesto giusto per inviare e ricevere pacchetti multimediali.Once a candidate is nominated, the SBC must reset to the right context to send and receive media packets.

Requisiti di supporto SRTPSRTP support requirements

La crittografia SBC deve supportare i AES_CM_128_HMAC_SHA1_80 crittografia SRTP per offrire e rispondere nel formato seguente: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]

Di seguito è riportato un esempio dell'attributo crypto nell'offerta SDP da 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

I parametri MKI e Length non sono obbligatori.MKI and Length parameters are not required.

Per altre informazioni, vedere RFC 4568, sezione 6.1.For more information, see RFC 4568, section 6.1.

Requisiti di supporto per SDESSDES support requirements

Il dispositivo deve essere in grado di offrire SDES nel formato descritto di seguito.The device must be able to offer SDES in the format as described below. I processori Microsoft Media preferiscono sempre SDES.Microsoft Media Processors always prefer SDES.

  • Con il bypass non multimediale, anche se un client supporta solo DTLS, i processori multimediali verranno convertiti in SDES.With non-media bypass, even if a client only supports DTLS, the Media Processors will convert to SDES.

  • Con il bypass multimediale, se un client è solo DTLS (stato futuro di Google Chrome), Direct Routing inserirà un MP nel percorso, convertendo la chiamata da bypass multimediale a bypass non multimediale.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. Tra il componente SBC e il processore multimediale di Direct Routing, viene sempre usato SDES.Between the SBC and media processor component of Direct Routing, SDES is always used.

Attualmente non sono disponibili client Teams che offrono solo DTLS. Tuttavia, Google ha annunciato che, a un certo punto, smetterà di supportare 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 per l'offerta da SBC in modalità bypassFormat for offer from SBC in bypass mode

Offer deve contenere SDES e può contenere DTLS facoltativo nel formato seguente: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 per la risposta contenente da 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 per l'offerta da Teams a SBCFormat for offer from Teams to SBC

Format for SDES only offer to 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