Direct Routing – SIP-ProtokollDirect Routing - SIP protocol

In diesem Artikel wird beschrieben, wie das direkte Routing das Session Initiation Protocol (SIP) implementiert.This article describes how Direct Routing implements the Session Initiation Protocol (SIP). Um den Datenverkehr zwischen einem Session Border Controller (SBC) und dem SIP-Proxy ordnungsgemäß weiterzuleiten, müssen einige SIP-Parameter bestimmte Werte aufweisen.To properly route traffic between a Session Border Controller (SBC) and the SIP proxy, some SIP parameters must have specific values. 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.

Verarbeiten der eingehenden Anforderung: Suchen des Mandanten und des BenutzersProcessing the incoming request: finding the tenant and user

Bei einem eingehenden Anruf muss der SIP-Proxy den Mandanten finden, zu dem der Anruf bestimmt ist, und den jeweiligen Nutzer innerhalb dieses Mandanten finden.On an incoming call, the SIP proxy needs to find the tenant to which the call is destined and find the specific user within this tenant. Der mandantenadministrator kann nicht-DID-Nummern konfigurieren, beispielsweise + 1001, in mehreren Mandanten.The tenant administrator might configure non-DID numbers, for example +1001, in multiple tenants. Daher ist es wichtig, den jeweiligen Mandanten zu finden, für den die Nummernsuche durchgeführt werden soll, da die nicht-DID-Nummern in mehreren Microsoft 365-oder Office 365-Organisationen identisch sein können.Therefore, it is important to find the specific tenant on which to perform the number lookup because the non-DID numbers might be the same in multiple Microsoft 365 or Office 365 organizations.

In diesem Abschnitt wird beschrieben, wie der SIP-Proxy den Mandanten und den Benutzer findet und die Authentifizierung des SBC für die eingehende Verbindung ausführt.This section describes how the SIP proxy finds the tenant and the user, and performs authentication of the SBC on the incoming connection.

Der folgende Code ist ein Beispiel für die SIP-Einladungsnachricht bei einem eingehenden Anruf:The following is an example of the SIP Invite message on an incoming call:

Parameter NameParameter name Beispiel für den WertExample of the value
Request-URIRequest-URI INVITE SIP:+18338006777@SIP.pstnhub.Microsoft.com SIP/2,0INVITE sip:+18338006777@sip.pstnhub.microsoft.com SIP /2.0
ÜberschriftVia Header Über: SIP/2.0/TLS sbc1. adatum. biz: 5058; Alias; Branch = z9hG4bKac2121518978Via: SIP/2.0/TLS sbc1.adatum.biz:5058;alias;branch=z9hG4bKac2121518978
Max-Forwards-KopfzeileMax-Forwards header Max-Forwards: 68Max-Forwards:68
From-KopfzeileFrom Header From Header from: <SIP: 7168712781@sbc1. adatum. biz; Transport = UDP; Tag = 1c747237679From Header From: sip:7168712781@sbc1.adatum.biz;transport=udp;tag=1c747237679</span
KopfzeileTo Header An: SIP:+183338006777@sbc1.adatum.bizTo: sip:+183338006777@sbc1.adatum.biz
CSeq-KopfzeileCSeq header CSeq: 1 EinladungCSeq: 1 INVITE
Kontakt KopfzeileContact Header Kontakt: <SIP: 68712781@sbc1. adatum. biz: 5058; Transport = TLS>Contact: <sip: 68712781@sbc1.adatum.biz:5058;transport=tls>

