Und weil's so Spaß macht gleich noch ein Nachtrag von mir: Es funktioniert doch.
Im Endeffekt war der Fehler ganz banal, so einfach das man eigentlich gleich hätte drauf kommen können. Trotzdem habe ich es erst heute am Tag 3 per Zufall bemerkt.
Mein Problem bestand darin, dass ich als Zielplattform nicht nur irgendeine einfache FritzBox genommen habe, sondern einen bereits sehr stark
personalisierten SpeedPort W920V mit einem Freetz-Image. Das Freetz-Image war auch gar nicht das Problem. Das Problem war ein Quagga OSPF-Daemon, der munter auf dem Freetz gelaufen ist, und der von meinem lokalen Heimnetzwerk eine 10.0.0.0/8 Route empfangen hat, welche natürlich auch ganz brav in die aktive Routingtabelle eingebaut wurde. Dummerweise nutzt ausgerechnet Hansenet in deren VoIP-Backbone auch das gesamte 10er Netz für die PPP-Einwahl, Gateways, DNS-Server, NTP-Server, SIP-Server und RTP-Server. In Richtung 'dsl'-Interface auf der FritzBox ist aber
nur eine Defaultroute 0.0.0.0/0 vorhanden. Die ganzen VoIP-Pakete wurden also nie ins Internet geschickt, sondern immer brav in mein Heimnetzwerk. Kein Wunder, dass es da immer zu einem Timeout gekommen ist.
Jedenfalls habe ich durch meine intensiven Experimente auch einige Eigenheiten der Hansenet-Anschlüsse kennengelernt.
So ist zum Betrieb der VoIP-Telefonie die 2. PVC unbedingt zwingend notwendig. Es funktioniert nämlich nur, wenn der ganze VoIP-Traffic für Hansenet komplett in deren privaten 10er IP-Netz abgewickelt wird.
Hansenet verwendet verschiedene Hostnamen, z.B. registrarXX.sip.alice-dsl.de für die SIP-Anmweldung, oder auch time.sip.alice-dsl.de als NTP-Server. Diese ganzen Hostnamen lassen sich auch aus dem öffentlichen Internet heraus per DNS auflösen. Man erhält eine öffentliche IP-Adresse des Servers, und man findet dort auch tatsächlich einen SIP-Server vor. Es ist jedoch nicht möglich, darüber ein Telefonat zu führen. Die Verbindung wird mit der Fehlermeldung Forbidden einfach abgelehnt.
Der Witz am 2. PVC ist, dass man bei der Einwahl mit den speziellen Zugangsdaten für den VoIP-PVC IP-Adressen aus einem 10er Adresspool geliefert bekommt. Nicht nur die eigene "WAN"-IP und das PPP-Gateway, sondern auch z.B. die DNS-Server sind spezielle Adressen aus dem 10er Block. Frägt man nun einen Hostnamen wie z.B. registrarXX.sip.alice-dsl.de oder time.sip.alice-dsl.de von genau diesem 10er Nameserver ab, so erhält man - oh Wunder - auf einmal eine ganz andere IP-Adresse zurück. Nämlich auch wieder eine aus dem 10er Netz. Und wenn man sich gegen genau diesen 10er SIP-Server nun registriert, funktioniert die Anmeldung ohne Probleme. Auch sämtliche Telefonate werden anstandslos akzeptiert, auch der gesamte RTP-Traffic fließt innerhalb dieses 10er Netzes. Hansenet hat hier also wirklich ein komplett dediziertes privates IP-Netz für die IP-Telefonie. Wichtig ist daher, dass man das Netz 10.0.0.0/8 nicht auch noch direkt am LAN-Port der FritzBox hängen hat.
Als nächsten Schritt fand ich es ganz interessiert, woher die FritzBox eigentlich weiß, welche Daten sie über den 1. oder 2. PVC zu senden hat. Ich hätte mir gedacht, dass dies einfach mittels verschiedener IP-Routen geregelt ist, die auf verschiedene Interfaces zeigen. Also ein Interface für den 1. PVC und ein weiteres für den 2. VoIP-PVC. Genau so ist es aber
nicht. Es gibt in der Routing-Tabelle der Box nur eine einzige Defaultroute, die auf das Interface mit dem Namen 'dsl' zeigt. Es fließen also erst einmal die Daten für alle PVCs in dieses dsl-Interface hinein. Spannend wird es nun, was sich genau hinter diesem 'dsl'-Interface befindet. Das muss irgendeine proprietäre Einrichtung von AVM sein. Dort wird nun aber der ganze Internetverkehr auf die verschiedenen PVCs aufgeteilt. Und zwar anhand des in der ar7.cfg definierten Kriteriums 'tcclassroutes'. Dieses ist innerhalb der Konfiguration für den VoIP-PVC definiert und beinhaltet Schlüsselwörter von Datenklassen, die über diese PVC geleitet werden sollen. Unter anderem eben 'sip', 'sipdns', 'rtp', 'ntp' und 'ntpdns'. Was genau unter diesen Schlüsselwörtern zu verstehen ist, habe ich jedoch nicht herausgefunden. Es hat jedenfalls nichts mit irgendwelchen QoS-Klassen zu tun. Auch ist z.B. 'sip' nicht einfach nur dadurch definiert, dass der UDP-Zielport 5060 ist. Es muss vielmehr irgendeine interne Kennzeichnung sein, so nach dem Motto "SIP-Pakete die vom voipd-Daemon stammen". Denn SIP-Pakete meines Asterisk-Servers, die auch an Zielport 5060 gerichtet sind, werden nicht über den 2. PVC geroutet.
Ganz schön spannend, was da hinter den Kulissen so alles vorgeht. An die so auf meinem SpeedPort eingerichtet Alice-VoIP Verbindung lässt sich mit Hilfe eines "IP-Telefons" dann übrigens auch ganz einfach und so wie ich das wollte ein Asterisk anklemmen, jetzt wo es endlich funktioniert.
Wie sich der User-Agent String des FritzBox-internen 'voipd' anpassen lässt, habe ich übrigens in diesem Thread hier ergänzt:
SIP User-Agent der FritzBox personalisieren
IP-Telefone lassen sich übrigens aber auch auf der originalen Hansenet-Box ankoppeln. Das kastrierte Webinterface gibt es zwar nicht her, die Hard- und Software aber sehr wohl. Es funktioniert wunderbar, die aus der Alice-Box exportierte Konfiguration (mit entschlüsselten Passwörtern) in einer FritzBox 7570 einzuspielen, dort dann über deren Webinterface die gewünschten SIP-Clients anzulegen, die Konfiguration wieder zu exportieren, und anschließend auf der Alice-Box wieder zu importieren. Es reicht hierbei nicht, nur die voip.cfg zu übertragen. Wichtige Einstellungen, wie z.B. die Zuordnung, welches Telefon welche Rufnummer benutzt, stehen in einigen der anderen Binärdateien. Es funktioniert übrigens anstelle der 7570 auch eine ältere 7270 um so die Konfigurationsdatei etwas aufzuwerten. Wer also einfach nur anstelle eines analogen Telefons ein IP-Telefon an die Alice-Box hängen möchte, kann dies auf diesem Umweg tun. Denn eigentlich kann es Hansenet doch auch recht egal sein, was für ein Telefon ich nun konkret an meinem Anschluss in Betrieb habe. Wichtig ist natürlich, dass ich nur eine einzige Leitung habe, das ist klar. Aber dass man grundsätzlich alle Endgeräte außer einem analogen Telefon ausschließt, halte ich irgendwie für eine ziemlich übertriebene Einschränkung.
Dann kann ich mich jetzt ja entspannt zurücklehnen, und meinen neuen VDSL-Anschluss genießen. Mit netto 9 Mbps Upload, und einer Telefonleitung inklusive Festnetzflatrate.
http://www.speedtest.net/result/984382779.png