Was ist SIP?

Das Session Initiation Protocol (SIP) startet, ändert und beendet Anrufe, während die Audiodaten separat übertragen werden.

Telefonsysteme verschiedener Hersteller brauchen eine gemeinsame Methode, um sich auf einen Anruf zu einigen.

SIP überträgt keine Medien, und genau diese Grenze erklärt, warum ein verbundener Anruf keinen Ton haben kann.

Was macht SIP eigentlich?

Es bringt zwei Parteien dazu, sich darauf zu einigen, dass eine Sitzung stattfinden soll und unter welchen Bedingungen.

RFC 3261, die Spezifikation vom Juni 2002, die es definiert, beschreibt SIP als "an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants". Die fünf Aufgaben sind: die Gegenstelle finden, entscheiden ob sie den Anruf annimmt, sich auf die Medien einigen, klingeln und später auflegen oder weiterleiten. Die Spezifikation listet sie wie folgt auf:

User location: determination of the end system to be used for
     communication;

User availability: determination of the willingness of the called
     party to engage in communications;

User capabilities: determination of the media and media parameters
     to be used;

Session setup: "ringing", establishment of session parameters at
     both called and calling party;

Session management: including transfer and termination of
     sessions, modifying session parameters, and invoking
     services.

Keine der fünf Aufgaben ist die Audioübertragung. Das ist der gesamte Zuständigkeitsbereich.

Warum ist mein Anruf verbunden, aber ohne Ton?

Weil das Audio nie in den Zuständigkeitsbereich von SIP fiel und die beiden Pfade unabhängig voneinander ausfallen können.

Die Spezifikation ist eindeutig über ihren eigenen Geltungsbereich:

SIP is not a vertically integrated communications system. SIP is rather a component that can be used with other IETF protocols to build a complete multimedia architecture.

Medien laufen über RTP, das beim Verbindungsaufbau ausgehandelt wird und dann eigenständig fließt, häufig zwischen Endpunkten, die das Signaling nie berührt hat. Das Signaling kann abgeschlossen werden und beide Seiten können sich einig sein, dass eine Sitzung aktiv ist. Audio kann trotzdem ausbleiben, weil eine Firewall, ein NAT-Gerät oder eine Routing-Regel zwischen den Medien-Endpunkten es verworfen hat, während das Signaling unberührt blieb.

Deshalb sind Einweg-Audio und kein Audio eine eigene Diagnosekategorie und keine Variante eines Anruffehlers. Das Anrufprotokoll zeigt einen verbundenen Anruf, weil ein verbundener Anruf genau das ist, was das Signaling erreicht hat. Fehlerbehebung bei Sprache geht die Symptome durch. Das eigene Testanruf-Tool von Bird gibt eine Spitzenpegel-Zusammenfassung für jede Richtung aus, wobei eine Null auf einer Seite das Einweg-Audio-Symptom als Zahl ausdrückt.

Dieselbe Trennung ermöglicht es, andere Funktionen sauber einzubinden. RFC 3261 formuliert es als "SIP does not provide services. Rather, SIP provides primitives that can be used to implement different services." Voicemail, Sammelanschlüsse, Anrufaufzeichnung und ein KI-Agent sind alle auf den Grundbausteinen aufgebaut, nicht durch das Protokoll definiert.

Muss ich einen Client registrieren, bevor er anrufen kann?

Nein. Bird-Trunks authentifizieren Anrufe ohne Client-Registrierung.

SIP definiert durchaus eine Registrierungsfunktion – so teilt ein User Agent dem Netz mit, wo er gerade erreichbar ist. Dadurch wird ein Tischtelefon auffindbar, wenn jemand eine Durchwahl wählt. Aber Registrierung und Anrufaufbau sind zwei getrennte Vorgänge, und ein System, das nur Anrufe absetzt, muss nie auffindbar sein.

Ein SIP INVITE ist die Methode, die einen Anruf anfordert. Bird authentifiziert jeden einzelnen gegen die IP-Freigabeliste des Trunks oder über eine Passwort-Challenge. Clients registrieren sich nicht beim Trunk. Konfigurieren Sie Bird als Trunk statt als registriertes Konto: keine type=registration-Sektion in Asterisk, register=false auf einem FreeSWITCH-Gateway, Registration auf none gesetzt in FreePBX oder 3CX. Wenn ein Softphone keine Möglichkeit bietet, die Registrierung abzuschalten, ist der fehlschlagende Registrierungsversuch kosmetisch und das Wählen funktioniert trotzdem, weil die Plattform auf die Einladung reagiert und nicht auf die Registrierung. SIP-Client-Einrichtung enthält die fertigen Konfigurationen.