Beim Empfang der Einladung führt der SIP-Proxy die folgenden Schritte aus:On receiving the invite, the SIP proxy performs the following steps:

  1. Überprüfen Sie das Zertifikat.Check the certificate. Bei der ersten Verbindung übernimmt der Direct Routing-Dienst den FQDN-Namen, der in der Kontakt Kopfzeile angezeigt wird, und vergleicht ihn mit dem allgemeinen Namen oder dem alternativen Subjektnamen des vorgestellten Zertifikats.On the initial connection, the Direct Routing service takes the FQDN name presented in the Contact header and matches it to the Common Name or Subject Alternative name of the presented certificate. Der SBC-Name muss mit einer der folgenden Optionen übereinstimmen:The SBC name must match one of the following options:

    • Option 1.Option 1. Der vollständige FQDN-Name, der in der Kontakt Kopfzeile angezeigt wird, muss dem allgemeinen Namen/Subjekt alternativen Namen des vorgestellten Zertifikats entsprechen.The full FQDN name presented in the Contact header must match the Common Name/Subject Alternative name of the presented certificate.

    • Option 2.Option 2. Der Domänenteil des FQDN-namens, der in der Kontakt Kopfzeile angezeigt wird (beispielsweise adatum.biz des FQDN-namens sbc1.adatum.biz), muss dem Platzhalterwert im allgemeinen Namen/Subjekt alternativen Namen (beispielsweise *. adatum.biz) entsprechen.The domain portion of the FQDN name presented in the Contact header (for example adatum.biz of the FQDN name sbc1.adatum.biz) must match the wildcard value in Common Name/Subject Alternative Name (for example *.adatum.biz).

  2. Versuchen Sie, einen Mandanten mit dem vollständigen FQDN-Namen zu finden, der in der Kontakt Kopfzeile dargestellt wird.Try to find a tenant using the full FQDN name presented in the Contact header.

    Überprüfen Sie, ob der FQDN-Name aus der Kontakt Kopfzeile (sbc1.adatum.biz) in einer Microsoft 365-oder Office 365-Organisation als DNS-Name registriert ist.Check if the FQDN name from the Contact header (sbc1.adatum.biz) is registered as a DNS name in any Microsoft 365 or Office 365 organization. Wenn Sie gefunden wird, wird die Suche des Benutzers im Mandanten durchgeführt, auf dem der SBC-FQDN als Domänenname registriert ist.If found, the lookup of the user is performed in the tenant that has the SBC FQDN registered as a Domain name. Wenn Sie nicht gefunden wird, gilt Schritt 3.If not found, Step 3 applies.

  3. Schritt 3 gilt nur, wenn Schritt 2 fehlgeschlagen ist.Step 3 only applies if Step 2 failed.

    Entfernen Sie den Host Anteil aus dem FQDN, der in der Kontakt Kopfzeile (FQDN: sbc12.adatum.biz nach dem Entfernen des Host Abschnitts: adatum.biz) angezeigt wird, und überprüfen Sie, ob dieser Name in einer beliebigen Microsoft 365-oder Office 365-Organisation als DNS-Name registriert ist.Remove the host portion from the FQDN, presented in the Contact header (FQDN: sbc12.adatum.biz, after removing the host portion: adatum.biz), and check if this name is registered as a DNS name in any Microsoft 365 or Office 365 organization. Wenn Sie gefunden wird, wird die Benutzersuche in diesem Mandanten ausgeführt.If found, the user lookup is performed in this tenant. Wenn nicht gefunden, schlägt der Anruf fehl.If not found, the call fails.

  4. Führen Sie mit der im Anforderungs-URI vorgestellten Telefonnummer die umgekehrte Nummernsuche innerhalb des Mandanten durch, der in Schritt 2 oder 3 gefunden wurde.Using the phone number presented in the Request-URI, perform the reverse number lookup within the tenant found in Step 2 or 3. Vergleichen Sie die vorgestellten Telefonnummern mit einem SIP-URI des Benutzers innerhalb des Mandanten, der im vorherigen Schritt gefunden wurde.Match the presented phone number to a user SIP URI within the tenant found on the previous step.

  5. Übernehmen Sie trunk-Einstellungen.Apply trunk settings. Suchen Sie die vom mandantenadministrator für diesen SBC festgelegten Parameter.Find the parameters set by the tenant admin for this SBC.

    Microsoft unterstützt nicht die Nutzung eines SIP-Proxys eines Drittanbieters oder eines Benutzer-Agent-Servers zwischen dem Microsoft SIP-Proxy und dem gekoppelten SBC, wodurch der vom gekoppelten SBC erstellte Anforderungs-URI geändert werden kann.Microsoft does not support having a third-party SIP proxy or User Agent Server between the Microsoft SIP proxy and the paired SBC, which might modify the Request URI created by the paired SBC.

    Die Anforderungen für die beiden Nachschlagevorgänge (Schritte 2 und 3), die für das Szenario erforderlich sind, in dem ein SBC mit vielen Mandanten (Carrier-Szenario) verbunden ist, werden später in diesem Artikel behandelt.The requirements for the two lookups (steps 2 and 3) needed for the scenario where one SBC is interconnected to many tenants (carrier scenario) are covered later in this article.

Detaillierte Anforderungen für Kontakt Kopf-und Anforderungs-URIDetailed requirements for Contact header and Request-URI

Kontakt KopfzeileContact header

Für alle eingehenden Anrufe an den Microsoft SIP-Proxy muss der Kontakt Kopf den gepaarten SBC-FQDN im URI-Hostname wie folgt aufweisen:For all incoming calls to the Microsoft SIP proxy, the Contact header must have the paired SBC FQDN in the URI hostname as follows:

Syntax: Contact: <SIP: Telefon-oder SIP-Address@FQDN des SBC; Transport = TLS>Syntax: Contact: <sip:phone or sip address@FQDN of the SBC;transport=tls>

Dieser Name muss sich auch im Feld "allgemeiner Name" oder "alternativer Antragstellername" (n) des vorgestellten Zertifikats befinden.This name must also be in the Common Name or Subject Alternative name field(s) of the presented certificate. Microsoft unterstützt die Verwendung von Platzhalterwerten der Namen in den Feldern allgemeiner Name oder alternativer Antragstellername des Zertifikats.Microsoft supports using wildcard values of the name(s) in the Common Name or Subject Alternative Name fields of the certificate.

Die Unterstützung für Platzhalter wird in RFC 2818, Abschnitt 3,1,beschrieben.The support for wildcards is described in RFC 2818, section 3.1. SpeziellSpecifically:

"Namen können das Platzhalterzeichen enthalten, * das als Übereinstimmung mit einer einzelnen domänennamenkomponente oder einem Komponenten Fragment angesehen wird. *A.com entspricht beispielsweise foo.a.com, aber nicht Bar.foo.a.com. f * . com, entspricht foo.com, aber nicht Bar.com. ""Names may contain the wildcard character * which is considered to match any single domain name component or component fragment. E.g., *.a.com matches foo.a.com but not bar.foo.a.com. f*.com matches foo.com but not bar.com."

Wenn mehr als ein Wert in der in einer SIP-Nachricht vorgestellten Kontakt Kopfzeile vom SBC gesendet wird, wird nur der FQDN-Teil des ersten Werts des Contact-Headers verwendet.If more than one value in the Contact header presented in a SIP message is sent by the SBC, only the FQDN portion of the first value of the Contact header is used.

Request-URIRequest-URI

Für alle eingehenden Anrufe wird der Request-URI verwendet, um die Telefonnummer an einen Benutzer anzupassen.For all incoming calls, the Request-URI is used to match the phone number to a user.

Derzeit muss die Telefonnummer ein Pluszeichen (+) enthalten, wie im folgenden Beispiel gezeigt.Currently The phone number must contain a plus sign (+) as shown in the following example.

INVITE sip:+18338006777@sip.pstnhub.microsoft.com SIP /2.0

Überlegungen zum Kontakt und Aufzeichnen von RoutenkopfzeilenContact and Record-Route headers considerations

