Florian Amrhein

Asterisk: Kurzwahlen

-> VoIP -> kurzwahlen

In einem der letzten Kapitel habe ich mein datenbankgestütztes Telephonbuch vorgestellt, mit dem Namen, Adressen und vor allem auch Telephonnummern verwaltet werden können. Nun werde ich eine Kurzwahlapplikation vorstellen, die diese Datenbank verwendet.

Grundsätzlicher Aufbau


Grundsätzlich wird das Wählen einer Kurzwahl aus folgenden Teilen bestehen:
  • Personenkennziffer: Wessen Telephonbuch (das meiner Freundin oder meins) soll benutzt werden? Das ist vermutlich für viele uninteressant, lässt sich aber leicht ändern.
  • *: Ein Sternchen deutet an: Nun kommt eine Kurzwahl
  • Person: Welche Person aus dem Telephonbuch soll angewählt werden (zwei Stellen). Diese Personenidentifikation befindet sich in der Datenbank in Tabelle personen, in der Spalte kurzwahl
  • Nummer: welche Nummer dieser Person soll angewählt werden? Diese Zuordnung der Kurzwahl auf die eigentliche Nummer befindet sich in der Tabelle telephon, in der Spalte kurzwahl

Ja, das ist genauso kompliziert wie es aussieht, und ist vermutlich auch ein Grund, weshalb ich die Kurzwahlen nie benutze. ;-)

Aktuell fehlt allerdings auch noch ein Skript, welches den Inhalt des Telephonbuches, insbesondere die Kurzwahlen, übersichtlich ausdruckt, so daß man sich diese Liste mal nebens Telephon legen könnte...

Zum Glück sollte es aber für jeden, der nur ein wenig programmieren kann, ein leichtes sein, das ganze etwas zu vereinfachen.

Jedenfalls sieht die Wahl einer Kurzwahl zum Beispiel so aus:
1*012*
Dabei wird aus dem ersten Telephonbuch die Person mit der Personenkurzwahl "01" angewählt, und dessen zweite Telephonnummer (beispielsweise die Mobilnummer).

extensions.agi


Folgender Abschnitt muß in die extensions.agi, im Kontext "rauswaehlen" eingefügt werden:

_1*. => { //Kurzwahl
	  agi(kurzwahl.php|1|${EXTEN:2});
	  &waehle(SIP,${nummer}@000123456,${nummer},1,4922824578);
	};


Hier wird das AGI-Skript kurzwahl.php aufgerufen, welches zwei Parameter bekommt: 1. Das Telephonbuch (1), 2. die Kurzwahlnummer, die sich in ${EXTEN:2} befindet (die Eingegebene Nummer, abgesehen von den ersten beiden Stellen, wo ja nur 1* drin steht.

Das AGI-Skript legt die anzuwählende Nummer in der Variable ${nummer} ab, so daß darauf hin nur das altbekannte waehle-Makro mit der Nummer aufgerufen werden kann.

An dieser Stelle kann man im übrigen das Kurzwahlskript schon etwas vereinfachen, in dem man _* => verwendet, und sich so das Tippen der einleitenden 1 erspart. Es muß dann aber auch ${EXTEN:1} heißen, da ja nur noch ein Zeichen entfernt werden muß.

kurzwahl.php


Einfach mal reingucken, und die Datenbank konfigurieren. Das sollte reichen.

Download (in kurzwahl.php umbenennen)
Diese Seite ist nicht kommentiert. [Kommentare anzeigen]