Die Konsequenz betrifft die Zugangsdaten. Ihr Client sendet zwei verschiedene Identitäten. Die Anrufer-ID steht im From-Header und muss eine von Ihnen verifizierte Nummer sein. Der Digest-Benutzername ist bei jedem Trunk bird. Wenn Sie die Anrufer-ID in das Authentifizierungsfeld eintragen, erhalten Sie einen Authentifizierungsfehler statt eines Fehlers, der die Anrufer-ID erwähnt.

Warum sehen die Antworten aus wie HTTP?

Weil das Protokoll genau dafür entworfen wurde, bis hin zu den Nummernbereichen.

SIP ist ein textbasiertes Request-Response-Protokoll mit Methoden und Headern. Seine Antworten kommen in denselben sechs Klassen mit denselben vertrauten Nummern zurück: ein 404 für ein nicht existierendes Ziel und ein 486 für ein besetztes Endsystem. Dank der gemeinsamen Struktur können Sie einen SIP-Trace fast so lesen wie einen HTTP-Trace.

Es gibt zwei Ausnahmen. Eine sechste Klasse, 6xx, hat kein HTTP-Äquivalent und bedeutet, dass kein Server irgendwo die Anfrage erfüllen kann, nicht nur dieser eine. Ein häufiger Code trägt außerdem auf Bird eine Bedeutung, die der Standard nicht beschreibt. Was bedeuten SIP-Antwortcodes behandelt beides, einschließlich der Frage, warum ein 503 von Bird in der Regel eine Ablehnung ist, die das System auf der Leitung nicht näher erläutert, und kein Überlastfehler.

Wo begegne ich SIP auf Bird?

Am Trunk – das ist die Adresse, an die Ihre Anlage sendet.

Jeder Trunk hat eine feste SIP-Domain und akzeptiert UDP oder TCP auf 5060 bzw. TLS auf 5061, wenn Sie die Signalisierung bei der Übertragung verschlüsseln möchten. Was an den Trunk senden darf, entscheiden Sie, und ein neuer Trunk akzeptiert nichts, bis Sie es freigeben. Was ist ein SIP-Trunk behandelt diese Entscheidung und die drei Mechanismen dahinter. Was ist ein Voice-API erklärt, wie die SIP-Hälfte und die HTTP-Hälfte die Arbeit aufteilen.

Kurz gesagt

  1. SIP baut Sitzungen auf, überträgt sie aber nicht.

    Die eigene Spezifikation bezeichnet es als Komponente und nicht als vollständiges System. Die Audiodaten laufen über ein separates Protokoll und oft über einen separaten Pfad.

  2. Diese Trennung ist der Grund, warum ein Anruf zustande kommen und trotzdem keinen Ton übertragen kann.

    Signalisierung und Medien können unabhängig voneinander ausfallen. Ein Anruf kann sauber aufgebaut werden und trotzdem keinen Ton übertragen, und keine der beiden Seiten irrt sich über das, was sie gesehen hat.

  3. Registrieren und Anrufen sind getrennte Vorgänge.

    Ein Client registriert sich, um mitzuteilen, wo er erreichbar ist. Ein Anruf erfordert das nicht, und Bird authentifiziert jede Einladung einzeln statt einer Registrierung.

  4. Die Antworten lesen sich wie HTTP, weil sie bewusst so gestaltet wurden.

    Sechs Antwortklassen mit vertrauten Nummern, plus eine Klasse, für die HTTP kein Gegenstück hat und die besagt, dass kein Server irgendwo die Anfrage erfüllen kann.

In die Praxis umsetzen.

Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema.

Implementierungs-Briefing erhalten

Bauen Sie auf demselben Netzwerk auf.

Ein Test-API-Schlüssel steht Ihnen sofort zur Verfügung. Der Produktivbetrieb wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Ihre nächste Idee. Bereit zur Verbindung.