Der SIP-Proxy muss den FQDN des nächsten Hop für neue in-Dialog-Clienttransaktionen berechnen (beispielsweise bye oder Re-invite) und bei der Beantwortung von SIP-Optionen.The SIP proxy needs to calculate the next hop FQDN for new in-dialog client transactions (for example Bye or Re-Invite), and when replying to SIP Options. Es werden entweder Kontakt-oder Daten Satz Routen verwendet.Either Contact or Record-Route are used.

Gemäß RFC 3261 ist in jeder Anforderung, die zu einem neuen Dialog führen kann, eine Kontakt Kopfzeile erforderlich.According to RFC 3261, Contact header is required in any request that can result in a new dialog. Die Daten Satz Route ist nur erforderlich, wenn ein Proxy den Pfad zukünftiger Anforderungen in einem Dialogfeld beibehalten möchte.The Record-Route is only required if a proxy wants to stay on the path of future requests in a dialog. Wenn ein Proxy-SBC mit lokaler Medienoptimierung für das direkte Routingverwendet wird, muss eine Daten Satz Route so konfiguriert werden, dass der Proxy-SBC in der Route bleiben muss.If a proxy SBC is in use with Local Media Optimization for Direct Routing, a record route will need to be configured as the proxy SBC needs to stay in the route.

Microsoft empfiehlt, nur die Kontakt Kopfzeile zu verwenden, wenn kein Proxy-SBC verwendet wird:Microsoft recommends using only Contact header if a proxy SBC is not used:

  • Pro RFC 3261 wird Record-Route verwendet, wenn ein Proxy den Pfad zukünftiger Anforderungen in einem Dialogfeld beibehalten möchte, was nicht unbedingt erforderlich ist, wenn kein Proxy-SBC konfiguriert ist, da der gesamte Datenverkehr zwischen dem Microsoft SIP-Proxy und dem gekoppelten SBC verläuft.Per RFC 3261, Record-Route is used if a proxy wants to stay on the path of future requests in a dialog, which is not essential if no proxy SBC is configured as all traffic goes between the Microsoft SIP proxy and the paired SBC.

  • Der Microsoft SIP-Proxy verwendet nur Kontakt Kopfzeile (keine Daten Satz Route), um den nächsten Hop beim Senden von ausgehenden Ping-Optionen zu ermitteln.The Microsoft SIP proxy uses only Contact header (not Record-Route) to determine the next hop when sending outbound ping Options. Wenn ein Proxy-SBC nicht verwendet wird, wird die Verwaltung vereinfacht, wenn nur ein Parameter (Kontakt) statt zwei (Kontakt-und Daten Satz-Route) konfiguriert wird.Configuring only one parameter (Contact) instead of two (Contact and Record-Route) simplifies the administration if a proxy SBC is not in use.

Zur Berechnung des nächsten Hop verwendet der SIP-Proxy Folgendes:To calculate the next hop, the SIP proxy uses:

  • Priorität 1Priority 1. Record-Route auf oberster Ebene.Top-level Record-Route. Wenn die Daten Satz Route auf oberster Ebene den FQDN-Namen oder die IP-Adresse enthält, wird der FQDN-Name oder die IP-Adresse verwendet, um die ausgehende in-Dialog-Verbindung herzustellen.If the top-level Record-Route contains the FQDN name or IP, the FQDN name or IP is used to make the outbound in-dialog connection.

  • Priorität 2.Priority 2. Kontakt Kopfzeile.Contact header. Wenn Record-Route nicht vorhanden ist, sucht der SIP-Proxy nach dem Wert der Kontakt Kopfzeile, um die ausgehende Verbindung herzustellen.If Record-Route does not exist, the SIP proxy will look up the value of the Contact header to make the outbound connection. (Dies ist die empfohlene Konfiguration.)(This is the recommended configuration.)

Wenn sowohl der Kontakt als auch die Daten Satz Route verwendet werden, muss der SBC-Administrator die Werte identisch halten, was zu administrativem Overhead führt.If both Contact and Record-Route are used, the SBC administrator must keep their values identical, which causes administrative overhead.

Verwendung des FQDN-namens in Kontakt oder Daten Satz-RouteUse of FQDN name in Contact or Record-Route

Die Verwendung einer IP-Adresse wird weder in der Daten Satz Route noch in einem Kontakt unterstützt.Use of an IP address is not supported in either Record-Route or Contact. Die einzige unterstützte Option ist ein FQDN, der entweder dem allgemeinen Namen oder dem alternativen Subjektnamen des SBC-Zertifikats entsprechen muss (Platzhalterwerte im Zertifikat werden unterstützt).The only supported option is an FQDN, which must match either the Common Name or Subject Alternative Name of the SBC certificate (wildcard values in the certificate are supported).

  • Wenn eine IP-Adresse in Record-Route oder Contact angezeigt wird, schlägt die Zertifikatüberprüfung fehl, und der Anruf schlägt fehl.If an IP address is presented in Record-route or Contact, the certificate check fails and the call fails.

  • Wenn der FQDN nicht dem Wert des allgemeinen oder Subjekt Alternativen namens im vorgestellten Zertifikat entspricht, schlägt der Aufruf fehl.If the FQDN does not match the value of the Common or Subject Alternative Name in the presented certificate, the call fails.

Eingehendes Gespräch: Beschreibung des SIP-DialogsInbound call: SIP dialog description

In der folgenden Tabelle sind die Unterschiede bei den Anruf strömen und die Ähnlichkeiten zwischen nicht-Bypass-und Bypass-Modi zusammengefasst:The following table below summarizes the call flow differences and similarities between non-bypass and bypass modes:

Parameter NameParameter name Nicht-Bypass-ModusNon-bypass mode Bypass-ModusBypass mode
Medien Kandidaten in 183-und 200-Nachrichten vonMedia candidates in 183 and 200 messages coming from Medien ProzessorenMedia processors ClientsClients
Anzahl von 183-Nachrichten, die SBC empfangen kannNumber of 183 messages SBC can receive Eine pro SitzungOne per session MehrereMultiple
Anruf kann mit provisorischer Antwort erfolgen (183)Call can be with provisional answer (183) JaYes JaYes
Der Anruf kann ohne provisorische Antwort erfolgen (183)Call can be without provisional answer (183) JaYes JaYes

