Festnetz-Fallback für ENUM-/DynDNS-"Selbstnutzer"

rbm78bln

Neuer User
Mitglied seit
9 Jan 2007
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Hi Leute!

Also, mein "Anliegen" ist eigentlich ganz einfach:
Ich möchte meine Festnetz-Telefonnummern für SIP nutzen via ENUM und DynDNS. sowohl für eingehende, als auch für ausgehende Telefonate.

Etwas präziser:
Meine Konfiguration ist nix besonderes:
- FB 7170 mit ENUM-Lookup und Festnetz-Fallback an
- DSL+ISDN-Anschluss
- ISDN-Tk-Anlage
- Sagen wir, meine Telefonnummer ist +49 (123) 456

- Meine ISDN-Anlage nutzt die ISDN-MSN 456
- In meiner FBF ist die ISDN-MSN 456 richtig eingetragen.
- Zusätzlich habe ich, wie hier und hier beschrieben, einen SIP-"Provider" mit der Nummer 456, dem Usernamen 49123456 und dem Registrar 127.0.0.1 eingetragen. do_not_register=yes; ist eingetragen.
- Festnetz-Fallback ist an. 49 und 123 werden autom. hinzugefügt.

Im Großen und Ganzen macht die FBF, was ich will:
- jemand ruft auf dem Festnetz an, das Telefon klingelt. Fein.
- jemand ruft die ENUM-registrierte SIP-Adresse [email protected] an, die Telefone klingeln. Auch fein.
- ich rufe eine ENUM-registrierte Nummer an, die Box macht einen lookup, findet die sip-adresse und verbindet mit ihr direkt. Super-fein.

Jetzt das Problem: Ich rufe eine nicht registrierte Nummer (654) an, wo die Box keine SIP-Adresse zu finden kann:
(kann man ja sehr schön mit verbose=yes in der voip.cfg sehen :) )
- Die Box macht den Lookup, findet nix. OK.
- Die Box versucht [email protected] zu erreichen, bekommt ein 404 - Not found. Auch nett.
- Die Box bricht ab und ich sehe: "Teilnehmer nicht erreichbar". Doof! :argh:

Blupp. Das will ich natürlich nicht. Ich möchte es so konfiguriert haben,
- dass ein erfolgloser ENUM-Lookup
- oder ein erfolgloser sip:49123654@ip-Anruf
den Festnetz-Fallback auslöst. 8)

Trage ich als Registrar 0.0.0.1 (=invalid) ein, so läuft der Anruf eine sip-Verbindung aufzubauen in ein Timeout und das Fallback wird ausgelöst. Das dauert aber viel zu lange. :(

Weiß jemand eine Lösung oder Rat?
 
Zumindest mit einem abgrundtief fiesen Hack kann ich diese Funktionalität herbeiführen!

Die folgenden Zeilen implementieren unter Linux einen "Registrar", der einfach immer Fehlernummer 500 zurückgibt:
Code:
#!/bin/sh

FIFO="/dev/shm/sip-reject.$$.fifo"

main() {
   rm -f "$FIFO"
   read LINE
   ACTION=$(echo "$LINE" | cut -d ' ' -f 1)
   MYTAG=$(date | md5sum | cut -b1-16 | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/')
   VIA="SIP/2.0/UDP 0.0.0.0:5060;branch=$MYTAG"
   FROM="<sip:[email protected]>;tag=$MYTAG"
   TO="<sip:[email protected]>;tag=$MYTAG"
   CALLID="[email protected]"
   CSEQ="CSeq: 4 INVITE"
   while read LINE && [ "$LINE" ] && ! echo "$LINE"|grep "v=0"; do
      HDR=$(echo "$LINE" | cut -d : -f 1)
      case "$HDR" in
         Via)
            VIA="$LINE"
            ;;
         From)
            FROM="$LINE"
            ;;
         To)
            TO="$LINE;tag=$MYTAG"
            ;;
         Call-ID)
            CALLID="$LINE"
            ;;
         CSeq)
            CSEQ="$LINE"
            ;;
      esac
   done
   if [ "$ACTION" == "INVITE" ]; then
cat <<EOT
SIP/2.0 500 Internal server error
$VIA
$FROM
$TO
$CALLID
$CSEQ
User-Agent: sip-reject
Content-Length: 0

EOT
   fi
}

socket() {
   while true; do
      mkfifo "$FIFO"
      main < "$FIFO" | tree /proc/self/fd/2 | nc -u -l -p sip -q 0 | tree /proc/self/fd/2 > "$FIFO"
   done
}

socket
exit 0

Dieser "Registrar" läuft auf einen Rechner im LAN und diesen habe ich der FBF beigebracht, ihn zu benutzen.
In einer etwas längeren Version, lässt sich sogar eine Dummy-Registrierung durchführen, sodass die Nummer als angemeldet erscheint :)

Schlagt mich nicht, aber ich weiß mir sonst keinen Rat.
Bin noch immer für jede Hilfe dankbar!
 
Zuletzt bearbeitet:
Noch 'ne blöde ENUM-Lookup Sache

Ja, ich weiß, ich bin nie zufrieden :)

Wenn die Fritzbox einen ENUM-Lookup macht und ein braver Mensch wie ich, auch Nummern einträgt, wo es NUR einen TEL-Eintrag für gibt, dann bricht die Box auch einfach nur ab, anstatt den Festnetz-Fallback zu nutzen.

Weiß da jemand, wie man das umstellen kann? :confused:
 

Anhänge

  • sipfake.gz
    1.6 KB · Aufrufe: 5
Hallo,

bin gestern auch auf gerade dieses Problem gestoßen. Hat vielleicht schon mal jemand rausgefunden, ob dafür eine "fallweise Unterdrückung des ENUM Lookups" in der FBF per Telefoncode möglich ist?

Gruß
radio_junkie
 
Sollte eigentlich mit *111# (also Festnetz als abgehende Leitung auswählen) funktionieren.


Gruß,
Wichard
 
Das ist nicht wirklich die gewünschte Lösung.
1. Habe ich hier (bzw. "da") gar kein Festnetz.
2. Will ich ja gar nicht übers Festnetz telefonieren, sondern per VoIP die im ENUM als "tel" angegebene Nummer anrufen.

Gruß
radio_junkie
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.