Protokoll SIP

Aus Deutsche Asterisk User Group
Wechseln zu: Navigation, Suche

Auch das SIP Protokoll unterstützt Asterisk von Haus aus. Die Entwickler achten dabei sehr auf RFC - Konformität, haben jedoch noch nicht alles umgesetzt. Es fehlt z.B. Unterstützung für RFC 3389, welches die Übertragung von „comfort noise“, also Stille bei einem Gesprächspartner während eines Gespräches, regelt. Die Entwicklergemeinde arbeitet jedoch daran.

Asterisk kann agieren als:

- SIP Client: Asterisk registriert sich als Client an anderen SIP-Servern, empfängt und sendet Rufe. Einkommende Rufe werden in eine konfigurierte „Extension“ geleitet.

- SIP Server: Asterisk kann so konfiguriert werden, dass SIP Clients sich am Asterisk Server registrieren können. Es sind dann SIP Sessions, wie z.B. Anrufe und Antworten auf einkommende Rufe möglich. Es muss jedoch erwähnt werden, dass Asterisk kein richtiger SIP Server wie der SIP express router ist. Wie im Kapitel X.3 beschrieben, sollte Asterisk auch nicht bei tausenden von SIP-Clients verwendet werden, dort ist es besser SER einzusetzen.

- SIP Gateway: Asterisk ist ein Medien-Gateway zwischen verschiedenen Protokollen wie SIP, IAX, MGCP, H.323 und Festnetzverbindungen. Als Beispiel sei ein Ruf von einem SIP-Telefon ins ISDN Festnetz genannt.


Warum ist Asterisk nun kein vollständiger SIP Proxy? Ein SIP Proxy verarbeitet lediglich die Signalisierung für andere User Agents (UA) und hat normalerweise während des Gespräches nichts zu tun. Medienströme wie Sprachdaten werden direkt zwischen den SIP-Clients ausgetauscht. Asterisk ist als Server ein SIP Registrar und Location Server und agiert auch als User Agent (UA). Kontrolliert oder leitet Asterisk einen Anruf von einem SIP Telefon zu einem anderen weiter, so agiert er gegenüber dem Anrufenden als UA und erstellt einen neuen Anruf an das anzurufende SIP-Telefon. Somit steht er in der Mitte, hat zu jedem Gesprächspartner einen eigenen Ruf aufgebaut und kontrolliert den Anruf. Dabei kann er die Medienströme einfach weiterleiten oder überbrücken, indem z.B. Codecumsetzungen gemacht werden (Quelle: http://voip-info.org/wiki/view/Asterisk+SIP+not-proxy).

Durch diese Vorgehensweise sind erweiterte Funktionen möglich, wie z.B. die Weiterleitung eines Gesprächs. Telefonieren zwei SIP-Telefone miteinander, so kann einer der Gesprächspartner das Gespräch an einen Dritten weiterleiten. Asterisk muss hier „in der Mitte“ sitzen, um die Weiterleitung an den dritten Teilnehmer vornehmen zu können. Dabei ist es unwichtig, ob das Gespräch an einen SIP Client oder eine andere Technologie wie IAX übergeben wird. Man kann diese Eigenschaft des Asterisk positiv und negativ sehen, auf jeden Fall wird dadurch die Flexibilität in Bezug auf verschiedene Technologien größer und Asterisk wird zu einem mächtigen Mediengateway.

Asterisk muss bei SIP jedoch nicht die Medienströme kontrollieren, dies ist durch das Setzen von der Option canreinvite=yes abschaltbar. Erachtet Asterisk bei einem Gespräch es dann für nicht nötig, die Medienströme selbst zu kontrollieren, so sendet er ein REINVITE an jeweils beide SIP-Telefone. Unterstützen dies beide, so werden ab sofort die Medienströme direkt zwischen den Telefonen ausgetauscht.