Nicht-Medien-Bypass-FlowNon-media bypass flow

Ein Team Benutzer hat möglicherweise mehrere Endpunkte zur gleichen Zeit.A Teams user might have multiple endpoints at the same time. Beispiel: Teams für Windows-Client, Teams für iPhone-Client und Teams (Android-Client).For example, Teams for Windows client, Teams for iPhone client, and Teams Phone (Teams Android client). Jeder Endpunkt kann einen HTTP-Ruhezustand wie folgt signalisieren:Each endpoint might signal an HTTP rest as follows:

  • Anruf Fortschritt – wird vom SIP-Proxy in die SIP-Nachricht 180 konvertiert.Call progress – converted by the SIP proxy to the SIP message 180. Beim Empfangen von Nachrichten 180 muss der SBC lokales Klingeln generieren.On receiving message 180, the SBC must generate local ringing.

  • Medien Antwort – wird vom SIP-Proxy in Nachricht 183 mit Medien Kandidaten in Session Description Protocol (SDP) konvertiert.Media answer – converted by the SIP proxy to message 183 with media candidates in Session Description Protocol (SDP). Beim Empfangen von Nachrichten 183 erwartet der SBC, dass eine Verbindung mit den in der SDP-Nachricht empfangenen Medien Kandidaten hergestellt wird.On receiving message 183, the SBC expects to connect to the media candidates received in the SDP message. Beachten Sie, dass die Medien Antwort in einigen Fällen möglicherweise nicht generiert wird und der Endpunkt mit der Nachricht "Anruf angenommen" beantwortet werden kann.Note that in some cases the Media answer might not be generated, and the end point might answer with “Call Accepted” message.

  • Anruf angenommen – wird vom SIP-Proxy in SIP-Nachricht 200 mit SDP konvertiert.Call accepted – converted by the SIP proxy to SIP message 200 with SDP. Beim Empfangen von Nachrichten 200 wird von SBC erwartet, dass Sie Medien an und von den bereitgestellten SDP-Kandidaten senden und empfangen.On receiving message 200, the SBC is expected to send and receive media to and from the provided SDP candidates.

Mehrere Endpunkte läuten mit provisorischer AntwortMultiple endpoints ringing with provisional answer

  1. Beim Empfang der ersten Einladung vom SBC sendet der SIP-Proxy die Nachricht "SIP SIP/2.0 100 trying" und benachrichtigt alle Endbenutzer-Endpunkte über den eingehenden Anruf.On receiving the first Invite from the SBC, the SIP proxy sends the message "SIP SIP/2.0 100 Trying" and notifies all end user endpoints about the incoming call.

  2. Nach der Benachrichtigung beginnt jeder Endpunkt mit dem Klingeln und dem Senden von "Anruf Fortschritt"-Nachrichten an den SIP-Proxy.Upon notification, each endpoint will start ringing and sending "Call progress” messages to the SIP proxy. Da ein Teams-Benutzer mehrere Endpunkte haben kann, erhält der SIP-Proxy möglicherweise mehrere Statusmeldungen für den Anruf.Because a Teams user can have multiple end points, the SIP proxy might receive multiple Call Progress messages.

  3. Für jede Nachricht, die der Anruf Fortschritt von den Clients erhält, wandelt der SIP-Proxy die Meldung "Anruf Fortschritt" in die SIP-Nachricht "SIP SIP/2.0 180 trying" um.For every Call Progress message received from the clients, the SIP proxy converts the Call Progress message to the SIP message "SIP SIP/2.0 180 Trying". Das Intervall für das Senden solcher Nachrichten wird durch das Intervall der empfangenden Nachrichten vom Anruf Controller definiert.The interval for sending such messages is defined by the interval of the receiving messages from the Call Controller. Im folgenden Diagramm sind 2 180-Nachrichten vom SIP-Proxy generiert.In the following diagram, there are two 180 messages generated by the SIP proxy. Diese Nachrichten stammen von den beiden Endpunkten der Teams des Benutzers.These messages come from the two Teams endpoints of the user. Die Clients verfügen jeweils über eine eindeutige Transponder-ID.The clients each have a unique Tag ID. Jede Nachricht, die von einem anderen Endpunkt stammt, ist eine separate Sitzung (der Parameter "Tag" im Feld "an" ist anders).Every message coming from a different endpoint will be a separate session (the parameter “tag” in the “To” field will be different). Ein Endpunkt generiert aber möglicherweise keine Nachricht 180 und sendet Sofortnachricht 183, wie in der nachstehenden Abbildung gezeigt.But an endpoint might not generate message 180 and send message 183 right away as shown in the following diagram.

  4. Nachdem ein Endpunkt eine Medien Antwortnachricht mit den IP-Adressen der Medien Kandidaten des Endpunkts generiert hat, wandelt der SIP-Proxy die empfangene Nachricht in die Meldung "SIP 183-Sitzungs Fortschritt" um, wobei die SDP vom Client durch die SDP vom medienprozessor ersetzt wurde.Once an endpoint generates a Media Answer message with the IP addresses of endpoint’s media candidates, the SIP proxy converts the message received to a "SIP 183 Session Progress" message with the SDP from the client replaced by the SDP from the Media Processor. Im folgenden Diagramm hat der Endpunkt von Fork 2 den Anruf beantwortet.In the following diagram, the endpoint from Fork 2 answered the call. Wenn der trunk nicht umgangen wird, wird die 183-SIP-Nachricht nur einmal generiert (entweder Ring-bot oder Client-Endpunkt).If the trunk is non-bypassed, the 183 SIP message is generated only once (either Ring Bot or Client End Point). Die 183 kann auf eine vorhandene Verzweigung oder auf eine neue Gabel fallen.The 183 might come on an existing fork or start a new one.

  5. Eine Anrufannahme Nachricht wird mit den endgültigen Kandidaten des Endpunkts gesendet, der den Anruf angenommen hat.A Call Acceptance message is sent with the final candidates of the endpoint that accepted the call. Die Anrufannahme Nachricht wird in SIP-Nachricht 200 konvertiert.The Call Acceptance message is converted to SIP message 200.

