.titleBar { margin-bottom: 5px!important; }

wie findet ENUM eine Durchwahl?

Dieses Thema im Forum "Grundsätzliches" wurde erstellt von ViennaAustria, 20 Feb. 2006.

  1. ViennaAustria

    ViennaAustria Neuer User

    Registriert seit:
    11 Okt. 2005
    Beiträge:
    177
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Wien
    Hallo!

    Bin schon etwas verzweifelt, denn ich finde keine Doku/Antworten zu meinen Fragen. Vielleicht kann mir hier jemand helfen.

    Mit ENUM wird eine Rufnummer als Domain dargestellt. Schon klar: Zielrufnummer in internationaler Schreibweise darstellen, alles ausser Ziffern raus, Punkte dazwischen, String umkehren, e164.arpa (oder e164.org) anhängen und NAPTR Records suchen.

    Möchte ich z.B. beim österreichischen Telekom-Regulator "RTR" per SIP anrufen, wird aus +43 1 58058

    > host -t naptr 8.5.0.8.5.1.3.4.e164.arpa | grep -F "E2U+sip"
    8.5.0.8.5.1.3.4.e164.arpa NAPTR 100 10 "u" "E2U+sip" "!^.*$!sip:0@rtr.at!" .

    und damit hab ich eine SIP Adresse. Schön. So weit so klar.


    In den NAPTR Records können auch reguläre Ausdrücke stehen, mit denen Durchwahlen verarbeitet werden können. Bloss: wie funktioniert das???

    Ich meine hier nicht, wie reguläre Ausdrücke funktionieren, sondern wie der Anrufer/Endgerät/Sipserver den richtigen Record findet. Möchte ich der o.g. RTR beispielsweise ein Fax senden, so geht das an Durchwahl 9191, also an +43 1 58058 9191. Da ein Endgerät ja nicht weiss, was die Rumpfnummer (+43 1 58058 ) und was die Durchwahl (9191) ist, kann es im Grunde ja nur die gesamte Nummer ver-ENUM-en, also

    > host -t naptr 1.9.1.9.8.5.0.8.5.1.3.4.e164.arpa | grep -F "E2U+sip"

    Da kommt aber nix, weil die Durchwahlen "ja eh" bei der Rumpfnummer (=NAPTR 8.5.0.8.5.1.3.4.e164.arpa) definiert wurden und nicht 11.110 Sub-Einträge für alle möglichen 1-4stelligen Durchwahlen im DNS angelegt sind. Die Arbeit würd sich niemand machen - ausserdem gibt's ja genau dafür die RegExp in den NAPTR Records.

    Aber wie erkennt ein Endgerät die Rumpfnummer, um an deren RegExp heranzukommen?

    In den RFCs hab ich keinen Hinweis darauf gefunden. Offenbar hab ich in den falschen geschaut...

    Müsste ich das implementieren, würde ich die zu wählende Nummer in DNS-Schreibweise umwandeln und mal einen DNS Lookup machen. Wenn nix kommt, würde ich so lange die ersten zwei Zeichen wegnehmen (=die letzte Ziffer der Nummer) und die Schleife wiederholen, bis ich entweder einen NAPTR Record bekomme, oder beim Countrycode angekommen bin. Die Länge der Durchwahlen ist ja nicht bekannt und manche Länder haben globale SIP Records z.B. für alle 0800/0180 Nummern, die von einem Provider kostenlos von SIP im PSTN terminiert werden. Deswegen scheint mir die einzig sinnvolle Abbruchbedingung zu sein, wenn ich beim Countrycode angekommen bin (der im Falle der USA bloss einstellig ist). Kommt ein NAPTR Record, würde ich dessen LHS RegExp mit meiner Zielrufnummer matchen. Wenn das passt, dann erhalte ich auf der RHS die SIP URL.

    Das wirkt mir aber irgendwie "komisch" und DNS-Request-intensiv!

    Weiss irgendjemand, wie das wirklich ablaufen soll? Ich brauch das leider auscodiert...

    DANKE!
    Thomas
     
  2. gandalf94305

    gandalf94305 Guest

    #2 gandalf94305, 11 März 2006
    Zuletzt von einem Moderator bearbeitet: 11 März 2006
    Diese Frage ist schon etwas älter, aber nicht beantwortet...

    In DNS gibt es auch Wildcard-Einträge, die Ergebnisse dann für alle Subdomains liefern. Letztendlich kann man auf diese Weise mit Bordmitteln in DNS erreichen, daß auch Durchwahlen oder Länder oder Städte mit einem Default versehen werden.

    http://ietfreport.isoc.org/all-ids/draft-ietf-urn-naptr-00.txt

    Ein Eintrag im DNS für *.9.4.e164.arpa. würde beispielsweise alle Nummern in Deutschland abfangen.

    --gandalf.
     
  3. ViennaAustria

    ViennaAustria Neuer User

    Registriert seit:
    11 Okt. 2005
    Beiträge:
    177
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Wien
    Hallo!

    Danke für die Antwort. Mittlerweile hab ich das auch schon herausgefunden und mein Perl-Miniscript fertig gestellt. Tut bisher brav.

    Nochmal danke!
    Thomas
     
  4. -KeX-

    -KeX- Neuer User

    Registriert seit:
    17 März 2006
    Beiträge:
    47
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Salzburg
    Hola,

    Also, irgendwie krieg ich das mit den DNS Einträgen für Durchwahlen (Wildcards) nicht hin. Ich verwende einen Bind Nameserver und hab folgende Konfiguration für eine fiktive Nummer:

    Meine Zone:
    Code:
    zone "*.5.5.9.9.9.3.4.e164.arpa" {
    	type master;
    	file "/etc/bind/db.sip_tst";
    };
    Das Zonen file
    Code:
    $TTL 1800
    @ IN SOA ns1.domain.xx. hostmaster.domain.xx. (
                            1              ; serial
                            3H              ; refresh
    			1H              ; retry
    			1W              ; expiry
    			1H )            ; ttl
    
    @ IN NS ns1.domain.xx.
    @ IN NS ns2.domain.xx.
    *.5.5.9.9.9.3.4.e164.arpa IN NAPTR 5 10 "u" "E2U+tel" "!^.*$!tel:+43662999!".
    *.5.5.9.9.9.3.4.e164.arpa IN NAPTR 2 10 "u" "E2U+sip" "!^.*$!sip:200@domain.xx!".
    Aber irgendwie haut das nicht so hin. Beim Starten vom Bind krieg ich diese Fehlermeldung:
    Code:
    dns_master_load: /etc/bind/db.sip_tst:10: *.5.5.9.9.9.3.4.e164.arpa: invalid NS owner name (wildcard)
    zone *.5.5.9.9.9.3.4.e164.arpa/IN: loading master file /etc/bind/db.sip_tst: invalid NS owner name (wildcard)
    
    Was genau mach ich da falsch ? Is da nur ein kleiner Fehler drinnen od. mach ich da prinzipiell was falsch? Wenn mir wer weiterhelfen könnt, wär super. Od. sagen wo ich nachschaun kann ist auch ok : D

    chris...
     
  5. gandalf94305

    gandalf94305 Guest

    Die Zone sollte 5.5.9.9.9.3.4.e164.arpa heissen und keinen * enthalten. Die Wildcard-Records stehen erst in der Zonendatei selbst. Du kannst dort dann Records eintragen mit "* IN ..." oder wenn mit vollem Namen, dann auch mit Punkt nach .arpa.

    Die Fehlermeldung sagt ja eigentlich schon, wo der Fehler liegt. Der Zonenname ist nicht erlaubt, da ein Wildcard enthalten ist ;-)

    --gandalf.
     
  6. -KeX-

    -KeX- Neuer User

    Registriert seit:
    17 März 2006
    Beiträge:
    47
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Salzburg
    Enum DNS Einträge für Nebenstellen

    Hallo Gandalf,

    Danke für deine Antwort. Die Fehlermeldung hab ich schon gelesen, aber nicht gewusst wo das dann mit den Wildcards hingehört.

    Habs jetzt hinbekommen, sieht so aus:
    Die Zone:
    Code:
    zone "5.5.9.9.9.3.4.e164.arpa" {
    	type master;
    	file "/etc/bind/db.sip_tst";
    };
    Und das Zonenfile:
    Code:
    $TTL 1800
    @ IN SOA ns1.domain.xx. hostmaster.domain.xx. (
                            1              ; serial
                            3H              ; refresh
    			1H              ; retry
    			1W              ; expiry
    			1H )            ; ttl
    
    @ IN NS ns1.domain.xx.com.
    @ IN NS ns2.domain.xx.com.
    
    @ IN NAPTR 5  10 U E2U+sip  "!^.*$!sip:main@domain.xx!".
    @ IN NAPTR 10 10 U E2U+tel   "!^.*$!tel:\+4399955!". 
    
    *.5.5.9.9.9.3.4.e164.arpa. IN NAPTR 5  10 U E2U+sip "!^\\+4399955([0-9][0-9][0-9])$!sip:\\1@domain.xx!".
    *.5.5.9.9.9.3.4.e164.arpa. IN NAPTR 10 10 U E2U+tel "!^\\+4399955([0-9][0-9][0-9])$!tel:\+4399955\\1!".
    Damit funktionierts, für alle die's interessiert : D

    chris...
     
  7. gandalf94305

    gandalf94305 Guest

    Kleine Anmerkung noch: bei einer Expiration von 1 Woche ist eine TTL von 1/2 Stunde vielleicht nicht so gut ;-) Auch ein Refresh von 3 Stunden ist recht kurz.

    Ich würde empfehlen: TTL 3-5 Tage, Refresh 1-5 Tage.

    --gandalf.
     
  8. -KeX-

    -KeX- Neuer User

    Registriert seit:
    17 März 2006
    Beiträge:
    47
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Salzburg
    hallo,

    damit hab ich mich eigentlich garnicht auseinander gesetzt : D Die Werte hab ich aus zwei verschiedenen Beispielkonfigurationen zusammenkopiert. : ) Wer deinen Rat aber befolgen.

    chris...