- Mitglied seit
- 11 Okt 2005
- Beiträge
- 177
- Punkte für Reaktionen
- 0
- Punkte
- 0
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:[email protected]!" .
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
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:[email protected]!" .
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