Diagramm, das zeigt, dass mehrere Endpunkte mit provisorischer Antwort Klingeln

Mehrere Endpunkte Klingeln ohne provisorische AntwortMultiple endpoints ringing without provisional answer

  1. Beim Empfang der ersten Einladung vom SBC sendet der SIP-Proxy die Nachricht "SIP SIP/2.0 100 trying" und benachrichtigt alle Endbenutzer-Endpunkte über den eingehenden Anruf.On receiving the first Invite from the SBC, the SIP proxy sends the message "SIP SIP/2.0 100 Trying" and notifies all end user endpoints about the incoming call.

  2. Nach der Benachrichtigung beginnt jeder Endpunkt mit dem Klingeln und dem Senden der Nachricht "Anruf Fortschritt" an den SIP-Proxy.Upon notification, each endpoint will start ringing and sending the message "Call progress” to the SIP proxy. Da ein Teams-Benutzer mehrere Endpunkte haben kann, erhält der SIP-Proxy möglicherweise mehrere Statusmeldungen für den Anruf.Because a Teams user can have multiple end points, the SIP proxy might receive multiple Call Progress messages.

  3. Für jede Nachricht, die der Anruf Fortschritt von den Clients erhält, wandelt der SIP-Proxy die Meldung "Anruf Fortschritt" in die SIP-Nachricht "SIP SIP/2.0 180 trying" um.For every Call Progress message received from the clients, the SIP proxy converts the Call Progress message to the SIP message "SIP SIP/2.0 180 Trying". Das Intervall für das Senden der Nachrichten wird durch das Intervall definiert, in dem die Nachrichten vom Anruf Controller empfangen werden.The interval for sending the messages is defined by the interval of receiving the messages from the Call Controller. Auf dem Bild unten sind 2 180 vom SIP-Proxy generierte Nachrichten, was bedeutet, dass der Benutzer sich bei drei Teams-Clients angemeldet hat und jeder Client den Anruf Fortschritt sendet.On the picture below there are two 180 messages generated by the SIP proxy, meaning that user logged into three Teams clients and each client send the call progress. Jede Nachricht wird eine separate Sitzung sein (der Parameter "Tag" im Feld "an" ist anders)Every message will be a separate session (parameter “tag” in “To” field is different)

  4. Eine Anrufannahme Nachricht wird mit den endgültigen Kandidaten des Endpunkts gesendet, der den Anruf angenommen hat.A Call Acceptance message is sent with the final candidates of the endpoint that accepted the call. Die Anrufannahme Nachricht wird in SIP-Nachricht 200 konvertiert.The Call Acceptance message is converted to SIP message 200.

Diagramm mit mehreren Endpunkten, die ohne provisorische Antwort Klingeln

Medien Umgehungs FlussMedia bypass flow

Die gleichen Nachrichten (100 versuchen, 180, 183) werden im Szenario "medienumgehung" verwendet.The same messages (100 Trying, 180, 183) are used in the media bypass scenario.

Das folgende Schema zeigt ein Beispiel für den Bypass-Anruffluss.The schema below shows an example of the bypass call flow. Beachten Sie, dass die Medien Kandidaten von unterschiedlichen Endpunkten stammen können.Note that the media candidates can come from different endpoints.

Diagramm, das zeigt, dass mehrere Endpunkte mit provisorischer Antwort Klingeln

Option ersetztReplaces option

Der SBC muss invite mit ersetzt unterstützen.The SBC must support Invite with Replaces.

Größe von SDP-ÜberlegungenSize of SDP considerations

Die direkte Routing Schnittstelle kann eine SIP-Nachricht senden, die 1.500 Bytes überschreitet.The Direct Routing interface might send a SIP message exceeding 1,500 bytes. Die Größe von SDP führt in erster Linie dazu.The size of SDP primarily causes this. Wenn jedoch ein UDP-Stamm hinter dem SBC vorhanden ist, wird die Nachricht möglicherweise zurückgewiesen, wenn Sie vom Microsoft SIP-Proxy an den Stamm unverändert weitergeleitet wird.However, if there is a UDP trunk behind the SBC, it might reject the message if it is forwarded from the Microsoft SIP proxy to the trunk unmodified. Microsoft empfiehlt, beim Senden der Nachricht an die UDP-Stämme einige Werte in SDP auf dem SBC zu entfernen.Microsoft recommends stripping some values in SDP on the SBC when sending the message to the UDP trunks. Beispielsweise können die Ice-Kandidaten oder nicht verwendete Codecs entfernt werden.For example, the ICE candidates or unused codecs can be removed.

AnrufübertragungCall transfer

Direct Routing unterstützt zwei Methoden für die Anrufweiterleitung:Direct Routing supports two methods for call transfer:

  • Option 1.Option 1. SIP-Proxy Prozesse verweisen vom Client lokal und fungieren als Schiedsrichter, wie in Abschnitt 7,1 von RFC 3892 beschrieben.SIP proxy processes Refer from the client locally and acts as a Referee as described in section 7.1 of RFC 3892.

    Mit dieser Option beendet der SIP-Proxy die Übertragung und fügt eine neue Einladung hinzu.With this option, the SIP proxy terminates the transfer and adds a new Invite.

  • Option 2.Option 2. Der SIP-Proxy sendet den Verweis an den SBC und fungiert als Übertragung, wie er in Abschnitt 6 von RFC 5589 beschrieben wird.SIP proxy sends the Refer to the SBC and acts as a Transferor as describing in Section 6 of RFC 5589.

    Mit dieser Option sendet der SIP-Proxy einen Verweis auf den SBC und erwartet, dass der SBC die Übertragung vollständig übernimmt.With this option, the SIP proxy sends a Refer to the SBC and expects the SBC to handle the Transfer fully.

