O.K. ein bischen offtopic: Asterisk ist DIE Softwaretelefonanlage schlechthin. Quasi die Mutter aller Telefonanlagen auf SIP-Basis. Mal bei Wikipedia schauen.
Asterisk hat sehr moderate Harwareanforderungen. Obwohl eigentlich für eigenständige Linux-Rechner gedacht, ist es schon seit der 7050 möglich, Asterisk zu installieren. Seit der 7390 ist die Hardware der FBF so gut, dass man Asterisk auch als "Produktivsystem" auf einer FBF laufen lassen kann - ich mache das jetzt seit zwei Wochen ohne Neustart absturzfrei.
Bei Asterisk arbeitet man über Konfiguirationsdateien, die wichtigsten sind die sip.config (macht quasi das, was "Internettelefonie" und "Telefoniegeräte/IP-Telefone", bei der FBF sind) und die extensions.config - quasi "Wahlregeln" bei der FBF, nur dass die extensions.conf richtig programierbar ist und sowohl die Regeln für interne Telefonie, wie auch externe Telefonie erst mal darin definiert werden müssen.
Man kann in Asterisk fast alles programieren - im Zweifelsfall auch externe Programme starten bzw. Asterisk aus externen Programmen steuern. Damit gibt es nichts, was nicht möglich wäre.
Für Call-Through bedeutet dies: Hat man einen Trunking-fähigen SIP-Anbieter (Mir fallen nur Sipgate, dusnet und ich glaube Zill-IT ein, wobei Sipgate als einziges kostenlos ist), kann man mit verlängerten Rufnummern arbeiten. Ich habe z.B. 11 echte Rufnummern bei Sipgate-Trunking, mit unterschiedlicher Länge. Das ist ein Internettelefonieaccount, wenn die FBF sich direkt registrieren würde, wären es - egal welche Rufnummer der Anrufer wählt - ein eingehender Anruf auf einer "Nummer" (für die FBF ist Nummer=Account). Bei Asterisk kann man hingegen bei einer SIP-Verbindung alle Daten des Protokolls unterscheiden und damit nicht nur feststellen, woher der Anruf kommt (from), sondern an welche Nummer der Anruf ging (to-header). Aus meinen 11 echten Nummern werden so 15221 verschiedene mögliche Nummern (13 Stellen mit Vorwahl ohne Null werden möglich). Bei den meist verbreiteten 10-stelligen Nummern kann man meist 3 Ziffern anhängen und hat 1111 getrennt auswertbare Nummern.
In der extensions.conf kann man mit wenigen Zeilen auswerten, welche Rufnummer tatsächlich gewählt wurde. Bei dem von mir verfassten (und auch produktiv verwendetem) Beispiel nutze ich Sipgate-trunking für eine Verlängerung einer Nummer um 2 Stellen. Asterisk stellt fest, dass die Nummer von meinem Handy angerufen wurde und die Zielnummer dem Muster MeineNummer+xy entspricht. Diese Anrufe leitet Asterisk an **7xy weiter - Ich erreiche nun 100 Ziele per direkter Durchwahl vom Handy über das FBF-Telefonbuch.
Da aus Sicht des Miobilbetreibers eine "normale" Festnetznummer gewählt wurde, die aufgrund des Trunkings bereits die zwei Ziffern für den Telefonbucheintrag enthalten (was der Handyanbieter nicht wissen kann), ist gar keine DTMF-Nachwahl mehr nötig - in den 100 Fällen werde ich direkt zu meinem Ziel, sei es Fremdnetz, sei es Ausland - oder sei es gar SIP-Uri - weitergeleitet. Das erspart mir die Programmierung einer eigenen Datenbank und Weboberfläche.
Ich bin bezüglich Asterisk selber ziemlicher Newbee. Daher ist vieles quick and dirty, ich nutze meist noch FBF-Funktionen und beschränke den Asteriskeinsatz nur auf das Splitten eines Sipgate-Accounts auf mehrere Einzel-Accounts und aufs zweistellige Trunking fürs direkte Call-through.
Interessante Links zu dem Thema Asterisk:
Grundlagen - das
Asterisk-Buch von Steffan Winthermeyer
Howto: Asterisk auf FBF installieren
Sipgate Trunking für direktes Callthrouh nutzen
Das ganze ist etwas Lesestoff, und ich hatte das "Glück", dass ich ein paar Tage krank war und letzteren Beitrag in Ruhe entwickeln konnte. Momentan fasse ich mittleren Thread neu zusammen, damit es auch freetz-newbees hin bekommen. Das kann aber noch ein paar Wochen dauern, bis die überarbeitete Schritt-für-Schritt-Anleituing fertig ist.