Hallo noto, Dein Verständnis davon wie VoIP per SIP funktioniert und welche Rollen dabei zu finden sind, stimmt nicht ganz.
noto schrieb:
wenn ich eine Rufnummer hab die ich anrufen will z.B. 0322 4444 dann mus doch der SIP Server wissen mit welchem SIP Server er Verbindung herstellen soll um eine Anfrage zu machen damit die IPs übermittelt werden können.
Das verstehe ich nicht. Wer will denn wem eine IP-Adresse übermitteln?
Wenn man eine Rufnummer anrufen will, dann hat man ein Endgerät zur Hand, mit dem der Anruf durchgeführt wird. Ist dieses Endgerät ein normales Telefon, dann passiert folgendes:
- Telefon ruft über Festnetz eine 03224444 an.
- Vermittlung erfolgt über den Festnetz-Carrier
- Dieser stellt den Termination Provider für die Nummer fest (anhand von RNB-Zuordnungen und Portierungsdaten) und routet den Anruf dort hin
- Der Termination Provider stellt fest, welcher Kunde (VoIP-Provider oder sonstwas) diese Nummer behandelt, und routet dorthin
- Dieser VoIP-Provider dieser prüft die Nummer gegen die eigene Datenbank von Rufnummern -> Benutzeridentifikationen und stellt eine Benutzer-Id fest.
- Der VoIP-Provider prüft anhand der Registrierungsdatenbank, ob für diese Benutzer-Id eine IP-Adresse und ein Port aus einer gültigen Registrierung bekannt sind
- Ist dies der Fall, schickt der VoIP-Provider per SIP eine Einladung zu einem Anruf an das registrierte Endgerät (nehmen wir der Einfachheit halber mal keine Mehrfachregistrierungen an).
- Das registrierte Endgerät signalisiert den eingehenden Anruf und nimmt ihn ggf. an. Die Sprachübertragung erfolgt dann über eine RTP-Verbindung, bis der Anruf endet.
Hat man ein VoIP-Telefon oder einen VoIP-Gateway, so läuft im Prinzip das Gleiche ab, nur geht der erste Anruf über VoIP zum Provider und dann weiter. Die Prüfung ab dem Punkt mit Termination Providern passiert genau gleich.
Dazu benötigt der SIP Server die SIP-URI der Nummer 0322 4444. Die SIP-URI hat eine Domain und diese ein IP Nummer (DNS). In Apache kann man alle ausser der eigenen IP Adresse sperren.
Hä? Was hat Apache damit zu tun und was will man denn damit sperren???
Wenn in dem Ablauf oben nicht der Umweg über Festnetz zu nehmen ist, weil beide Parteien VoIP-fähig sind, dann ist für einen direkten Anruf erforderlich, daß der Anrufer zu der Zielnummer 03224444 eine SIP-URI findet. Diese hat einen Domainnamen oder eine IP-Adresse (Host, ggf. durch SRV-Records noch auf den tatsächlichen Proxy abzubilden), Port (Default 5060/udp) und User (optional). Der Domainname identifiziert eine oder mehrere IP-Adressen bzw. Proxies (via SRV), die für die SIP-URI zuständig sind.
Rufaufbau ist dann nur über das Festnetz Gateway des Providers möglich.
Dann? Wenn ich eine SIP-URI vom Endgerät habe, dann kann ich den Ruf direkt aufbauen... Wenn ich eine SIP-URI beim Provider habe und dieser öffentliche Zugriffe zulässt, dann muss ich den Ruf über den Provider aufbauen, da nur der das Mapping von SIP-URI auf IP-Adresse, Port und User-Id kennt.
SIP Telefon A will SIP Telefon B anrufen. Telefon A ruft 0322 4444 an. Sip Server A fragt bei ENUM die SIP-URI (IP Adresse des Servers) und verbindet mit SIP Server B. Server B erlaubt keine Anfrage!
In diesem Fall erlaubt der Provider B keine externen Anrufe per SIP-URI und der Anruf schlägt fehl.
SIP Server A leitet die Nummer 0322 4444 direkt über sein (kostenpflichtiges) Festnetz Gateway zum Gateway von SIP Server B. Dieser lässt alle Verbindungen über das Gateway zu.
Das ist aber nun ein zweiter Fall: hier wird einfach eine Festnetznummer angerufen (siehe mein Szenario eingangs).
Sobald man für die SIP-URIs 'Platzhalter' verwendet wie z.B. Rufnummern, wird ENUM benötigt. Das hat mit Fest-/Mobilfunknetz erstmal nix zu tun.
ENUM wird nicht benötigt. ENUM ist eine Option. ENUM ermöglicht die Abbildung von E164-Rufnummern auf SIP-URIs... man kann sich jedoch auch andere Modelle vorstellen, z.B. Partnerschaften zwischen Providern und Flatrates, die auch die Terminierungsrufnummern im z.B. dt. Festnetz einschliessen.
Unter
Wiki sind Provider gelistet die kein ENUM verwenden! Ohne ENUM geht es aber nicht, alle Provider machen einen ENUM Eintrag - zumindest meine Meinung. Demnach stimmen die Infos nicht oder?
Im Wiki sind Provider aufgeführt mit der Information, wie und ob sie ENUM verwenden/unterstützen. Nicht alle Provider verwenden oder berücksichtigen ENUM-Einträge. Wie kommst Du zu der Annahme? Schau doch einfach selbst mal mit nslookup oder dig nach beliebigen Rufnummern... Das verstehe ich nicht.
ENUM fähige Endgeräte können ENUM Abfragen machen, bekommen die SIP-URI aber nicht die IP Adresse.
Das ist korrekt, denn ENUM liefert immer URIs. Nicht notwendigerweise nur SIP-URIs, das können auch TEL-URIs oder andere sein!
Diese gibt es nur bei SIP Server zu SIP Server Anfrage.
Falsch! Wenn die SIP-URI mein Endgerät über eine dyndns-Domain direkt identifiziert, dann brauche ich keinen Provider und die IP-Adresse meines Endgeräts ist per einfachem A-Lookup im DNS festzustellen.
Und ohne IP kein direkter (kostenloser) Rufaufbau!
Das stimmt nun wieder. Caveat jedoch siehe oben.
VoIP Provider sind nix anderes wie 'IP Adressen' Vermittler.
Das ist eine gewagte These, die nicht ganz mit der Realität übereinstimmt. VoIP-Provider sind zunächst primär in vier Bereichen zu finden:
- Terminierung ins Festnetz, das man ja direkt nicht so anrufen kann
- Terminierung aus dem Festnetz, aus dem man sonst VoIP-Teilnehmer nicht anrufen kann
- Bereitstellung von Tk-Anlagen-Funktionen für Teilnehmer (z.B. Makeln, Konferenzen, Rückfragen, Anrufbeantworter, Rufweiterleitungen, ...)
- Durchführen einer Registrierung, damit Teilnehmer über SIP-URIs beim Provider anzusprechen sind.
Dass man dort für die Bestimmung von Teilnehmeradressen (IP-Adresse, Port und User) aus SIP-URIs auch DNS benötigt, charakterisiert VoIP-Provider nicht. Das kann ich auch selbst machen.
--gandalf.