Der SIP-Proxy wählt die Methode basierend auf den vom SBC gemeldeten Funktionen aus.The SIP proxy selects the method based on the capabilities reported by the SBC. Wenn der SBC angibt, dass die Methode "Refer" unterstützt wird, verwendet der SIP-Proxy Option 2 für Anruf Übertragungen.If the SBC indicates that it supports the method “Refer”, the SIP proxy will use Option 2 for call transfers.

Der folgende Code ist ein Beispiel für einen SBC, der die Nachricht sendet, dass die Refer-Methode unterstützt wird:The following is an example of an SBC sending the message that the Refer method is supported:

ALLOW: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY

Wenn der SBC nicht angibt, dass es sich um eine unterstützte Methode handelt, verwendet das direkte Routing die Option 1 (SIP-Proxy fungiert als Schiedsrichter).If the SBC doesn’t indicate that Refer as a supported method, Direct Routing will use Option 1 (SIP proxy acts as a Referee) . Der SBC muss auch signalisieren, dass er die Notify-Methode unterstützt:The SBC must also signal that it supports the Notify method:

Beispiel für SBC, der angibt, dass die Refer-Methode nicht unterstützt wird:Example of SBC indicating that Refer method is not supported:

ALLOW: INVITE, ACK, CANCEL, BYE, INFO, NOTIFY, PRACK, UPDATE, OPTIONS

SIP-Proxy Prozesse verweisen vom Client lokal und fungieren als SchiedsrichterSIP proxy processes Refer from the client locally and acts as a Referee

Wenn der SBC angegeben hat, dass die Refer-Methode nicht unterstützt wird, fungiert der SIP-Proxy als Schiedsrichter.If the SBC indicated that the Refer method is not supported, the SIP proxy acts as a Referee.

Die Refer-Anfrage, die vom Client stammt, wird auf dem SIP-Proxy beendet.The Refer request that comes from the client will be terminated on the SIP proxy. (Die Refer-Anfrage des Clients wird im folgenden Diagramm als "Anrufübertragung an Dave" angezeigt.(The Refer request from the client is shown as “Call transfer to Dave” in the following diagram. Weitere Informationen finden Sie in Abschnitt 7,1 von RFC 3892.For more information, see section 7.1 of RFC 3892.

Diagramm, das zeigt, dass mehrere Endpunkte mit provisorischer Antwort Klingeln

SIP-Proxy senden Sie den Verweis an den SBC und fungiert als übertragender.SIP proxy send the Refer to the SBC and acts as a Transferor

Dies ist die bevorzugte Methode für Anruf Übertragungen und für Geräte, die eine Medien Umgehungs Zertifizierung suchen, obligatorisch.This is the preferred method for call transfers, and it is mandatory for devices seeking media bypass certification. Die Anrufübertragung, ohne dass der SBC-Verweis verarbeitet werden kann, wird im Medien Umgehungsmodus nicht unterstützt.Call Transfer without the SBC being able to handle Refer is not supported in media bypass mode.

Der Standard wird in Abschnitt 6 von RFC 5589 erläutert.The standard is explained in Section 6 of RFC 5589. Die zugehörigen RFCs sind:The related RFCs are:

Bei dieser Option wird davon ausgegangen, dass der SIP-Proxy als Übertragung fungiert und eine Refer-Meldung an den SBC sendet.This option assumes that the SIP proxy acts as a Transferor and sends a Refer message to the SBC. Der SBC fungiert als übertragender und behandelt das Verweis auf ein neues Angebot für die Übertragung zu generieren.The SBC acts as a Transferee and handles the Refer to generate a new offer for transfer. Es gibt zwei mögliche Fälle:There are two possible cases:

  • Der Anruf wird an einen externen PSTN-Teilnehmer übertragen.The call is transferred to an external PSTN participant.
  • Der Anruf wird von einem Teams-Benutzer an einen anderen Teams-Benutzer im gleichen Mandanten über den SBC übertragen.The call is transferred from one Teams user to another Teams user in the same tenant via the SBC.

Wenn der Anruf über den SBC von einem Teams-Benutzer zu einem anderen übertragen wird, wird erwartet, dass der SBC eine neue Einladung (ein neues Dialogfeld) für das Übergabeziel (den Teams-Benutzer) mit den in der Refer-Nachricht erhaltenen Informationen ausgibt.If the call is transferred from one Teams user to another via the SBC, the SBC is expected to issue a new invite (start a new dialog) for the transfer target (the Teams user) using the information received in the Refer message.

Um die Felder an/übertragen für die Transaktion der Anforderung intern zu füllen, muss der SIP-Proxy diese Informationen innerhalb der Verweis-zu/Verweis-Überschriften übermitteln.To populate the To/Transferor fields for the transaction of the request internally, the SIP proxy needs to convey this information inside the REFER-TO/REFERRED-BY headers.

Der SIP-Proxy stellt den Verweis als SIP-URI dar, der aus einem SIP-Proxy-FQDN im Hostname und einer der folgenden besteht:The SIP proxy will form the REFER-TO as a SIP URI comprised of a SIP proxy FQDN in the hostname and either one of the following:

  • Eine E. 164-Telefonnummer im username-Teil des URIs, falls es sich bei dem Übertragungsziel um eine Telefonnummer handelt, oderAn E.164 phone number in the username part of the URI in case the transfer target is a phone number, or

  • x-m-und x-t-Parameter, die das vollständige Übertragungsziel-MRI und die Mandanten-ID codierenx-m and x-t parameters encoding the full transfer target MRI and tenant ID respectively

Der verweisende Header ist ein SIP-URI, in dem das in ihm codierte MRI-MRT sowie die Mandanten-ID des Verweisers und andere Parameter des Übertragungs Kontexts, wie in der folgenden Tabelle dargestellt, aufgeführt sind:The REFERRED-BY header is a SIP URI with transferor MRI encoded in it as well as transferor tenant ID and other transfer context parameters as shown in the following table:

ParameterParameter WertValue BeschreibungDescription
x-mx-m MRIMRI Vollständiges MRI des übertragenden/übertragenden Ziels als von CC ausgefülltFull MRI of transferor/transfer target as populated by CC
x-tx-t Mandanten-IDTenant ID x-t-Mandanten-ID optionale Mandanten-ID, wie von CC ausgefülltx-t Tenant ID Optional Tenant Id as populated by CC
x-TIx-ti Übertragungs Korrelations-IDTransferor Correlation Id Korrelations-ID des Anrufs an den übertragendenCorrelation Id of the call to the transferor
x-TTx-tt Übertragen des Ziel Anruf-URIsTransfer target call URI Codierter Anruf Ersetzungs-URIEncoded call replacement URI

In diesem Fall kann die Größe des Refer-Headers bis zu 400-Symbole sein.The size of the Refer Header can be up to 400 symbols in this case. Der SBC muss die Behandlung von Refer-Nachrichten mit einer Größe von bis zu 400-Symbolen unterstützen.The SBC must support handling Refer messages with size up to 400 symbols.

Diagramm, das zeigt, dass mehrere Endpunkte mit provisorischer Antwort Klingeln

SitzungszeitgeberSession timer

Der SIP-Proxy unterstützt (immer) den Session-Timer bei nicht-Bypass-anrufen, bietet ihn aber nicht bei Bypass-Anrufen an.The SIP proxy supports (always offers) the Session Timer on non-bypass calls but does not offer it on bypass calls. Die Verwendung des Session-Timers durch den SBC ist nicht zwingend erforderlich.Use of the Session Timer by the SBC is not mandatory.

Verwendung des Request-URI-Parameters User = PhoneUse of Request-URI parameter user=phone

Der SIP-Proxy analysiert den Anforderungs-URI, und wenn der Parameter User = Phone vorhanden ist, behandelt der Dienst den Anforderungs-URI als eine Telefonnummer, die der Nummer eines Benutzers entspricht.The SIP proxy analyses the Request-URI and if the parameter user=phone is present, the service will handle the Request-URI as a phone number, matching the number to a user. Wenn Parameter nicht vorhanden ist, wendet der SIP-Proxy Heuristiken an, um den Benutzertyp Request-URI (Telefonnummer oder SIP-Adresse) zu ermitteln.If parameter is not present the SIP proxy applies heuristics to determine the Request-URI user type (phone number or a SIP address).

Microsof empfiehlt immer die Anwendung des User = Phone-Parameters, um den Anruf-Setupvorgang zu vereinfachen.Microsof recommends always applying the user=phone parameter to simplify the call setup process.

Verlaufsinformationen-KopfzeileHistory-Info header

Der Header "History-Info" wird für die Neuausrichtung von SIP-Anforderungen und "bereitstellen (s) eines Standardmechanismus zum Erfassen der Informationen zum Anforderungsverlauf verwendet, um eine Vielzahl von Diensten für Netzwerke und Endbenutzer zu ermöglichen."The History-Info header is used for retargeting SIP requests and “provide(s) a standard mechanism for capturing the request history information to enable a wide variety of services for networks and end-users.” Weitere Informationen finden Sie in RFC 4244 – Abschnitt 1,1.For more information, see RFC 4244 – Section 1.1. Für Microsoft Phone System wird dieser Header in Simulring-und Anruf Weiterleitungs Szenarien verwendet.For Microsoft Phone System, this header is used in Simulring and Call Forwarding scenarios.

Beim Senden werden die Verlaufsinformationen wie folgt aktiviert:If sending, the History-Info is enabled as follows:

  • Der SIP-Proxy fügt einen Parameter mit der zugehörigen Rufnummer in einzelne Verlaufs-Info-Einträge ein, die den an den PSTN-Controller gesendeten History-Info-Header enthalten.The SIP proxy will insert a parameter containing the associated phone number in individual History-Info entries that comprise the History-Info header sent to the PSTN Controller. Wenn nur Einträge mit dem Parameter "Telefonnummer" verwendet werden, wird vom PSTN-Controller eine neue Verlaufsinformationen-Kopfzeile neu erstellt und über den SIP-Proxy an den SIP-Trunk-Anbieter weitergeleitet.Using only entries that have the phone number parameter, the PSTN Controller will rebuild a new History-Info header, and pass it on to the SIP trunk provider via SIP proxy.

  • History-Info-Kopfzeile wird für simultane Klingel-und Anruf Weiterleitungs Fälle hinzugefügt.History-Info header will be added for simultaneous ring and call forwarding cases.

  • Die Kopfzeile der Verlaufsinformationen wird nicht für Anruf Übertragungs Fälle hinzugefügt.History-Info header will not be added for call transfer cases.

  • Bei einem individuellen Verlaufseintrag im rekonstruierten Verlaufs-Info-Header wird der Parameter für die Telefonnummer in Kombination mit dem Direct Routing-FQDN (SIP.pstnhub.Microsoft.com), der als Host-Teil des URIs festgelegt ist, bereitgestellt. ein Parameter von "User = Phone" wird als Teil des SIP-URIs hinzugefügt.An individual history entry in the reconstructed History-Info header will have the phone number parameter provided combined with the Direct Routing FQDN (sip.pstnhub.microsoft.com) set as the host part of the URI; a parameter of ‘user=phone’ will be added as part of the SIP URI. Alle anderen Parameter, die mit dem ursprünglichen History-Info-Header verknüpft sind, mit Ausnahme von Telefonkontext Parametern, werden im neu konstruierten History-Info-Header durchlaufen.Any other parameters associated with the original History-Info header, except for phone context parameters, will be passed through in the re-constructed History-Info header. Beachten Sie, dass private Einträge (entsprechend den in Abschnitt 3,3 von RFC 4244 definierten Mechanismen) weitergeleitet werden, weil der SIP Trunk-Anbieter ein vertrauenswürdiger Peer ist.Note that entries that are private (as determined by the mechanisms defined in Section 3.3 of RFC 4244) will be forwarded as is because the SIP trunk provider is a trusted peer.

  • Eingehende Verlaufsinformationen werden ignoriert.Inbound History-Info is ignored.

Im folgenden wird das Format der vom SIP-Proxy gesendeten History-Info-Kopfzeile angezeigt:Following is the format of the History-info header sent by the SIP proxy:

<sip:UserB@sip.pstnhub.microsoft.com?Privacy=history&Reason=SIP%3B\cause%3D486>;index=1.2,

Wenn der Anruf mehrmals umgeleitet wurde, sind Informationen zu jeder Umleitung in chronologischer Reihenfolge in den entsprechenden Grund eingeschlossen.If the call was redirected several times, information about every redirect is included with the appropriate reason in chronological order.

Header Beispiel:Header Example:

History-info: 
<sip:+14257123456@sip.pstnhub.microsoft.com;user=phone?Reason=SIP;cause=302;text=”Move Temporarily”>;index=1
<sip:+14257123457@sip.pstnhub.microsoft.com;user=phone?Reason=SIP;cause=496;text=”User Busy”>;index=1.1

Die Verlaufsinformationen sind durch einen obligatorischen TLS-Mechanismus geschützt.The History-Info is protected by a mandatory TLS mechanism.

SBC-Verbindung mit Direct Routing und Failover-MechanismusSBC connection to Direct Routing and failover mechanism

Lesen Sie den Abschnitt Failover-Mechanismus für SIP-Signalisierungen in Plan für das direkte Routing.See the section Failover mechanism for SIP signaling in Plan for Direct Routing.

Wiederholen-nachherRetry-After

Wenn ein direktes Routing-Rechenzentrum ausgelastet ist, kann der Dienst eine Retry-after-Nachricht mit einem Sekunden Intervall an den SBC senden.If a Direct Routing datacenter is busy, the service can send a Retry-After message with a one-second interval to the SBC. Wenn der SBC eine 503-Nachricht mit einem Retry-after-Header als Antwort auf eine Einladung erhält, muss der SBC diese Verbindung kündigen und das nächste verfügbare Microsoft Datacenter testen.When the SBC receives a 503 message with a Retry-After header in response to an INVITE, the SBC must terminate that connection and try the next available Microsoft datacenter.

Ice-Neustart: Medien Umgehungs Anruf wird an einen Endpunkt übertragen, der keine medienumgehung unterstütztICE Restart: Media bypass call transferred to an endpoint that does not support media bypass

Der SBC muss Ice-Neustarts unterstützen, wie in RFC 5245, Abschnitt 9.1.1.1beschrieben.The SBC must support ICE restarts as described in RFC 5245, section 9.1.1.1.

Der Neustart beim direkten Routing wird gemäß den folgenden Absätzen der RFC implementiert:The restart in Direct Routing is implemented according to the following paragraphs of the RFC:

Um Ice neu zu starten, muss ein Agent sowohl das Ice-pwd als auch das Ice-ufrag für den Mediendatenstrom in einem Angebot ändern. Beachten Sie, dass es zulässig ist, in einem Angebot ein Attribut auf Sitzungsebene zu verwenden, aber das gleiche Ice-pwd-oder Ice-ufrag-Attribut in einem nachfolgenden Angebot als Attribut auf Medienebene bereitzustellen. Hierbei handelt es sich nicht um eine Änderung des Kennworts, sondern nur um eine Änderung der Darstellung, und es wird kein Ice-Neustart verursacht.To restart ICE, an agent MUST change both the ice-pwd and the ice-ufrag for the media stream in an offer. Note that it is permissible to use a session-level attribute in one offer, but to provide the same ice-pwd or ice-ufrag as a media-level attribute in a subsequent offer. This is not a change in password, just a change in its representation, and does not cause an ICE restart.

Ein Agent legt die restlichen Felder im SDP für diesen Mediendatenstrom so fest, wie dies bei einem anfänglichen Angebot dieses Mediendatenstroms der Fall wäre (siehe Abschnitt 4,3). Infolgedessen kann die Gruppe von Kandidaten einige, keine oder alle vorherigen Kandidaten für diesen Datenstrom enthalten und eine völlig neue Gruppe von Kandidaten enthalten, wie in Abschnitt 4.1.1 beschrieben.An agent sets the rest of the fields in the SDP for this media stream as it would in an initial offer of this media stream (see Section 4.3). Consequently, the set of candidates MAY include some, none, or all of the previous candidates for that stream and MAY include a totally new set of candidates gathered as described in Section 4.1.1.

Wenn der Anruf zunächst mit Media Bypass eingerichtet wurde und der Anruf an einen Skype for Business-Client übertragen wird, muss das direkte Routing einen medienprozessor einfügen – Dies liegt daran, dass die direkte Weiterleitung nicht mit einem Skype for Business-Client mit medienumgehung verwendet werden kann.If the call was initially established with media bypass, and the call is transferred to a Skype for Business client, Direct Routing needs to insert a Media Processor--this is because Direct Routing cannot be used with a Skype for Business client with media bypass. Das direkte Routing startet den ICE-Neustart Prozess, indem die Ice-pwd-und Ice-ufrag geändert und neue Medien Kandidaten in einer erneuten Einladung angeboten werden.Direct Routing starts the ICE restart process by changing the ice-pwd and ice-ufrag and offering new media candidates in a reinvite.